Merge pull request #231 from sandialabs/pre-commit-ci-update-config #187
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@6df5e876c8682fe0753ec2f8c81eb45547e52747 # v10.4.0 | |
with: | |
git_committer_email: "staged-script-semantic-release@sandia.gov" | |
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/generator_generic_slsa3.yml@v2.1.0 | |
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@4681bbe581b99f950d7b6f14599870b6a117fdc1 # v10.4.0 | |
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@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # release/v1 |