mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-24 18:19:05 +02:00
Bumps [actions/github-script](https://github.com/actions/github-script) from 8.0.0 to 9.0.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/github-script/releases">actions/github-script's releases</a>.</em></p> <blockquote> <h2>v9.0.0</h2> <p><strong>New features:</strong></p> <ul> <li><strong><code>getOctokit</code> factory function</strong> — Available directly in the script context. Create additional authenticated Octokit clients with different tokens for multi-token workflows, GitHub App tokens, and cross-org access. See <a href="https://github.com/actions/github-script#creating-additional-clients-with-getoctokit">Creating additional clients with <code>getOctokit</code></a> for details and examples.</li> <li><strong>Orchestration ID in user-agent</strong> — The <code>ACTIONS_ORCHESTRATION_ID</code> environment variable is automatically appended to the user-agent string for request tracing.</li> </ul> <p><strong>Breaking changes:</strong></p> <ul> <li><strong><code>require('@actions/github')</code> no longer works in scripts.</strong> The upgrade to <code>@actions/github</code> v9 (ESM-only) means <code>require('@actions/github')</code> will fail at runtime. If you previously used patterns like <code>const { getOctokit } = require('@actions/github')</code> to create secondary clients, use the new injected <code>getOctokit</code> function instead — it's available directly in the script context with no imports needed.</li> <li><code>getOctokit</code> is now an injected function parameter. Scripts that declare <code>const getOctokit = ...</code> or <code>let getOctokit = ...</code> will get a <code>SyntaxError</code> because JavaScript does not allow <code>const</code>/<code>let</code> redeclaration of function parameters. Use the injected <code>getOctokit</code> directly, or use <code>var getOctokit = ...</code> if you need to redeclare it.</li> <li>If your script accesses other <code>@actions/github</code> internals beyond the standard <code>github</code>/<code>octokit</code> client, you may need to update those references for v9 compatibility.</li> </ul> <h2>What's Changed</h2> <ul> <li>Add ACTIONS_ORCHESTRATION_ID to user-agent string by <a href="https://github.com/Copilot"><code>@Copilot</code></a> in <a href="https://redirect.github.com/actions/github-script/pull/695">actions/github-script#695</a></li> <li>ci: use deployment: false for integration test environments by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/github-script/pull/712">actions/github-script#712</a></li> <li>feat!: add getOctokit to script context, upgrade <code>@actions/github</code> v9, <code>@octokit/core</code> v7, and related packages by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/github-script/pull/700">actions/github-script#700</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Copilot"><code>@Copilot</code></a> made their first contribution in <a href="https://redirect.github.com/actions/github-script/pull/695">actions/github-script#695</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/github-script/compare/v8.0.0...v9.0.0">https://github.com/actions/github-script/compare/v8.0.0...v9.0.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/actions/github-script/commit/3a2844b7e9c422d3c10d287c895573f7108da1b3"><code>3a2844b</code></a> Merge pull request <a href="https://redirect.github.com/actions/github-script/issues/700">#700</a> from actions/salmanmkc/expose-getoctokit + prepare re...</li> <li><a href="https://github.com/actions/github-script/commit/ca10bbdd1a7739de09e99a200c7a59f5d73a4079"><code>ca10bbd</code></a> fix: use <code>@octokit/core/</code>types import for v7 compatibility</li> <li><a href="https://github.com/actions/github-script/commit/86e48e20ac85c970ed1f96e718fd068173948b7b"><code>86e48e2</code></a> merge: incorporate main branch changes</li> <li><a href="https://github.com/actions/github-script/commit/c1084728b5b935ec4ddc1e4cee877b01797b3ff9"><code>c108472</code></a> chore: rebuild dist for v9 upgrade and getOctokit factory</li> <li><a href="https://github.com/actions/github-script/commit/afff112e4f8b57c718168af75b89ce00bc8d091d"><code>afff112</code></a> Merge pull request <a href="https://redirect.github.com/actions/github-script/issues/712">#712</a> from actions/salmanmkc/deployment-false + fix user-ag...</li> <li><a href="https://github.com/actions/github-script/commit/ff8117e5b78c415f814f39ad6998f424fee7b817"><code>ff8117e</code></a> ci: fix user-agent test to handle orchestration ID</li> <li><a href="https://github.com/actions/github-script/commit/81c6b7876079abe10ff715951c9fc7b3e1ab389d"><code>81c6b78</code></a> ci: use deployment: false to suppress deployment noise from integration tests</li> <li><a href="https://github.com/actions/github-script/commit/3953caf8858d318f37b6cc53a9f5708859b5a7b7"><code>3953caf</code></a> docs: update README examples from <a href="https://github.com/v8"><code>@v8</code></a> to <a href="https://github.com/v9"><code>@v9</code></a>, add getOctokit docs and v9 brea...</li> <li><a href="https://github.com/actions/github-script/commit/c17d55b90dcdb3d554d0027a6c180a7adc2daf78"><code>c17d55b</code></a> ci: add getOctokit integration test job</li> <li><a href="https://github.com/actions/github-script/commit/a047196d9a02fe92098771cafbb98c2f1814e408"><code>a047196</code></a> test: add getOctokit integration tests via callAsyncFunction</li> <li>Additional commits viewable in <a href="https://github.com/actions/github-script/compare/ed597411d8f924073f98dfc5c65a23a2325f34cd...3a2844b7e9c422d3c10d287c895573f7108da1b3">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>
173 lines
7.2 KiB
YAML
173 lines
7.2 KiB
YAML
name: Storybook Deploy
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
branch:
|
|
description: "Repository branch to publish (empty uses the selected workflow branch)"
|
|
type: string
|
|
default: ""
|
|
# Also exposed by Storybook Visual, which is already available on master.
|
|
workflow_call:
|
|
inputs:
|
|
branch:
|
|
type: string
|
|
default: ""
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
authorize:
|
|
name: Authorize Storybook publisher
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 5
|
|
outputs:
|
|
sha: ${{ steps.source.outputs.sha }}
|
|
branch: ${{ steps.source.outputs.branch }}
|
|
branch_key: ${{ steps.source.outputs.branch_key }}
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
with:
|
|
persist-credentials: false
|
|
- name: Require CODEOWNER initiator and rerunner
|
|
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
|
with:
|
|
script: |
|
|
const authorize = require('./.github/scripts/authorize-storybook-deploy.cjs');
|
|
await authorize({ github, context });
|
|
|
|
- name: Pin requested repository branch
|
|
id: source
|
|
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
|
env:
|
|
SOURCE_BRANCH: ${{ inputs.branch }}
|
|
STORYBOOK_S3_BUCKET: ${{ vars.STORYBOOK_S3_BUCKET }}
|
|
STORYBOOK_PUBLIC_BASE_URL: ${{ vars.STORYBOOK_PUBLIC_BASE_URL }}
|
|
with:
|
|
script: |
|
|
const branch = process.env.SOURCE_BRANCH || context.ref.slice('refs/heads/'.length);
|
|
const { data } = await github.rest.git.getRef({ ...context.repo, ref: `heads/${branch}` });
|
|
if (data.ref !== `refs/heads/${branch}` || data.object.type !== 'commit') {
|
|
throw new Error('Select an existing branch in this repository.');
|
|
}
|
|
// With no source override, preserve the exact dispatched commit.
|
|
const sha = process.env.SOURCE_BRANCH ? data.object.sha : context.sha;
|
|
const { storybookDestination } = require('./.github/scripts/storybook-destination.cjs');
|
|
const destination = storybookDestination({ branch, sha,
|
|
runId: context.runId, runAttempt: process.env.GITHUB_RUN_ATTEMPT,
|
|
bucket: process.env.STORYBOOK_S3_BUCKET, baseUrl: process.env.STORYBOOK_PUBLIC_BASE_URL });
|
|
core.setOutput('sha', sha);
|
|
core.setOutput('branch_key', destination.branchKey);
|
|
core.setOutput('branch', branch);
|
|
|
|
build:
|
|
name: Build selected branch Storybook
|
|
permissions: {}
|
|
needs: authorize
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 25
|
|
outputs:
|
|
artifact_name: ${{ steps.artifact.outputs.name }}
|
|
env:
|
|
STORYBOOK_DISABLE_TELEMETRY: "1"
|
|
steps:
|
|
- name: Download public source without repository credentials
|
|
env:
|
|
SOURCE_SHA: ${{ needs.authorize.outputs.sha }}
|
|
run: |
|
|
[[ "$SOURCE_SHA" =~ ^[a-f0-9]{40}$ ]]
|
|
curl --fail --silent --show-error --location --retry 3 \
|
|
"https://codeload.github.com/paperclipai/paperclip/tar.gz/$SOURCE_SHA" \
|
|
--output "$RUNNER_TEMP/source.tar.gz"
|
|
tar -xzf "$RUNNER_TEMP/source.tar.gz" --strip-components=1
|
|
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6
|
|
with:
|
|
version: 9.15.4
|
|
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7
|
|
with:
|
|
node-version: 24
|
|
package-manager-cache: false
|
|
# Feature branches omit lockfile commits; resolve their manifests just as PR CI does.
|
|
- name: Resolve branch dependency lock
|
|
run: pnpm install --resolution-only --ignore-scripts --no-frozen-lockfile
|
|
- run: pnpm install --frozen-lockfile --ignore-scripts
|
|
- run: pnpm build-storybook
|
|
- name: Record source and validate output
|
|
id: artifact
|
|
env:
|
|
SOURCE_SHA: ${{ needs.authorize.outputs.sha }}
|
|
SOURCE_BRANCH: ${{ needs.authorize.outputs.branch }}
|
|
run: |
|
|
test -s ui/storybook-static/index.html
|
|
test -s ui/storybook-static/iframe.html
|
|
test -s ui/storybook-static/index.json
|
|
jq -n --arg sha "$SOURCE_SHA" --arg branch "$SOURCE_BRANCH" \
|
|
'{sha: $sha, branch: $branch}' > ui/storybook-static/deployment.json
|
|
echo "name=storybook-deploy-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}" >> "$GITHUB_OUTPUT"
|
|
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
|
|
with:
|
|
name: ${{ steps.artifact.outputs.name }}
|
|
path: ui/storybook-static
|
|
if-no-files-found: error
|
|
retention-days: 7
|
|
|
|
deploy:
|
|
name: Publish branch Storybook to S3
|
|
needs: [authorize, build]
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 15
|
|
concurrency:
|
|
group: storybook-deploy-${{ needs.authorize.outputs.branch_key }}
|
|
cancel-in-progress: false
|
|
permissions:
|
|
contents: read
|
|
id-token: write
|
|
environment:
|
|
name: storybook-deploy
|
|
url: ${{ steps.deployment.outputs.url }}
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
with:
|
|
persist-credentials: false
|
|
sparse-checkout: .github/scripts
|
|
- name: Recheck CODEOWNER access before publishing
|
|
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
|
with:
|
|
script: |
|
|
const authorize = require('./.github/scripts/authorize-storybook-deploy.cjs');
|
|
await authorize({ github, context });
|
|
- name: Download the successful build artifact
|
|
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
|
|
with:
|
|
name: ${{ needs.build.outputs.artifact_name }}
|
|
path: storybook-static
|
|
- name: Assume the Storybook-only uploader role
|
|
uses: aws-actions/configure-aws-credentials@e6de054238d6b7531b4efff3b6587d9aade6a06c # v6
|
|
with:
|
|
role-to-assume: ${{ vars.STORYBOOK_AWS_ROLE_ARN }}
|
|
aws-region: ${{ vars.STORYBOOK_AWS_REGION }}
|
|
role-duration-seconds: 900
|
|
- name: Publish this branch preview
|
|
id: deployment
|
|
env:
|
|
SOURCE_SHA: ${{ needs.authorize.outputs.sha }}
|
|
SOURCE_BRANCH: ${{ needs.authorize.outputs.branch }}
|
|
STORYBOOK_S3_BUCKET: ${{ vars.STORYBOOK_S3_BUCKET }}
|
|
STORYBOOK_PUBLIC_BASE_URL: ${{ vars.STORYBOOK_PUBLIC_BASE_URL }}
|
|
run: node .github/scripts/publish-storybook.cjs
|
|
- name: Verify public build and stable branch URL
|
|
env:
|
|
BUILD_URL: ${{ steps.deployment.outputs.build_url }}
|
|
BRANCH_URL: ${{ steps.deployment.outputs.url }}
|
|
SOURCE_SHA: ${{ needs.authorize.outputs.sha }}
|
|
run: node .github/scripts/verify-storybook.cjs
|
|
- name: Upload deployment links
|
|
if: ${{ !cancelled() && steps.deployment.outcome == 'success' }}
|
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
|
|
with:
|
|
name: storybook-deployment-${{ github.run_id }}-${{ github.run_attempt }}
|
|
path: ${{ steps.deployment.outputs.report_path }}
|
|
if-no-files-found: error
|
|
retention-days: 30
|