diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index bdc69ec..4bbf85f 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -8,6 +8,13 @@ on: jobs: deploy: runs-on: ubuntu-latest + environment: release + permissions: + contents: write + id-token: write + concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + steps: - uses: actions/checkout@v3 with: @@ -21,16 +28,14 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - pip install build twine virtualenv + pip install build virtualenv # PyPI package - - name: Build and publish - env: - TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} - TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} - run: | - python -m build - python -m twine upload dist/* + - name: Build Python package + run: python -m build + + - name: Publish Python package to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 # Documentation - name: Install doc dependencies @@ -56,13 +61,14 @@ jobs: run: | # Get bullet points from last CHANGELOG entry CHANGELOG=$(git diff -U0 HEAD^ HEAD | grep '^[+][\* ]' | sed 's/\+//') - # Support for multiline, see - # https://github.com/actions/create-release/pull/11#issuecomment-640071918 - CHANGELOG="${CHANGELOG//'%'/'%25'}" - CHANGELOG="${CHANGELOG//$'\n'/'%0A'}" - CHANGELOG="${CHANGELOG//$'\r'/'%0D'}" echo "Got changelog: $CHANGELOG" - echo "body=$CHANGELOG" >> $GITHUB_OUTPUT + # Support for multiline, see + # https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings + { + echo 'body<> "$GITHUB_OUTPUT" - name: Create release on Github id: create_release