1+ # Triggered by: python scripts/release.py --push
2+ # (tags vX.Y.Z and pushes, which triggers this workflow)
3+
14name : Release
25
36on :
1316 runs-on : ubuntu-latest
1417 steps :
1518 - uses : actions/checkout@v4
19+ with :
20+ fetch-depth : 0
1621
1722 - uses : actions/setup-node@v4
1823 with :
@@ -26,33 +31,78 @@ jobs:
2631 - name : Check dist is up to date
2732 run : git diff --exit-code -- dist/ ':!dist/**/*.d.ts.map'
2833
34+ # --- Artifact signing (mirrors auths/auths release workflow) ---
35+ - name : Install auths CLI
36+ run : |
37+ curl -sL https://github.com/auths-dev/auths/releases/latest/download/auths-linux-x86_64.tar.gz | tar xz -C /usr/local/bin
38+
39+ - name : Sign dist/index.js
40+ env :
41+ AUTHS_PASSPHRASE : ${{ secrets.AUTHS_CI_PASSPHRASE }}
42+ AUTHS_CI_KEYCHAIN_B64 : ${{ secrets.AUTHS_CI_KEYCHAIN }}
43+ AUTHS_CI_IDENTITY_BUNDLE_B64 : ${{ secrets.AUTHS_CI_IDENTITY_BUNDLE }}
44+ AUTHS_KEYCHAIN_BACKEND : file
45+ AUTHS_KEYCHAIN_FILE : /tmp/auths-ci-keychain
46+ run : |
47+ if [ -z "$AUTHS_PASSPHRASE" ] || [ -z "$AUTHS_CI_KEYCHAIN_B64" ] || [ -z "$AUTHS_CI_IDENTITY_BUNDLE_B64" ]; then
48+ echo "::warning::Skipping artifact signing: AUTHS_CI_PASSPHRASE, AUTHS_CI_KEYCHAIN, and AUTHS_CI_IDENTITY_BUNDLE must all be set"
49+ exit 0
50+ fi
51+
52+ printf '%s' "$AUTHS_CI_KEYCHAIN_B64" | tr -d '[:space:]' | base64 -d > /tmp/auths-ci-keychain
53+ mkdir -p /tmp/auths-identity
54+ printf '%s' "$AUTHS_CI_IDENTITY_BUNDLE_B64" | tr -d '[:space:]' | base64 -d | tar -xz -C /tmp/auths-identity
55+
56+ if ! git -C /tmp/auths-identity rev-parse --git-dir > /dev/null 2>&1; then
57+ echo "::warning::Skipping artifact signing: AUTHS_CI_IDENTITY_BUNDLE does not contain a valid git repository"
58+ exit 0
59+ fi
60+
61+ auths artifact sign dist/index.js \
62+ --device-key ci-release-device \
63+ --note "GitHub Actions release — ${GITHUB_REF_NAME}" \
64+ --repo /tmp/auths-identity
65+
66+ echo "Signed dist/index.js → dist/index.js.auths.json"
67+
68+ - name : Generate SHA256 checksums
69+ run : |
70+ cd dist
71+ sha256sum index.js > index.js.sha256
72+ if [ -f index.js.auths.json ]; then
73+ sha256sum index.js.auths.json >> index.js.sha256
74+ fi
75+ cat index.js.sha256
76+
2977 - name : Create GitHub Release
3078 uses : softprops/action-gh-release@v2
3179 with :
3280 generate_release_notes : true
3381 make_latest : true
82+ files : |
83+ dist/index.js.auths.json
84+ dist/index.js.sha256
3485 body : |
3586 ## Auths Verify GitHub Action
3687
37- Verify commit signatures in your CI pipeline using [Auths](https://github.com/auths-dev/auths) identity keys.
38-
39- ### Features
40- - Verifies SSH commit signatures against an allowed signers file or identity bundle
41- - Auto-downloads the `auths` CLI at runtime
42- - SHA256 checksum verification on downloaded binaries
43- - Supports `pull_request` and `push` events with automatic commit range detection
44- - GitHub Step Summary with per-commit verification results
45- - Optional PR comments with fix instructions for unsigned commits
46- - Skips merge commits and GPG-signed commits by default
88+ Verify commit signatures and artifact attestations in your CI pipeline using [Auths](https://github.com/auths-dev/auths) identity keys.
4789
4890 ### Usage
4991
5092 ```yaml
51- - uses: auths-dev/auths-verify-github-action@v1
93+ - uses: auths-dev/auths-verify-github-action@${{ github.ref_name }}
5294 with:
5395 allowed-signers: '.auths/allowed_signers'
5496 ```
5597
98+ **New: Artifact verification**
99+ ```yaml
100+ - uses: auths-dev/auths-verify-github-action@${{ github.ref_name }}
101+ with:
102+ identity-bundle: ${{ secrets.AUTHS_IDENTITY_BUNDLE }}
103+ artifact-paths: 'dist/*.tar.gz'
104+ ```
105+
56106 See the [README](https://github.com/auths-dev/auths-verify-github-action#readme) for full configuration options.
57107
58108 - name : Update floating major tag
0 commit comments