-
Notifications
You must be signed in to change notification settings - Fork 15
fix: Replace reusable workflow with standalone canary release #1189
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
2a48ffc
3216eb2
c242c72
e172653
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -6,7 +6,184 @@ on: | |||||||||||||||||
| - created | ||||||||||||||||||
|
|
||||||||||||||||||
| jobs: | ||||||||||||||||||
| trigger-deploy: | ||||||||||||||||||
| name: Canary Deploy | ||||||||||||||||||
| uses: jupiterone/github-internal/.github/workflows/monorepo-canary-release.yaml@v1 | ||||||||||||||||||
| secrets: inherit | ||||||||||||||||||
| canary-release: | ||||||||||||||||||
| name: Canary Release | ||||||||||||||||||
| runs-on: ubuntu-latest | ||||||||||||||||||
| if: ${{ github.event.issue.pull_request && contains(github.event.comment.body, '/canary-release') }} | ||||||||||||||||||
| permissions: | ||||||||||||||||||
| contents: write | ||||||||||||||||||
| pull-requests: write | ||||||||||||||||||
| id-token: write | ||||||||||||||||||
| steps: | ||||||||||||||||||
| - name: Add reaction to comment | ||||||||||||||||||
| uses: actions/github-script@v7 | ||||||||||||||||||
| with: | ||||||||||||||||||
| script: | | ||||||||||||||||||
| await github.rest.reactions.createForIssueComment({ | ||||||||||||||||||
| owner: context.repo.owner, | ||||||||||||||||||
| repo: context.repo.repo, | ||||||||||||||||||
| comment_id: context.payload.comment.id, | ||||||||||||||||||
| content: 'eyes', | ||||||||||||||||||
| }); | ||||||||||||||||||
|
|
||||||||||||||||||
| - name: Post starting comment | ||||||||||||||||||
| id: start-comment | ||||||||||||||||||
| uses: actions/github-script@v7 | ||||||||||||||||||
| with: | ||||||||||||||||||
| script: | | ||||||||||||||||||
| const comment = await github.rest.issues.createComment({ | ||||||||||||||||||
| owner: context.repo.owner, | ||||||||||||||||||
| repo: context.repo.repo, | ||||||||||||||||||
| issue_number: context.issue.number, | ||||||||||||||||||
| body: `🚀 Canary release workflow has been triggered.\n\nYou can follow the progress [here](${process.env.GITHUB_SERVER_URL}/${process.env.GITHUB_REPOSITORY}/actions/runs/${process.env.GITHUB_RUN_ID}).` | ||||||||||||||||||
| }); | ||||||||||||||||||
| return comment.data.id; | ||||||||||||||||||
| result-encoding: string | ||||||||||||||||||
|
|
||||||||||||||||||
| - name: Checkout PR | ||||||||||||||||||
| uses: actions/checkout@v4 | ||||||||||||||||||
| with: | ||||||||||||||||||
| ref: refs/pull/${{ github.event.issue.number }}/head | ||||||||||||||||||
| fetch-depth: 0 | ||||||||||||||||||
| token: ${{ secrets.AUTO_GITHUB_PAT_TOKEN }} | ||||||||||||||||||
|
|
||||||||||||||||||
| - name: Setup Node.js | ||||||||||||||||||
| uses: actions/setup-node@v4 | ||||||||||||||||||
| with: | ||||||||||||||||||
| node-version: '20' | ||||||||||||||||||
| registry-url: 'https://registry.npmjs.org' | ||||||||||||||||||
|
|
||||||||||||||||||
| - name: Configure npm for JupiterOne packages | ||||||||||||||||||
| run: | | ||||||||||||||||||
| echo "@jupiterone:registry=https://npm.pkg.github.com" >> .npmrc | ||||||||||||||||||
| echo "//npm.pkg.github.com/:_authToken=${{ secrets.NPM_AUTH_TOKEN }}" >> .npmrc | ||||||||||||||||||
|
||||||||||||||||||
| echo "//npm.pkg.github.com/:_authToken=${{ secrets.NPM_AUTH_TOKEN }}" >> .npmrc | |
| echo "//npm.pkg.github.com/:_authToken=${{ secrets.GITHUB_PACKAGES_NPM_TOKEN }}" >> .npmrc |
Outdated
Copilot
AI
Jan 23, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The variable PREID uses an abbreviation that may not be immediately clear to all developers. Consider renaming to PRERELEASE_ID for better clarity.
| PREID="canary-${{ github.event.issue.number }}-${{ github.run_attempt }}" | |
| # Version bump with canary prerelease | |
| npx lerna version prerelease --preid "$PREID" --no-git-tag-version --no-push --yes | |
| PRERELEASE_ID="canary-${{ github.event.issue.number }}-${{ github.run_attempt }}" | |
| # Version bump with canary prerelease | |
| npx lerna version prerelease --preid "$PRERELEASE_ID" --no-git-tag-version --no-push --yes |
Outdated
Copilot
AI
Jan 23, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using 'cat' and piping to jq is unnecessary. Use 'jq -r .version "$PKG_PATH/package.json"' instead for better performance and clarity.
| VERSION=$(cat "$PKG_PATH/package.json" | jq -r '.version') | |
| VERSION=$(jq -r '.version' "$PKG_PATH/package.json") |
Outdated
Copilot
AI
Jan 23, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The path construction is overly complex with redundant GITHUB_WORKSPACE replacement. Since pkg.location likely already contains the full path or is relative to GITHUB_WORKSPACE, simplify by using pkg.location directly or just removing the workspace prefix once.
| const pkgJson = require(`${process.env.GITHUB_WORKSPACE}/${pkg.location.replace(process.env.GITHUB_WORKSPACE + '/', '')}/package.json`); | |
| const pkgPath = pkg.location.startsWith(process.env.GITHUB_WORKSPACE) | |
| ? pkg.location | |
| : `${process.env.GITHUB_WORKSPACE}/${pkg.location}`; | |
| const pkgJson = require(`${pkgPath}/package.json`); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The same NPM_AUTH_TOKEN is being used for both GitHub Packages and the public npm registry. This could be a security concern if the token has broader permissions than needed. Consider using separate tokens (NPM_AUTH_TOKEN for npm and GITHUB_TOKEN or a dedicated token for GitHub Packages) to follow the principle of least privilege.