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 main-v4
branch.
  • Loading branch information
dimkl committed Oct 17, 2023
1 parent 7866216 commit 1d72b2d
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 0 deletions.
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 `main-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 }}
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,11 @@
"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",
Expand Down
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 1d72b2d

Please sign in to comment.