Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions .github/workflows/desktop-artifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
HAS_CERT: ${{ secrets.MACOS_CERT_P12_BASE64 != '' }}
HAS_SIGN: ${{ secrets.MACOS_SIGN_IDENTITY != '' }}
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

# Same rule as the Windows job: signing is optional everywhere except
# a release tag. An unsigned .dmg is refused by Gatekeeper outright,
Expand All @@ -51,7 +51,7 @@ jobs:
run: |
echo "::error::${{ github.ref_name }} would ship an UNSIGNED macOS build. Set MACOS_SIGN_IDENTITY + MACOS_CERT_P12_BASE64."
exit 1
- uses: actions/setup-python@v7
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: "3.11"

Expand Down Expand Up @@ -218,7 +218,7 @@ jobs:
desktop/sign_mac.sh "$dmg"
done

- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: clawmetry-macos
path: dist/*.dmg
Expand Down Expand Up @@ -264,7 +264,7 @@ jobs:
HAS_AZ_SIGN: ${{ secrets.AZURE_CLIENT_ID != '' && secrets.AZ_SIGN_PROFILE != '' }}
HAS_WIN_CERT: ${{ secrets.WINDOWS_CERT_PFX_BASE64 != '' && !(secrets.AZURE_CLIENT_ID != '' && secrets.AZ_SIGN_PROFILE != '') }}
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
# A tag build that quietly produces an UNSIGNED artifact is worse
# than a failed build: it reaches users as "unknown publisher", and
# on Windows an unsigned uninstaller stub is blocked by Smart App
Expand All @@ -278,7 +278,7 @@ jobs:
run: |
echo "::error::${{ github.ref_name }} would ship an UNSIGNED Windows build. Set AZURE_CLIENT_ID + AZ_SIGN_PROFILE (Artifact Signing) or WINDOWS_CERT_PFX_BASE64."
exit 1
- uses: actions/setup-python@v7
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: "3.11"

Expand Down Expand Up @@ -323,7 +323,7 @@ jobs:
# every downstream step stay untouched.
- name: Azure login (OIDC)
if: env.HAS_AZ_SIGN == 'true'
uses: azure/login@v2
uses: azure/login@7184910d9eb2b1c5e48f7073824a90609bb9b6d6 # v2.3.1
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
Expand Down Expand Up @@ -504,7 +504,7 @@ jobs:
$pfx = Join-Path $Env:RUNNER_TEMP "codesign.pfx"
if (Test-Path $pfx) { Remove-Item $pfx -Force }

- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: clawmetry-windows
path: |
Expand All @@ -515,8 +515,8 @@ jobs:
name: Linux single-folder + AppImage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: "3.11"

Expand Down Expand Up @@ -666,7 +666,7 @@ jobs:
- name: Smoke test the AppImage
run: python3 desktop/smoke_test.py dist/clawmetry-linux.AppImage

- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: clawmetry-linux
path: |
Expand All @@ -685,7 +685,7 @@ jobs:
permissions:
contents: write
steps:
- uses: actions/download-artifact@v4
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
path: artifacts

Expand All @@ -701,7 +701,7 @@ jobs:
# must keep the release draft rather than publish a "latest" whose
# download links 404 (seen live on v0.12.674, 2026-08-10).
- name: Attach to release and publish
uses: softprops/action-gh-release@v2
uses: softprops/action-gh-release@3bb12739c298aeb8a4eeaf626c5b8d85266b0e65 # v2.6.2
with:
draft: false
make_latest: "true"
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,13 @@ jobs:
attestations: write

steps:
- uses: actions/checkout@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- uses: actions/setup-python@v7
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: "3.11"

- uses: actions/setup-node@v7
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "20"

Expand Down Expand Up @@ -97,7 +97,7 @@ jobs:
# --repo vivekchand/clawmetry` works for anyone, including an auditor who
# has no reason to take our word for what produced a wheel.
- name: Attest build provenance
uses: actions/attest-build-provenance@v3
uses: actions/attest-build-provenance@96278af6caaf10aea03fd8d33a09a777ca52d62f # v3.2.0
with:
subject-path: "dist/*"

Expand Down Expand Up @@ -125,7 +125,7 @@ jobs:
# delete the PYPI_API_TOKEN secret and this fallback step.
- name: Publish to PyPI (Trusted Publishing, attested)
if: vars.PYPI_TRUSTED_PUBLISHING == 'true'
uses: pypa/gh-action-pypi-publish@release/v1
uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
with:
attestations: true

Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/release-canary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ jobs:
outputs:
version: ${{ steps.resolve.outputs.version }}
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: "3.11"

Expand Down Expand Up @@ -103,8 +103,8 @@ jobs:
- os: ubuntu-latest
python-version: "3.9"
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: ${{ matrix.python-version }}

Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/release-on-merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
actions: write

steps:
- uses: actions/checkout@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
# The MERGE COMMIT, not the branch ref: on pull_request-closed the
Expand All @@ -41,7 +41,7 @@ jobs:
# feature code absent). The merge_commit_sha is exact by definition.
ref: ${{ github.event.pull_request.merge_commit_sha }}

- uses: actions/setup-python@v7
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: "3.11"

Expand Down Expand Up @@ -193,7 +193,7 @@ jobs:
# this; this path (the actual [RELEASE] publish) did not, so PyPI shipped
# whatever dist happened to be committed — which lags source whenever a
# v2 PR lands without rebuilding the bundle.
- uses: actions/setup-node@v7
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "20"

Expand Down Expand Up @@ -314,7 +314,7 @@ jobs:
# lives in one file (tests/e2e/cloud-contract.mjs) and both
# pipelines pick it up automatically.
- name: Set up Node for cloud-contract spec
uses: actions/setup-node@v7
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: '20'

Expand Down
Loading