feat: update sentry #64
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: Deploy Next.js site to Pages | |
on: | |
push: | |
branches: ["main"] | |
workflow_dispatch: | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
concurrency: | |
group: "pages" | |
cancel-in-progress: true | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Detect package manager | |
id: detect-package-manager | |
run: | | |
if [ -f "${{ github.workspace }}/yarn.lock" ]; then | |
echo "manager=yarn" >> $GITHUB_OUTPUT | |
echo "command=install --frozen-lockfile" >> $GITHUB_OUTPUT | |
echo "runner=yarn" >> $GITHUB_OUTPUT | |
exit 0 | |
elif [ -f "${{ github.workspace }}/package.json" ]; then | |
echo "manager=npm" >> $GITHUB_OUTPUT | |
echo "command=ci" >> $GITHUB_OUTPUT | |
echo "runner=npx --no-install" >> $GITHUB_OUTPUT | |
exit 0 | |
else | |
echo "Unable to determine packager manager" | |
exit 1 | |
fi | |
- name: Setup Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: "16" | |
cache: ${{ steps.detect-package-manager.outputs.manager }} | |
- name: Cache node_modules | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.npm | |
~/.cache/yarn | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }} | |
restore-keys: ${{ runner.os }}-node- | |
- name: Setup Pages | |
uses: actions/configure-pages@v3 | |
with: | |
static_site_generator: next | |
- name: Restore cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
.next/cache | |
# Generate a new cache whenever packages or source files change. | |
key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }} | |
# If source files changed but packages didn't, rebuild from a prior cache. | |
restore-keys: | | |
${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}- | |
- name: Install dependencies | |
run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }} | |
- name: Build with Next.js | |
run: ${{ steps.detect-package-manager.outputs.runner }} next build | |
- name: Static HTML export with Next.js | |
run: ${{ steps.detect-package-manager.outputs.runner }} next export | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v1 | |
with: | |
path: './out' | |
sentry: | |
runs-on: ubuntu-latest | |
needs: build | |
env: | |
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} | |
SENTRY_ORG: ${{ secrets.SENTRY_ORG }} | |
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: List files in workflow | |
run: ls -R ./ | |
- name: Install Sentry CLI | |
run: curl -sL https://sentry.io/get-cli/ | bash | |
- name: Create Sentry release | |
id: create-release | |
run: | | |
VERSION=$(sentry-cli releases propose-version) | |
echo "RELEASE_VERSION=$VERSION" >> $GITHUB_ENV | |
- name: Upload sourcemaps to Sentry | |
run: sentry-cli releases files "$RELEASE_VERSION" upload-sourcemaps --ext map --ext js --url-prefix '~/static' './_next/static/' | |
- name: Set commits for Sentry release | |
run: sentry-cli releases set-commits "$RELEASE_VERSION" --auto | |
- name: Deploy to Sentry | |
run: sentry-cli releases deploys "$RELEASE_VERSION" new -e ${{ secrets.SENTRY_DEPLOY_ENVIRONMENT }} | |
- name: Finalize Sentry release | |
run: sentry-cli releases finalize "$RELEASE_VERSION" | |
# Deployment job | |
deploy: | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v1 | |