Skip to content

Commit

Permalink
chore(ci): only publish to PyPI if a new release was created (#38)
Browse files Browse the repository at this point in the history
The semantic release GitHub Action will skip creating a new GitHub
release if there are no new releasable changes. This is expected, but
the release workflow assumed that there was always a new release to
publish to PyPI.

This PR updates the release workflow to move the PyPI publish steps to a
separate job that will only run if the release job successfully creates
a new release.
  • Loading branch information
ctreatma authored Dec 18, 2024
1 parent 6bfd52a commit 7e6877f
Showing 1 changed file with 32 additions and 16 deletions.
48 changes: 32 additions & 16 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
name: Generate Next Release
# This workflow will generate changelog and release notes.
# Source: https://github.com/terraform-aws-modules/terraform-aws-vpc/blob/master/.github/workflows/release.yml

on:
workflow_dispatch:
Expand All @@ -9,10 +8,11 @@ env:
DIST_DIR: dist
jobs:
release:
name: Build and publish package
name: Create next release
runs-on: ubuntu-latest
permissions:
id-token: write

outputs:
new_release_published: ${{ steps.release.outputs.new_release_published }}

steps:
- name: Checkout
Expand All @@ -21,23 +21,14 @@ jobs:
fetch-depth: 0
ssh-key: ${{ secrets.DEPLOY_KEY }}

- name: Install Python
uses: actions/setup-python@v5
with:
python-version-file: .python-version

- name: Install dependencies
run: |
python -m pip install --upgrade build
- name: Create GitHub release
id: release
uses: cycjimmy/semantic-release-action@v4
with:
semantic_version: 19.0.5
extra_plugins: |
@semantic-release/[email protected]
@semantic-release/[email protected]
conventional-changelog-conventionalcommits@4.6.3
conventional-changelog-conventionalcommits@8.0.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GIT_AUTHOR_NAME: equinix-labs@auto-commit-workflow
Expand All @@ -46,11 +37,36 @@ jobs:
GIT_COMMITTER_EMAIL: [email protected]
RELEASE_REQUESTER: "@${{ github.event.sender.login }}"

publish:
name: Publish artifacts
runs-on: ubuntu-latest
needs: release
if: needs.release.outputs.new_release_published == 'true'

permissions:
id-token: write

steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ssh-key: ${{ secrets.DEPLOY_KEY }}

- name: Install Python
uses: actions/setup-python@v5
with:
python-version-file: .python-version

- name: Install dependencies
run: |
python -m pip install --upgrade build
- name: Build package
run: |
python -m build --sdist --wheel --outdir ${{ env.DIST_DIR }} .
- name: Publish package
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: ${{ env.DIST_DIR }}

0 comments on commit 7e6877f

Please sign in to comment.