mirror of
https://github.com/agentclientprotocol/claude-agent-acp.git
synced 2026-10-27 04:30:59 +00:00
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 7.0.0 to 7.1.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/setup-node/releases">actions/setup-node's releases</a>.</em></p> <blockquote> <h2>v7.1.0</h2> <h2>What's Changed</h2> <h3>Enhancements:</h3> <ul> <li>Add support for mise.toml file by <a href="https://github.com/gperdomor"><code>@gperdomor</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1421">actions/setup-node#1421</a></li> <li>Support absolute paths in node-version-file by <a href="https://github.com/v-mahabaleshwars"><code>@v-mahabaleshwars</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1633">actions/setup-node#1633</a></li> </ul> <h3>Bug fixes:</h3> <ul> <li>Add Node version validation and manifest fetch retry by <a href="https://github.com/v-jitenderpalsingh"><code>@v-jitenderpalsingh</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1580">actions/setup-node#1580</a></li> </ul> <h3>Documentation updates:</h3> <ul> <li>README.md: bump actions/checkout to latest version 7 by <a href="https://github.com/deining"><code>@deining</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1578">actions/setup-node#1578</a></li> <li>docs: add V7 ESM migration and NODE_AUTH_TOKEN behavior change by <a href="https://github.com/v-gowridurgad"><code>@v-gowridurgad</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1593">actions/setup-node#1593</a></li> <li>Fixed cache recommendation syntax by <a href="https://github.com/SubJunk"><code>@SubJunk</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1603">actions/setup-node#1603</a></li> </ul> <h3>Dependency updates:</h3> <ul> <li>Update workflow pins and migrate Node matrices to modern versions by <a href="https://github.com/v-HarithaVattikuti"><code>@v-HarithaVattikuti</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1583">actions/setup-node#1583</a></li> <li>Upgrade <code>@actions/cache</code> to 6.2.0 by <a href="https://github.com/philip-gai"><code>@philip-gai</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1584">actions/setup-node#1584</a></li> <li>Pin <code>@types/node</code> to v24 by <a href="https://github.com/v-priyagupta108"><code>@v-priyagupta108</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1585">actions/setup-node#1585</a></li> <li>Override brace-expansion to 5.0.8 by <a href="https://github.com/v-priyagupta108"><code>@v-priyagupta108</code></a> with <a href="https://github.com/Copilot"><code>@Copilot</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1599">actions/setup-node#1599</a></li> <li>Upgrade actions/checkout from 7.0.0 to 7.0.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1598">actions/setup-node#1598</a></li> <li>Upgrade prettier from 3.8.4 to 3.9.6 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1590">actions/setup-node#1590</a></li> <li>Upgrade <code>@vercel/ncc</code> from 0.44.0 to 0.45.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1610">actions/setup-node#1610</a></li> <li>Upgrade pnpm/action-setup from 6.0.9 to 6.0.10 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1602">actions/setup-node#1602</a></li> <li>Upgrade baseline-browser-mapping from 2.10.38 to 2.11.22 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1629">actions/setup-node#1629</a></li> <li>Upgrade <code>@types/semver</code> from 7.7.1 to 7.8.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1616">actions/setup-node#1616</a></li> <li>Upgrade <code>@typescript-eslint/parser</code> from 8.62.0 to 8.70.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1615">actions/setup-node#1615</a></li> <li>Upgrade pnpm/action-setup from 6.0.10 to 6.1.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1631">actions/setup-node#1631</a></li> <li>Upgrade jest-each from 30.4.1 to 30.5.2 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1636">actions/setup-node#1636</a></li> <li>Upgrade eslint-plugin-n from 18.1.0 to 18.3.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1638">actions/setup-node#1638</a></li> <li>Update dependencies and add license files by <a href="https://github.com/v-HarithaVattikuti"><code>@v-HarithaVattikuti</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1642">actions/setup-node#1642</a></li> <li>Upgrade eslint from 10.5.0 to 10.11.0 and package.json from 7.0.0 to 7.1.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1635">actions/setup-node#1635</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/v-jitenderpalsingh"><code>@v-jitenderpalsingh</code></a> made their first contribution in <a href="https://redirect.github.com/actions/setup-node/pull/1580">actions/setup-node#1580</a></li> <li><a href="https://github.com/philip-gai"><code>@philip-gai</code></a> made their first contribution in <a href="https://redirect.github.com/actions/setup-node/pull/1584">actions/setup-node#1584</a></li> <li><a href="https://github.com/gperdomor"><code>@gperdomor</code></a> made their first contribution in <a href="https://redirect.github.com/actions/setup-node/pull/1421">actions/setup-node#1421</a></li> <li><a href="https://github.com/SubJunk"><code>@SubJunk</code></a> made their first contribution in <a href="https://redirect.github.com/actions/setup-node/pull/1603">actions/setup-node#1603</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/setup-node/compare/v7.0.0...v7.1.0">https://github.com/actions/setup-node/compare/v7.0.0...v7.1.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="949feb2413"><code>949feb2</code></a> Bump eslint from 10.5.0 to 10.11.0 and package.json from 7.0.0 to 7.1.0 (<a href="https://redirect.github.com/actions/setup-node/issues/1635">#1635</a>)</li> <li><a href="7207c4f118"><code>7207c4f</code></a> chore: update dependencies and add license files (<a href="https://redirect.github.com/actions/setup-node/issues/1642">#1642</a>)</li> <li><a href="54337e0d02"><code>54337e0</code></a> Bump eslint-plugin-n from 18.1.0 to 18.3.0 (<a href="https://redirect.github.com/actions/setup-node/issues/1638">#1638</a>)</li> <li><a href="fb54fa8c14"><code>fb54fa8</code></a> Bump jest-each from 30.4.1 to 30.5.2 (<a href="https://redirect.github.com/actions/setup-node/issues/1636">#1636</a>)</li> <li><a href="7f84f1d52d"><code>7f84f1d</code></a> Bump pnpm/action-setup from 6.0.10 to 6.1.0 (<a href="https://redirect.github.com/actions/setup-node/issues/1631">#1631</a>)</li> <li><a href="0c54c7b074"><code>0c54c7b</code></a> Bump <code>@typescript-eslint/parser</code> from 8.62.0 to 8.70.0 (<a href="https://redirect.github.com/actions/setup-node/issues/1615">#1615</a>)</li> <li><a href="a829419004"><code>a829419</code></a> Bump <code>@types/semver</code> from 7.7.1 to 7.8.0 (<a href="https://redirect.github.com/actions/setup-node/issues/1616">#1616</a>)</li> <li><a href="680d1e489b"><code>680d1e4</code></a> Support absolute paths in node-version-file (<a href="https://redirect.github.com/actions/setup-node/issues/1633">#1633</a>)</li> <li><a href="db0fb3a98e"><code>db0fb3a</code></a> Bump baseline-browser-mapping from 2.10.38 to 2.11.22 (<a href="https://redirect.github.com/actions/setup-node/issues/1629">#1629</a>)</li> <li><a href="94196ee1d1"><code>94196ee</code></a> Bump pnpm/action-setup from 6.0.9 to 6.0.10 (<a href="https://redirect.github.com/actions/setup-node/issues/1602">#1602</a>)</li> <li>Additional commits viewable in <a href="8207627860...949feb2413">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
274 lines
11 KiB
YAML
274 lines
11 KiB
YAML
name: Publish and Release
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
workflow_dispatch:
|
|
inputs:
|
|
channel:
|
|
description: Which channel to publish
|
|
required: true
|
|
default: stable
|
|
type: choice
|
|
options:
|
|
- stable
|
|
- preview
|
|
ref:
|
|
description: Tag or commit to publish
|
|
required: true
|
|
type: string
|
|
publish_npm:
|
|
description: Publish the package before updating the registry (stable only)
|
|
required: true
|
|
default: true
|
|
type: boolean
|
|
|
|
jobs:
|
|
release-please:
|
|
if: ${{ github.event_name == 'push' }}
|
|
runs-on: ubuntu-latest
|
|
environment: release # Optional: for enhanced security
|
|
permissions:
|
|
contents: write
|
|
issues: write
|
|
pull-requests: write
|
|
steps:
|
|
# Generating a GitHub token, so that PRs and tags created by
|
|
# the release-please-action can trigger actions workflows.
|
|
- name: Generate GitHub token
|
|
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1
|
|
id: generate-token
|
|
with:
|
|
# GitHub App ID secret name
|
|
app-id: ${{ secrets.RELEASE_PLZ_APP_ID }}
|
|
# GitHub App private key secret name
|
|
private-key: ${{ secrets.RELEASE_PLZ_APP_PRIVATE_KEY }}
|
|
- uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7
|
|
id: release
|
|
with:
|
|
token: ${{ steps.generate-token.outputs.token }}
|
|
# Do not add release-type here. The action ignores config-file whenever
|
|
# release-type is set, which silently disables the pre-1.0 versioning
|
|
# rules in release-please-config.json and lets a breaking change jump
|
|
# straight to 1.0.0. The node release type is declared in that config
|
|
# instead, so nothing is lost by leaving this out.
|
|
config-file: release-please-config.json
|
|
manifest-file: .release-please-manifest.json
|
|
outputs:
|
|
release_created: ${{ steps.release.outputs.release_created }}
|
|
tag_name: ${{ steps.release.outputs.tag_name }}
|
|
|
|
publish-npm:
|
|
name: Publish to npm
|
|
runs-on: ubuntu-latest
|
|
needs: [release-please]
|
|
if: ${{ always() && ((github.event_name == 'workflow_dispatch' && inputs.channel == 'stable' && inputs.publish_npm) || needs.release-please.outputs.release_created == 'true') }}
|
|
environment: release # Optional: for enhanced security
|
|
permissions:
|
|
contents: read
|
|
id-token: write
|
|
outputs:
|
|
version: ${{ steps.publish.outputs.version }}
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
|
|
with:
|
|
ref: ${{ github.event_name == 'workflow_dispatch' && inputs.ref || github.ref }}
|
|
# Setup .npmrc file to publish to npm
|
|
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1
|
|
with:
|
|
node-version: "lts/*"
|
|
registry-url: "https://registry.npmjs.org"
|
|
- run: npm ci
|
|
- run: npm run build
|
|
- name: Publish
|
|
id: publish
|
|
run: |
|
|
version="$(node -p "require('./package.json').version")"
|
|
npm publish
|
|
echo "version=$version" >> "$GITHUB_OUTPUT"
|
|
|
|
# Same shape as publish-npm. Tagging is a separate job, so nothing here needs
|
|
# write access to the repository.
|
|
publish-npm-preview:
|
|
name: Publish preview to npm
|
|
runs-on: ubuntu-latest
|
|
# Every push to main gets a preview without waiting for CI or release-please,
|
|
# except release-please's own release merge, which publishes a stable version.
|
|
# Check the commit author and the generated release subject to avoid publishing
|
|
# the same tree twice; either match is enough to skip the preview.
|
|
if: >-
|
|
${{
|
|
(github.event_name == 'workflow_dispatch' && inputs.channel == 'preview') ||
|
|
(github.event_name == 'push'
|
|
&& github.event.head_commit.author.name != 'acp-release-bot[bot]'
|
|
&& !startsWith(github.event.head_commit.message, 'chore(main): release '))
|
|
}}
|
|
# Same environment as the stable job, so the npm trusted-publisher binding holds.
|
|
# It carries no required reviewers, so previews never wait for an approval.
|
|
environment: release
|
|
permissions:
|
|
contents: read
|
|
id-token: write # npm OIDC trusted publishing
|
|
timeout-minutes: 15
|
|
# Serialise previews so two pushes cannot read the same registry state and compute
|
|
# the same -preview.N. Job-level rather than workflow-level: a workflow-level group
|
|
# would also serialise release-please, and cancelling a queued release-please run
|
|
# means a release PR that silently stops updating. The trade-off is that GitHub
|
|
# keeps only one run pending per group, so a third push landing while one preview
|
|
# runs and another waits drops the waiting one — that commit gets no preview, but a
|
|
# version is never reused.
|
|
concurrency:
|
|
group: publish-npm-preview
|
|
cancel-in-progress: false
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
|
|
with:
|
|
# Publish the exact pushed commit, or the explicitly requested manual ref.
|
|
ref: ${{ github.event_name == 'workflow_dispatch' && inputs.ref || github.sha }}
|
|
# Brings the tags the version calculation reads as its floor. The repo is a
|
|
# few megabytes packed, so a full fetch is cheap and sidesteps every
|
|
# shallow-clone tag caveat.
|
|
fetch-depth: 0
|
|
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1
|
|
with:
|
|
node-version: "lts/*"
|
|
registry-url: "https://registry.npmjs.org"
|
|
# Ahead of the version bump, so this still validates the committed lockfile.
|
|
- run: npm ci
|
|
- name: Compute the preview version
|
|
id: preview
|
|
run: |
|
|
version="$(node scripts/next-preview-version.mjs)"
|
|
sha="$(git rev-parse HEAD)"
|
|
echo "version=$version" >> "$GITHUB_OUTPUT"
|
|
echo "sha=$sha" >> "$GITHUB_OUTPUT"
|
|
echo "Preview \`$version\` from \`$sha\`" >> "$GITHUB_STEP_SUMMARY"
|
|
- name: Apply the version to the working tree only
|
|
# Never committed: package.json and .release-please-manifest.json on main stay
|
|
# release-please's to own, and this only changes what goes into the tarball.
|
|
# `npm version` keeps package-lock.json's version fields in step, and
|
|
# --no-git-tag-version skips every git operation.
|
|
run: npm version "${{ steps.preview.outputs.version }}" --no-git-tag-version
|
|
- run: npm run build
|
|
- name: Publish
|
|
id: publish
|
|
# --tag is mandatory: npm publish defaults to `latest` even for a semver
|
|
# prerelease, which would point every plain `npm install` at a preview.
|
|
run: |
|
|
npm publish --tag preview
|
|
echo "published=true" >> "$GITHUB_OUTPUT"
|
|
outputs:
|
|
published: ${{ steps.publish.outputs.published }}
|
|
version: ${{ steps.preview.outputs.version }}
|
|
sha: ${{ steps.preview.outputs.sha }}
|
|
|
|
publish-tag-preview:
|
|
name: Tag the published preview
|
|
runs-on: ubuntu-latest
|
|
needs: publish-npm-preview
|
|
if: ${{ needs.publish-npm-preview.outputs.published == 'true' }}
|
|
environment: release
|
|
permissions:
|
|
contents: write # create refs/tags/v<version>
|
|
timeout-minutes: 5
|
|
steps:
|
|
# A re-run carries over the outputs of jobs it did not re-run. If that ever stops
|
|
# holding, fail with the manual recipe rather than tagging the wrong commit.
|
|
- name: Check the publish handed over a version and a commit
|
|
env:
|
|
VERSION: ${{ needs.publish-npm-preview.outputs.version }}
|
|
SHA: ${{ needs.publish-npm-preview.outputs.sha }}
|
|
run: |
|
|
if [ -z "$VERSION" ] || [ -z "$SHA" ]; then
|
|
echo "::error::publish-npm-preview reported version='$VERSION' sha='$SHA'." \
|
|
"Tag it by hand — see docs/RELEASES.md, 'A preview published but the" \
|
|
"commit was not tagged'."
|
|
exit 1
|
|
fi
|
|
- name: Create the tag
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
VERSION: ${{ needs.publish-npm-preview.outputs.version }}
|
|
SHA: ${{ needs.publish-npm-preview.outputs.sha }}
|
|
run: |
|
|
gh api "repos/$GITHUB_REPOSITORY/git/refs" \
|
|
-f ref="refs/tags/v$VERSION" \
|
|
-f sha="$SHA"
|
|
echo "Tagged \`v$VERSION\` at \`$SHA\`" >> "$GITHUB_STEP_SUMMARY"
|
|
|
|
trigger-registry-update:
|
|
needs: [publish-npm, publish-npm-preview]
|
|
# Both channels dispatch this: the registry has its own handling for preview
|
|
# versions. The two never fire together — a release merge publishes stable and
|
|
# skips the preview, and every other push does the reverse — so the registry sees
|
|
# exactly one dispatch per published version. The payload is deliberately
|
|
# unchanged: it names no version, and the registry resolves what it needs itself.
|
|
if: >-
|
|
${{
|
|
always() && (
|
|
needs.publish-npm.result == 'success'
|
|
|| needs.publish-npm-preview.outputs.published == 'true'
|
|
|| (github.event_name == 'workflow_dispatch' && inputs.channel == 'stable' && !inputs.publish_npm)
|
|
)
|
|
}}
|
|
runs-on: ubuntu-latest
|
|
environment: release
|
|
permissions: {}
|
|
# npm metadata is normally visible within about five minutes. Leave 2.5x that
|
|
# window for propagation, plus enough time to mint the token and dispatch.
|
|
timeout-minutes: 15
|
|
steps:
|
|
- name: Wait for package to become available
|
|
if: ${{ needs.publish-npm.result == 'success' || needs.publish-npm-preview.outputs.published == 'true' }}
|
|
env:
|
|
PACKAGE: "@agentclientprotocol/claude-agent-acp"
|
|
VERSION: ${{ needs.publish-npm-preview.outputs.version || needs.publish-npm.outputs.version }}
|
|
#language=bash
|
|
run: |
|
|
if [ -z "$VERSION" ]; then
|
|
echo "::error::The publish job did not report a package version."
|
|
exit 1
|
|
fi
|
|
|
|
deadline=$((SECONDS + 750))
|
|
while (( SECONDS < deadline )); do
|
|
if timeout 10s npm pack "$PACKAGE@$VERSION" \
|
|
--dry-run \
|
|
--ignore-scripts \
|
|
--silent \
|
|
--registry=https://registry.npmjs.org \
|
|
--prefer-online \
|
|
--fetch-retries=0 >/dev/null 2>&1; then
|
|
echo "$PACKAGE@$VERSION is available from npm."
|
|
exit 0
|
|
fi
|
|
|
|
remaining=$((deadline - SECONDS))
|
|
if (( remaining > 0 )); then
|
|
echo "Waiting for $PACKAGE@$VERSION to become available (${remaining}s remaining)..."
|
|
sleep 10
|
|
fi
|
|
done
|
|
|
|
echo "::error::$PACKAGE@$VERSION was not available from npm after 12.5 minutes."
|
|
exit 1
|
|
|
|
- name: Generate token scoped to the registry repo
|
|
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1
|
|
id: registry-token
|
|
with:
|
|
app-id: ${{ secrets.REGISTRY_UPDATER_APP_ID }}
|
|
private-key: ${{ secrets.REGISTRY_UPDATER_APP_PRIVATE_KEY }}
|
|
owner: ${{ github.repository_owner }}
|
|
repositories: registry
|
|
|
|
- name: Dispatch registry version update
|
|
env:
|
|
GH_TOKEN: ${{ steps.registry-token.outputs.token }}
|
|
run: |
|
|
gh workflow run update-versions.yml \
|
|
--repo ${{ github.repository_owner }}/registry \
|
|
--ref main \
|
|
-f apply=true \
|
|
-f agents=claude-acp
|