Merge pull request #91 from bejamas/feat/upgrade-to-v6 #334
This file contains hidden or 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 Release | |
| on: | |
| push: | |
| branches: | |
| - main | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| release: | |
| if: github.repository_owner == 'bejamas' | |
| name: Build & Publish a canary release to NPM | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| - name: Install dependencies | |
| run: bun install | |
| - name: Set canary versions | |
| run: bun .github/version-release-canary.ts | |
| - name: Build packages | |
| run: bun run build:packages | |
| - name: Setup npmrc | |
| run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_ACCESS_TOKEN }}" > ~/.npmrc | |
| - name: Publish canary packages | |
| run: | | |
| # Get changed files in this commit | |
| CHANGED_FILES=$(git diff --name-only HEAD~1 HEAD) | |
| cd packages | |
| for package in */; do | |
| if [ -f "${package}package.json" ]; then | |
| PACKAGE_NAME=$(cat "${package}package.json" | grep '"name"' | head -1 | cut -d'"' -f4) | |
| IS_PRIVATE=$(cat "${package}package.json" | grep -o '"private"[[:space:]]*:[[:space:]]*true' || echo "") | |
| if [ -z "$IS_PRIVATE" ]; then | |
| # Check if this package has changes | |
| PACKAGE_CHANGED=$(echo "$CHANGED_FILES" | grep "^packages/${package%/}/" || echo "") | |
| if [ -n "$PACKAGE_CHANGED" ]; then | |
| cd "$package" | |
| echo "📦 Publishing $PACKAGE_NAME (has changes)..." | |
| bun publish --tag canary --access public 2>&1 || echo "⚠️ Failed to publish $PACKAGE_NAME" | |
| cd .. | |
| else | |
| echo "⏭️ Skipping $PACKAGE_NAME (no changes)" | |
| fi | |
| fi | |
| fi | |
| done | |
| env: | |
| NPM_CONFIG_TOKEN: ${{ secrets.NPM_ACCESS_TOKEN }} |