Use a commit hash in CI for the rust-lang/crates-io-auth-action (#19)
#2
Workflow file for this run
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: Publish to crates.io | |
| on: | |
| push: | |
| tags: ['v*'] | |
| jobs: | |
| test: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Print environment (debug) | |
| run: env | |
| - name: Fetch sources | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Run tests | |
| uses: frequenz-floss/[email protected] | |
| create-github-release: | |
| needs: ["test"] | |
| name: Create GitHub release | |
| runs-on: ubuntu-24.04 | |
| permissions: | |
| # We need write permissions on contents to create GitHub releases and on | |
| # discussions to create the release announcement in the discussion forums | |
| contents: write | |
| discussions: write | |
| steps: | |
| - name: Download RELEASE_NOTES.md | |
| run: | | |
| set -ux | |
| gh api \ | |
| -X GET \ | |
| -f ref=$REF \ | |
| -H "Accept: application/vnd.github.raw" \ | |
| "/repos/$REPOSITORY/contents/RELEASE_NOTES.md" \ | |
| > RELEASE_NOTES.md | |
| env: | |
| REF: ${{ github.ref }} | |
| REPOSITORY: ${{ github.repository }} | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Create GitHub release | |
| run: | | |
| set -ux | |
| extra_opts= | |
| if echo "$REF_NAME" | grep -- -; then extra_opts=" --prerelease"; fi | |
| gh release create \ | |
| -R "$REPOSITORY" \ | |
| --notes-file RELEASE_NOTES.md \ | |
| --generate-notes \ | |
| $extra_opts \ | |
| $REF_NAME \ | |
| dist/* | |
| env: | |
| REF_NAME: ${{ github.ref_name }} | |
| REPOSITORY: ${{ github.repository }} | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| publish: | |
| needs: ["create-github-release"] | |
| runs-on: ubuntu-24.04 | |
| environment: release | |
| permissions: | |
| id-token: write | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: rust-lang/crates-io-auth-action@b7e9a28eded4986ec6b1fa40eeee8f8f165559ec # v1.0.3 | |
| id: auth | |
| - run: cargo publish | |
| env: | |
| CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} |