From f78cb5c5540e0461ba8cdcd80fb910657eabf766 Mon Sep 17 00:00:00 2001 From: Rudolf Mayerhofer Date: Wed, 29 Mar 2023 15:06:06 +0200 Subject: [PATCH] Github Action: Update to newer github action syntax/standards, change image to ubuntu-latest, change pypi-publish to supported version and check if we have credentials to publish at all --- .github/workflows/release.yml | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4699355..b5bc547 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,16 +3,16 @@ name: Build (and release) on: [ push, pull_request ] jobs: build: - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Install dependencies run: | sudo apt update -qq -y - sudo apt install -qq -y build-essential fakeroot git python-all python3-cryptography python3-pip python3-stdeb python3-wheel twine + sudo apt install -qq -y build-essential fakeroot git python-all python3-cryptography python3-pip python3-stdeb python3-wheel twine dh-python sudo pip3 install --upgrade setuptools wheel - name: Prepare build process @@ -22,7 +22,7 @@ jobs: git fetch --tags -f VER="$(python3 setup.py --version)" echo "Version found: $VER" - echo "::set-output name=version::$VER" + echo "version=$VER" >> $GITHUB_OUTPUT - name: Build python package using setuptools (source/wheel) run: | @@ -36,9 +36,9 @@ jobs: sed "s/=determine_version()/='$(python3 setup.py --version)'/gi" -i setup.py sed "s@('readme'@('share/doc/python3-acertmgr'@" -i setup.py # Determine recommended dependencies for deb package - echo "::set-output name=recommends3::$(echo "python3-pkg-resources")" - # Find optional dependencies to suggest in deb package - echo "::set-output name=suggests3::$(python3 -c "from setup import extra_requirements; print('\n'.join(['\n'.join(x) for x in extra_requirements.values()]))" | grep -v cryptography | sed 's/PyYAML/yaml/gi' | awk '{ printf("python3-%s, ",$1)};' | awk '{$1=$1; print}')" + echo "recommends3=$(echo "python3-pkg-resources")" >> $GITHUB_OUTPUT + # Find optional dependencies to suggest in deb package + echo "suggests3=$(python3 -c "from setup import extra_requirements; print('\n'.join(['\n'.join(x) for x in extra_requirements.values()]))" | grep -v cryptography | sed 's/PyYAML/yaml/gi' | awk '{ printf("python3-%s, ",$1)};' | awk '{$1=$1; print}')" >> $GITHUB_OUTPUT - name: Build debian package using setuptools and stdeb run: python3 setup.py --command-packages=stdeb.command sdist_dsc --with-python2=False --with-python3=True --recommends3="${{ steps.stdebprep.outputs.recommends3 }}" --suggests3="${{ steps.stdebprep.outputs.suggests3 }}" bdist_deb @@ -85,9 +85,22 @@ jobs: artifacts/*.whl artifacts/*.deb + - name: Check PyPI secrets + id: checksecrets + shell: bash + run: | + if [ "$USER" == "" -o "$PASSWORD" == "" ]; then + echo "secretspresent=NO" >> $GITHUB_OUTPUT + else + echo "secretspresent=YES" >> $GITHUB_OUTPUT + fi + env: + USER: ${{ secrets.PYPI_USERNAME }} + PASSWORD: ${{ secrets.PYPI_PASSWORD }} + - name: Create new PyPI release - if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') && (!(contains(github.ref, 'rc') || contains(github.ref, 'pre'))) - uses: pypa/gh-action-pypi-publish@master + if: steps.checksecrets.outputs.secretspresent == 'YES' && github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') && (!(contains(github.ref, 'rc') || contains(github.ref, 'pre'))) + uses: pypa/gh-action-pypi-publish@release/v1 with: user: ${{ secrets.PYPI_USERNAME }} password: ${{ secrets.PYPI_PASSWORD }}