Skip to content

CI: Version Packages (#14) #51

CI: Version Packages (#14)

CI: Version Packages (#14) #51

name: Release Package
on:
push:
branches:
- main
env:
CI: true
jobs:
test:
uses: ./.github/workflows/test.yml
release:
needs: test # Ensure tests pass before releasing
timeout-minutes: 15
runs-on: ubuntu-latest
steps:
- name: Checkout code repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 9.15.1
run_install: false
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- name: Install Sentry CLI
run: curl -sL https://sentry.io/get-cli/ | bash
- name: Install dependencies
run: pnpm install
- name: Create and publish versions
id: changesets
uses: changesets/action@v1
with:
commit: 'CI: Version Packages'
title: 'CI: Version Packages'
version: pnpm ci:version
publish: pnpm ci:publish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
# Add step to create Sentry release and inject source maps
- name: Sentry inject source maps
if: steps.changesets.outputs.published == 'true'
run: |
# Get version from CLI package.json
CLI_VERSION=$(node -p "require('./apps/cli/package.json').version")
# Set as environment variable for subsequent steps
echo "CLI_VERSION=$CLI_VERSION" >> $GITHUB_ENV
# Inject source maps for the CLI app
sentry-cli sourcemaps inject ./apps/cli/dist
- name: Create Sentry release
if: steps.changesets.outputs.published == 'true'
uses: getsentry/action-release@v1
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
# SENTRY_URL: https://sentry.io/
with:
environment: production
version: ${{ env.CLI_VERSION }}
sourcemaps: './apps/cli/dist'