Some checks failed
Unit Testing / test (3.12) (pull_request) Has been cancelled
Unit Testing / test (3.10) (pull_request) Has been cancelled
Unit Testing / test (3.8) (pull_request) Has been cancelled
Unit Testing / test (3.11) (pull_request) Has been cancelled
Unit Testing / test (3.9) (pull_request) Has been cancelled
136 lines
4.5 KiB
YAML
136 lines
4.5 KiB
YAML
name: Release
|
|
|
|
# Controls when the action will run.
|
|
on:
|
|
# Triggers the workflow on push or pull request events but only for the master branch
|
|
push:
|
|
tags:
|
|
- "*"
|
|
|
|
# Allows you to run this workflow manually from the Actions tab
|
|
workflow_dispatch:
|
|
inputs:
|
|
build-items:
|
|
description: 'Items to be build'
|
|
required: true
|
|
default: 'all'
|
|
type: choice
|
|
options:
|
|
- all
|
|
- windows
|
|
- linux
|
|
- all_incl_release
|
|
|
|
jobs:
|
|
test:
|
|
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
|
|
fail-fast: false
|
|
|
|
steps:
|
|
- name: Checkout LFS objects
|
|
run: git clone https://${{secrets.GITHUB_TOKEN}}@gitea.psi.ch/${{ github.repository }}.git .
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install pytest
|
|
pip install -r requirements.txt
|
|
|
|
- name: Test with pytest
|
|
run: |
|
|
export PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
|
|
python -m pytest tests
|
|
|
|
|
|
build-ubuntu-latest:
|
|
needs: [test]
|
|
runs-on: ubuntu-latest
|
|
if: ${{ (github.event_name != 'workflow_dispatch') || (contains(fromJson('["all", "linux", "all_incl_release"]'), github.event.inputs.build-items)) }}
|
|
permissions:
|
|
id-token: write
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.12'
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install build
|
|
pip install -r requirements.txt
|
|
pip install wheel build twine
|
|
- name: Build PyPI package
|
|
run: |
|
|
python3 -m build
|
|
- name: Upload to PyPI
|
|
run: |
|
|
twine upload dist/* -u __token__ -p ${{ secrets.PYPI_TOKEN }} --skip-existing
|
|
this_tag=$(python -c "import eos;print('v'+eos.__version__)")
|
|
echo "RELEASE_TAG=$this_tag" >> $GITHUB_ENV
|
|
- name: Update Release
|
|
if: ${{ (github.event_name != 'workflow_dispatch') || (contains(fromJson('["all_incl_release"]'), github.event.inputs.build-items)) }}
|
|
uses: actions/gitea-release-action@v1
|
|
with:
|
|
tag_name: ${{ env.RELEASE_TAG }}
|
|
files: |-
|
|
dist/amor*.tar.gz
|
|
|
|
# build-windows:
|
|
# needs: [test]
|
|
# runs-on: windows-latest
|
|
# if: ${{ (github.event_name != 'workflow_dispatch') || (contains(fromJson('["all", "windows", "all_incl_release"]'), github.event.inputs.build-items)) }}
|
|
#
|
|
# steps:
|
|
# - uses: actions/checkout@v4
|
|
# - name: Set up Python
|
|
# uses: actions/setup-python@v5
|
|
# with:
|
|
# python-version: 3.12
|
|
# - name: Install dependencies
|
|
# run: |
|
|
# C:\Miniconda\condabin\conda.bat env update --file conda_windows.yml --name base
|
|
# C:\Miniconda\condabin\conda.bat init powershell
|
|
# - name: Build with pyinstaller
|
|
# run: |
|
|
# pyinstaller windows_build.spec
|
|
# cd dist\eos
|
|
# Compress-Archive -Path .\* -Destination ..\..\eos.zip
|
|
# - name: Update Release
|
|
# if: ${{ (github.event_name != 'workflow_dispatch') || (contains(fromJson('["all_incl_release"]'), github.event.inputs.build-items)) }}
|
|
# uses: actions/gitea-release-action@v1
|
|
# with:
|
|
# files: |-
|
|
# eos.zip
|
|
|
|
release:
|
|
if: ${{ (github.event_name != 'workflow_dispatch') || (contains(fromJson('["all_incl_release"]'), github.event.inputs.build-items)) }}
|
|
runs-on: ubuntu-latest
|
|
needs: [test]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: get latest version tag and release note
|
|
run: |
|
|
git fetch --depth=500
|
|
this_tag=$(python -c "import eos;print('v'+eos.__version__)")
|
|
prev_tag=$(git describe --abbrev=0 --tags `git rev-list --tags --skip=1 --max-count=1`)
|
|
echo "Relese tag $this_tag with changes since $prev_tag"
|
|
commit_messages=$'Commits since previous release: \n\n'$(git log $prev_tag..HEAD --pretty=format:"* %s")
|
|
echo "Commit messages: $commit_messages"
|
|
echo "RELEASE_TAG=$this_tag" >> $GITHUB_ENV
|
|
echo "RELEASE_NOTE=$commit_messages" >> $GITHUB_ENV
|
|
- name: Create Release
|
|
uses: actions/gitea-release-action@v1
|
|
with:
|
|
name: "Amor-Eos ${{ env.RELEASE_TAG }}"
|
|
tag_name: ${{ env.RELEASE_TAG }}
|
|
prerelease: true
|
|
body: ${{ env.RELEASE_NOTE }}
|