Skip to content

build(deps): bump @sentry/node from 9.26.0 to 10.23.0 #1793

build(deps): bump @sentry/node from 9.26.0 to 10.23.0

build(deps): bump @sentry/node from 9.26.0 to 10.23.0 #1793

name: Public Package Build
on:
pull_request_target:
types: [opened, synchronize, labeled, reopened]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
approval-reminder:
if: |
github.event_name == 'pull_request_target' &&
github.event.pull_request.head.repo.fork &&
!contains(github.event.pull_request.labels.*.name, 'approve public build')
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: actions/github-script@v8
with:
script: |
const { data: comments } = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
per_page: 100
});
const exists = comments.some(c =>
c.user.login === "github-actions[bot]" &&
c.body.includes("Preview build of published Zudoku package")
);
if (!exists) {
const body = `Preview build of published Zudoku package
> [!WARNING]
> This PR is from an external contributor. To run the public package build workflow, a maintainer must add the \`approve public build\` label after reviewing the changes.`;
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body,
});
}
run:
runs-on: ubuntu-latest
# Run on internal PRs or external PRs with 'approve public build' label
if: |
(github.event_name == 'pull_request_target' && !github.event.pull_request.head.repo.fork) ||
(github.event_name == 'pull_request_target' && contains(github.event.pull_request.labels.*.name, 'approve public build'))
permissions:
contents: read
id-token: write
deployments: write
pull-requests: write
steps:
- uses: actions/checkout@v5
with:
# Safe: Only runs after maintainer approval via 'approve public build' label
ref: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || '' }}
- uses: pnpm/action-setup@v4
with:
run_install: false
- uses: actions/setup-node@v6
with:
node-version-file: ".tool-versions"
cache: "pnpm"
- name: Install global dependencies
run: npm install -g verdaccio nx npm-auth-to-token wrangler
- name: Start local NPM registry
run: |
tmp_registry_log=$(mktemp)
nohup verdaccio &>$tmp_registry_log &
grep -q 'http address' <(tail -f $tmp_registry_log)
npm-auth-to-token -u test -p test -e [email protected] -r http://localhost:4873
- name: Run first pnpm install
run: pnpm install
- name: Build and publish package
run: nx run zudoku:publish:local
- name: Update package.json
run: |
VERSION=$(node -p "require('./packages/zudoku/package.json').version")
cd examples/cosmo-cargo
pnpm pkg set "devDependencies.zudoku=$VERSION"
- name: Run second pnpm install
run: pnpm install --no-frozen-lockfile --prefer-offline --registry http://localhost:4873
- name: Build Cosmo Cargo example
run: nx run cosmo-cargo:build
- name: Smoke Test
run: |
echo "Testing built files in examples/cosmo-cargo/dist"
# Check if index.html exists
if [ ! -f "examples/cosmo-cargo/dist/index.html" ]; then
echo "::error::index.html not found in build output"
exit 1
fi
# Check for expected content in index.html
if ! grep -q "Cosmo Cargo" examples/cosmo-cargo/dist/index.html; then
echo "::error::Could not find 'Cosmo Cargo' in index.html"
echo "index.html content preview:"
head -n 20 examples/cosmo-cargo/dist/index.html
exit 1
fi
# Check if main JS bundle exists
if [ ! -d "examples/cosmo-cargo/dist/assets" ]; then
echo "::error::Assets directory not found in build output"
exit 1
fi
if ! find examples/cosmo-cargo/dist/assets -name '*.js' -type f | grep -q .; then
echo "::error::No JavaScript bundles found in assets directory"
exit 1
fi
echo "✅ Smoke test passed - build output contains expected files and content"
- name: Deploy to Cloudflare Pages
id: deploy
uses: cloudflare/wrangler-action@v3
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.COSMO_CARGO_CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.COSMO_CARGO_CLOUDFLARE_ACCOUNT_ID }}
with:
apiToken: ${{ secrets.COSMO_CARGO_CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.COSMO_CARGO_CLOUDFLARE_ACCOUNT_ID }}
command: pages deploy examples/cosmo-cargo/dist --project-name=cosmocargo-public-package
- name: Comment PR
uses: actions/github-script@v8
with:
script: |
const deploymentUrl = "${{ steps.deploy.outputs.deployment-url }}";
const sha = "${{ github.event.pull_request.head.sha }}" || "${{ github.sha }}";
const comment = `Preview build of published Zudoku package for commit ${sha}.
See the deployment at: **${deploymentUrl}**
> [!NOTE]
> This is a preview of the Cosmo Cargo example using the Zudoku package published to [a local registry](https://verdaccio.org) to ensure it'll be working when published to the public NPM registry.
_Last updated: ${new Date().toISOString()}_`;
try {
const { data: comments } = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
per_page: 100
});
const botComment = comments.find((c) =>
c.user.login === "github-actions[bot]" &&
c.body.includes("Preview build of published Zudoku package")
);
if (botComment) {
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: botComment.id,
body: comment
});
} else {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: comment
});
}
} catch (error) {
core.error(`Failed to comment on PR: ${error.message}`);
throw error;
}