From c4468ffb2feb18c60fae829a35a9c8aa5ff0d8c9 Mon Sep 17 00:00:00 2001 From: Matthew Bourque Date: Thu, 28 Sep 2023 10:55:52 -0600 Subject: [PATCH 1/3] Added workflow to uploading release to PyPI --- .github/workflows/release.yml | 66 +++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..24157bf23 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,66 @@ +name: Build and upload to PyPI + +concurrency: + group: ${{ github.workflow }}-${{ github.event.number }}-${{ github.event.ref }} + cancel-in-progress: true + +# (Temporary) To test this, trigger on pull request +on: [push, pull_request] + +#on: +# release: +# types: +# - published + +jobs: + + build_sdist: + name: Build source distribution + runs-on: ubuntu-latest + outputs: + SDIST_NAME: ${{ steps.sdist.outputs.SDIST_NAME }} + + steps: + - uses: actions/checkout@v4 + with: + # We need the full history to generate the proper version number + fetch-depth: 0 + + - uses: actions/setup-python@v4 + name: Install Python + with: + python-version: '3.11' + + - name: Install dependencies + run: python -m pip install build twine + + - name: Build sdist + id: sdist + run: | + python -m build --sdist + # Get the name of the build sdist file for later use + echo "SDIST_NAME=$(ls -1 dist)" >> $GITHUB_OUTPUT + + - name: Check README rendering for PyPI + run: twine check dist/* + + - name: Upload sdist result + uses: actions/upload-artifact@v3 + with: + name: sdist + path: dist/*.tar.gz + if-no-files-found: error + + pypi-publish: + name: Upload release to PyPI + runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/p/imap_processing + permissions: + id-token: write # IMPORTANT: this permission is mandatory for trusted publishing + steps: + # retrieve your distributions here + + - name: Publish package distributions to PyPI + uses: pypa/gh-action-pypi-publish@v1.8.10 \ No newline at end of file From e6915fd1dde26d4b58c0aaafcb65e8ea2c1fc3b2 Mon Sep 17 00:00:00 2001 From: Matthew Bourque Date: Thu, 28 Sep 2023 10:59:17 -0600 Subject: [PATCH 2/3] Fixed indentation, added step to download sdist --- .github/workflows/release.yml | 61 +++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 28 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 24157bf23..fbd3b47c0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,36 +20,36 @@ jobs: outputs: SDIST_NAME: ${{ steps.sdist.outputs.SDIST_NAME }} - steps: - - uses: actions/checkout@v4 - with: - # We need the full history to generate the proper version number - fetch-depth: 0 + steps: + - uses: actions/checkout@v4 + with: + # We need the full history to generate the proper version number + fetch-depth: 0 - - uses: actions/setup-python@v4 - name: Install Python - with: - python-version: '3.11' + - uses: actions/setup-python@v4 + name: Install Python + with: + python-version: '3.11' - - name: Install dependencies - run: python -m pip install build twine + - name: Install dependencies + run: python -m pip install build twine - - name: Build sdist - id: sdist - run: | - python -m build --sdist - # Get the name of the build sdist file for later use - echo "SDIST_NAME=$(ls -1 dist)" >> $GITHUB_OUTPUT + - name: Build sdist + id: sdist + run: | + python -m build --sdist + # Get the name of the build sdist file for later use + echo "SDIST_NAME=$(ls -1 dist)" >> $GITHUB_OUTPUT - - name: Check README rendering for PyPI - run: twine check dist/* + - name: Check README rendering for PyPI + run: twine check dist/* - - name: Upload sdist result - uses: actions/upload-artifact@v3 - with: - name: sdist - path: dist/*.tar.gz - if-no-files-found: error + - name: Upload sdist result + uses: actions/upload-artifact@v3 + with: + name: sdist + path: dist/*.tar.gz + if-no-files-found: error pypi-publish: name: Upload release to PyPI @@ -59,8 +59,13 @@ jobs: url: https://pypi.org/p/imap_processing permissions: id-token: write # IMPORTANT: this permission is mandatory for trusted publishing + steps: - # retrieve your distributions here + - name: Download sdist + uses: actions/download-artifact@v3 + with: + name: sdist + path: dist - - name: Publish package distributions to PyPI - uses: pypa/gh-action-pypi-publish@v1.8.10 \ No newline at end of file + - name: Publish package distributions to PyPI + uses: pypa/gh-action-pypi-publish@v1.8.10 \ No newline at end of file From 690038f65f96a9c8a62eae89e038ba9d034942ad Mon Sep 17 00:00:00 2001 From: Matthew Bourque Date: Thu, 28 Sep 2023 11:08:35 -0600 Subject: [PATCH 3/3] Workflow now triggers only on published release --- .github/workflows/release.yml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fbd3b47c0..8beee539b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,13 +4,10 @@ concurrency: group: ${{ github.workflow }}-${{ github.event.number }}-${{ github.event.ref }} cancel-in-progress: true -# (Temporary) To test this, trigger on pull request -on: [push, pull_request] - -#on: -# release: -# types: -# - published +on: + release: + types: + - published jobs: