Skip to content

Commit

Permalink
chore(repo): Introduce canary releases from main
Browse files Browse the repository at this point in the history
The main branch will produce canary releases until the
next major version is ready for release. To produce a
staging and production release, open a PR from the clerk-v4
branch.
  • Loading branch information
dimkl committed Oct 16, 2023
1 parent 2fe0cd1 commit b374800
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 1 deletion.
5 changes: 5 additions & 0 deletions .changeset/red-monkeys-sing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
---

Introduce `@canary` releases and change current LTS branch to `clerk-v4` to be used as
base branch for `@staging` and `@latest` releases until next major version is stable.
36 changes: 36 additions & 0 deletions .github/workflows/release-canary.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Canary release
run-name: Canary release from ${{ github.ref_name }}

on:
push:
branches:
- main

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
canary-release:
if: ${{ github.repository == 'clerkinc/javascript' }}
runs-on: ${{ vars.RUNNER_LARGE }}
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
TURBO_REMOTE_ONLY: true
steps:
- name: Checkout repo
uses: actions/checkout@v3

- name: Setup
uses: ./.github/actions/setup

- name: Version packages for canary
id: version-packages
run: npm run version:canary | tail -1 >> "$GITHUB_OUTPUT"

- name: Canary release
if: steps.version-packages.outputs.success == '1'
run: npm run release:canary
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -86,12 +86,14 @@
"changeset": "npx changeset",
"changeset:empty": "npm run changeset -- --empty",
"version": "npx changeset version && ./scripts/version-info.sh",
"version:canary": "./scripts/canary.mjs",
"version:snapshot": "./scripts/snapshot.mjs",
"version:staging": "./scripts/staging.mjs",
"release": "FORCE_COLOR=1 npm run build -- --force && npx changeset publish && git push --follow-tags",
"release:canary": "FORCE_COLOR=1 npm run build && npx changeset publish --tag canary --no-git-tag",
"release:snapshot": "FORCE_COLOR=1 npm run build && npx changeset publish --tag snapshot --no-git-tag",
"release:staging": "FORCE_COLOR=1 npm run build && npx changeset publish --tag staging --no-git-tag",
"release:verdaccio": "if [ \"$(npm config get registry)\" = \"https://registry.npmjs.org/\" ]; then echo 'Error: Using default registry' && exit 1; else TURBO_CONCURRENCY=4 npm run build && npx changeset publish --no-git-tag; fi",
"update:lockfile": "npm run nuke && npm install -D --arch=x64 --platform=linux turbo && npm install -D --arch=arm64 --platform=darwin turbo"
}
}
}
18 changes: 18 additions & 0 deletions scripts/canary.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/usr/bin/env zx

import 'zx/globals';

import { constants } from './common.mjs';

await $`npx json -I -f ${constants.ChangesetConfigFile} -e "this.changelog = false"`;

const res = await $`npx changeset version --snapshot canary`;
const success = !res.stderr.includes('No unreleased changesets found');

await $`git checkout HEAD -- ${constants.ChangesetConfigFile}`;

if (success) {
echo('success=1');
} else {
echo('success=0');
}

0 comments on commit b374800

Please sign in to comment.