Skip to content

Publish Beta

Publish Beta #14

Workflow file for this run

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@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: "18"
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Turbo run build
run: npx turbo run build
- 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"
pnpm --filter $package publish --provenance --access public --tag beta --no-git-checks || exit 1
done