ci: 💚 fix build #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: Release | |
on: | |
push: | |
branches: | |
- next | |
jobs: | |
release: | |
runs-on: ubuntu-latest | |
environment: preview | |
permissions: | |
contents: write | |
id-token: write # needed for provenance data generation | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
RELEASE_PREID: ${{ vars.RELEASE_PREID }} | |
RELEASE_SPECIFIER: ${{ vars.RELEASE_SPECIFIER }} | |
RELEASE_TAG: ${{ vars.RELEASE_TAG }} | |
steps: | |
# Step 1: Check out the repository code | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # Fetch the entire history to allow proper versioning | |
# Step 2: Setup pnpm package manager | |
- name: Install pnpm | |
uses: pnpm/action-setup@v4 | |
with: | |
version: 9 | |
run_install: false | |
# Step 3: Set up Node.js environment | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
cache: 'pnpm' | |
registry-url: 'https://registry.npmjs.org' | |
- name: Cache dependencies | |
uses: actions/cache@v4 | |
with: | |
path: '**/node_modules' | |
key: ${{ runner.OS }}-20.x-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.OS }}-20.x- | |
# Step 5: Install dependencies | |
- name: Install dependencies | |
run: pnpm i --frozen-lockfile | |
# Step 6: Set SHAs for nx workspace | |
- name: Set SHAs for Nx workspace | |
uses: nrwl/nx-set-shas@v4 | |
# Step 7: Run the build for the affected changes | |
- name: Run Nx lint, test and build | |
run: pnpx nx affected -t lint test build --exclude nextjs,vue3 | |
# Step 8: Set github authour | |
- name: Setup git user to "🤖 nabla bot" | |
run: git config user.email "-" && git config user.name "🤖 nabla bot" | |
# Step 9: Run the release | |
- name: Run Nx release version | |
run: pnpm release -d false | |
# Step 10: Run the build for the affected changes | |
- name: Run build | |
run: pnpm build | |
# Step 11: Run publish | |
- name: Publish | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
NPM_CONFIG_PROVENANCE: true | |
# Use npx instead of yarn because yarn automagically sets NPM_* environment variables | |
# like NPM_CONFIG_REGISTRY so npm publish ends up ignoring the .npmrc file | |
# which is set up by `setup-node` action. | |
run: npx nx release publish --verbose --tag $RELEASE_TAG | |
# Step 12: Upload artifacts | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
path: './dist' | |
# Step 13: Clean up dist directory | |
- name: Cleanup dist directory | |
run: rm -rf ./dist # Remove the dist directory to start fresh |