name: automated tagged release with slsa 3 compliance on: push: tags: - '*' jobs: build: runs-on: ubuntu-latest if: github.ref == 'refs/heads/main' permissions: contents: write outputs: hashes: ${{ steps.hash.outputs.hashes }} steps: - name: checkout uses: actions/checkout@v3 - name: install devbox uses: jetpack-io/devbox-install-action@v0.3.0 - name: install dependencies run: devbox run poetry install - name: run releaser.py run: devbox run python releaser.py - name: build project id: build run: devbox run poetry build - name: duplicate non-versioned wheel run: cp dist/surplus-*.whl dist/surplus-latest-py3-none-any.whl - name: generate provenance subjects id: hash run: | cd dist HASHES=$(sha256sum * | base64 -w0) echo "hashes=$HASHES" >> "$GITHUB_OUTPUT" - name: release uses: softprops/action-gh-release@v0.1.15 if: startsWith(github.ref, 'refs/tags/') with: files: | dist/*.whl provenance: needs: [build] permissions: actions: read id-token: write contents: write uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v1.6.0 with: base64-subjects: "${{ needs.build.outputs.hashes }}" upload-assets: true