build(deps-dev): bump dotenv from 16.4.1 to 16.4.5 #24
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Canary | |
on: | |
issue_comment: | |
types: [created] | |
concurrency: ${{ github.workflow }}-${{ github.ref}} | |
jobs: | |
canary_release: | |
name: Canary Release | |
if: | | |
github.event.issue.pull_request != null && | |
(github.event.comment.body == '/canary' || github.event.comment.body == '/canary-release') | |
runs-on: ubuntu-latest | |
steps: | |
- name: Enforce permission requirement | |
uses: prince-chrismc/check-actor-permissions-action@v3 | |
with: | |
permission: write | |
- name: Add initial reaction | |
uses: peter-evans/create-or-update-comment@v4 | |
with: | |
comment-id: ${{ github.event.comment.id }} | |
reactions: eyes | |
- name: Checkout Repo | |
uses: actions/checkout@v4 | |
- name: Checkout PR | |
run: gh pr checkout ${{ github.event.issue.number }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Reset changeset files on changeset-release/main branch | |
run: | | |
if [[ $(git branch --show-current) == "changeset-release/main" ]]; then | |
git checkout origin/main -- .changeset | |
fi | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: .nvmrc | |
cache: "yarn" | |
cache-dependency-path: | | |
yarn.lock | |
- name: Install Dependencies | |
run: yarn install --frozen-lockfile | |
- name: Create an .npmrc | |
env: | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
run: | | |
cat << EOF > "$HOME/.npmrc" | |
//registry.npmjs.org/:_authToken=$NPM_TOKEN | |
EOF | |
- name: Create and publish canary release | |
uses: actions/github-script@v7 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
script: | | |
const execa = require('execa') | |
await execa.command('yarn changeset version -- --snapshot canary', { stdio: 'inherit' }) | |
const releaseProcess = execa.command('yarn release -- --no-git-tags --snapshot --tag canary') | |
releaseProcess.stdout.pipe(process.stdout) | |
const {stdout} = await releaseProcess | |
const newTags = Array | |
.from(stdout.matchAll(/New tag:\s+([^\s\n]+)/g)) | |
.map(([_, tag]) => tag) | |
if (newTags.length) { | |
const multiple = newTags.length > 1 | |
const body = ( | |
`🚀 **The canary release${multiple ? 's have' : ' has'} been published to npm.**\n\n` + | |
`You can test the release${multiple ? 's' : ''} by installing the ` + | |
`newly published version${multiple ? 's' : ''}:\n` + | |
newTags.map(tag => ( | |
'```sh\n' + | |
`yarn add ${tag}\n` + | |
'```' | |
)).join('\n') | |
) | |
await github.rest.issues.createComment({ | |
issue_number: context.issue.number, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
body, | |
}) | |
} | |
- name: Add final reaction | |
uses: peter-evans/create-or-update-comment@v4 | |
with: | |
comment-id: ${{ github.event.comment.id }} | |
reactions: rocket |