Release #90
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: Release | |
| on: | |
| workflow_run: | |
| workflows: ["CI"] | |
| types: [completed] | |
| branches: [main] | |
| permissions: | |
| contents: write | |
| issues: write | |
| pull-requests: write | |
| jobs: | |
| release-please: | |
| name: "🚀 Release Please" | |
| runs-on: ubuntu-latest | |
| if: ${{ github.event.workflow_run.conclusion == 'success' }} | |
| outputs: | |
| release_created: ${{ steps.release.outputs['apps/cli--release_created'] }} | |
| version: ${{ steps.release.outputs['apps/cli--version'] }} | |
| tag_name: ${{ steps.release.outputs['apps/cli--tag_name'] }} | |
| steps: | |
| - name: "📥 Checkout" | |
| uses: actions/checkout@v4 | |
| - name: "📋 Create Release PR" | |
| uses: googleapis/release-please-action@v4 | |
| id: release | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| config-file: .github/release-please-config.json | |
| manifest-file: .github/.release-please-manifest.json | |
| build: | |
| name: "🏗️ Build CLI" | |
| runs-on: ubuntu-latest | |
| needs: release-please | |
| if: ${{ needs.release-please.outputs.release_created == 'true' }} | |
| steps: | |
| - name: "📥 Checkout" | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ needs.release-please.outputs.tag_name }} | |
| - name: "🔧 Setup Bun" | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: "📦 Install Dependencies" | |
| run: bun install | |
| - name: "🏗️ Build CLI" | |
| run: bun run build:cli | |
| - name: "💾 Upload Build Artifact" | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: cli-build | |
| path: apps/cli | |
| retention-days: 1 | |
| build-assets: | |
| name: "📦 Pack & Upload Assets" | |
| runs-on: ubuntu-latest | |
| needs: [release-please, build] | |
| if: ${{ needs.release-please.outputs.release_created == 'true' }} | |
| steps: | |
| - name: "📥 Download Build" | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: cli-build | |
| path: apps/cli | |
| - name: "🔧 Setup Bun" | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: "📦 Pack Distribution" | |
| working-directory: apps/cli | |
| run: bun pm pack --ignore-scripts --filename create-faster-${{ needs.release-please.outputs.version }}.tar.gz | |
| - name: "📤 Upload to Release" | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| tag_name: ${{ needs.release-please.outputs.tag_name }} | |
| files: apps/cli/create-faster-${{ needs.release-please.outputs.version }}.tar.gz | |
| make_latest: true | |
| generate_release_notes: true | |
| publish-npm: | |
| name: "📤 Publish to NPM" | |
| runs-on: ubuntu-latest | |
| needs: [release-please, build] | |
| if: ${{ needs.release-please.outputs.release_created == 'true' }} | |
| steps: | |
| - name: "📥 Download Build" | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: cli-build | |
| path: apps/cli | |
| - name: "🔧 Setup Bun" | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: "📤 Publish to NPM" | |
| working-directory: apps/cli | |
| run: | | |
| echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > .npmrc | |
| bun publish --access public | |
| env: | |
| NPM_TOKEN: ${{ secrets.NPM_TOKEN }} |