Merge pull request #224 from sandialabs/pre-commit-ci-update-config #158
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Semantic Release | |
on: | |
push: | |
branches: | |
- master | |
permissions: | |
contents: read | |
concurrency: | |
group: release | |
jobs: | |
release: | |
runs-on: ubuntu-latest | |
environment: release | |
permissions: | |
id-token: write | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@ec9f2d5744a09debf3a187a3f4f675c53b671911 # v2.13.0 | |
with: | |
egress-policy: audit | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
fetch-depth: 0 | |
token: ${{ secrets.GH_TOKEN }} | |
- name: Python Semantic Release | |
id: release | |
uses: python-semantic-release/python-semantic-release@5b9d941d5b29da138b933660ce1a9df75b54ce25 # v10.3.1 | |
with: | |
git_committer_email: "[email protected]" | |
git_committer_name: "semantic-release" | |
github_token: ${{ secrets.GH_TOKEN }} | |
ssh_private_signing_key: ${{ secrets.SEMANTIC_RELEASE_PRIVATE_KEY }} | |
ssh_public_signing_key: ${{ secrets.SEMANTIC_RELEASE_PUBLIC_KEY }} | |
- name: Hash Build Artifacts | |
if: steps.release.outputs.released == 'true' | |
id: hash | |
run: | | |
cd dist | |
echo "hashes=$(find . -type f -exec sha256sum {} + | sort | base64 | tr -d '\n')" >> "$GITHUB_OUTPUT" | |
- name: Upload Build Artifacts | |
if: steps.release.outputs.released == 'true' | |
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 | |
with: | |
name: dist | |
path: dist/ | |
outputs: | |
hashes: ${{ steps.hash.outputs.hashes }} | |
released: ${{ steps.release.outputs.released }} | |
provenance: | |
needs: release | |
if: ${{ needs.release.outputs.released == 'true' }} | |
permissions: | |
actions: read | |
id-token: write | |
contents: write | |
uses: slsa-framework/slsa-github-generator/.github/workflows/[email protected] | |
with: | |
base64-subjects: "${{ needs.release.outputs.hashes }}" | |
publish: | |
runs-on: ubuntu-latest | |
needs: [release, provenance] | |
if: ${{ needs.release.outputs.released == 'true' && needs.provenance.outputs.outcome == 'success' }} | |
environment: release | |
permissions: | |
id-token: write | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@ec9f2d5744a09debf3a187a3f4f675c53b671911 # v2.13.0 | |
with: | |
egress-policy: audit | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
fetch-depth: 0 | |
token: ${{ secrets.GH_TOKEN }} | |
- name: Download Build Artifacts | |
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 | |
with: | |
name: dist | |
path: dist | |
- name: Download Provenance | |
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 | |
with: | |
name: ${{ needs.provenance.outputs.provenance-name }} | |
path: dist | |
- name: Publish to GitHub Releases | |
uses: python-semantic-release/publish-action@f8a3b2efc2282bc5219b83ba78ac64b69d6e05b9 # v10.3.1 | |
with: | |
github_token: ${{ secrets.GH_TOKEN }} | |
- name: Remove Provenance for PyPI Upload | |
run: rm -f dist/${{ needs.provenance.outputs.provenance-name }} | |
- name: Publish to PyPI | |
uses: pypa/gh-action-pypi-publish@76f52bc884231f62b9a034ebfe128415bbaabdfc # release/v1 |