Publish Beta #15
Workflow file for this run
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: Publish Beta Packages | |
on: | |
release: | |
types: [prereleased] | |
jobs: | |
publish-beta: | |
name: Publish Beta Packages | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "21.x" | |
registry-url: "https://registry.npmjs.org" | |
- name: Install dependencies | |
run: npx pnpm install | |
- name: Turbo run build | |
run: npx turbo run build:packages | |
- name: Get changed packages | |
id: changed-packages | |
run: echo "changed_packages=$(npx turbo run build --dry-run=json | jq -r '.tasks[].package')" >> $GITHUB_ENV | |
- name: Update package version for beta | |
if: env.changed_packages != '' | |
run: | | |
for package in $changed_packages; do | |
echo "Updating version for $package" | |
# Get the latest beta version for the package | |
latest_beta=$(npm view $package version --tag beta || echo "0.0.0") | |
# Extract the current version's main part (e.g., 0.1.0) | |
base_version=$(echo $latest_beta | grep -oE '^[0-9]+\.[0-9]+\.[0-9]+') | |
# Increment beta count | |
count=$(echo $latest_beta | grep -oE '[0-9]+$') | |
count=$((count+1)) | |
# Create the new beta version (e.g., 0.1.0--beta.1) | |
new_version="$base_version--beta.$count" | |
# Update the package.json version | |
pnpm --filter $package version $new_version | |
done | |
- name: Publish beta versions | |
if: env.changed_packages != '' | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
run: | | |
for package in $changed_packages; do | |
echo "Publishing $package as $new_version" | |
npx pnpm --filter $package publish --provenance --access public --tag beta --no-git-checks || exit 1 | |
done |