mirror of
https://github.com/compiler-explorer/compiler-explorer.git
synced 2025-12-27 07:04:04 -05:00
## Summary - Sentry CLI 3.0.0 removed the `releases files` subcommand - Migrate to the new `sourcemaps upload --release` command syntax - Fixes deploy failures: https://github.com/compiler-explorer/compiler-explorer/actions/runs/20253797661/job/58151514156 See: https://github.com/getsentry/sentry-cli/releases/tag/3.0.0 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
147 lines
4.5 KiB
YAML
147 lines
4.5 KiB
YAML
name: Compiler Explorer
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-22.04
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Use Node.js 22.x
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 22.x
|
|
check-latest: true
|
|
cache: npm
|
|
- name: Install prerequisites
|
|
run: |
|
|
make prereqs
|
|
python3 -m pip install numba
|
|
- name: Install uv
|
|
uses: astral-sh/setup-uv@v6
|
|
- name: Run checks
|
|
run: |
|
|
npm run lint-check
|
|
npm run test -- --coverage
|
|
npm run ts-check
|
|
python3 ./etc/scripts/util/propscheck.py
|
|
python3 ./etc/scripts/util/propschecktest.py
|
|
python3 ./etc/scripts/test_numba_wrapper.py
|
|
uv run --directory etc/scripts/gh_tool pytest -v
|
|
- uses: codecov/codecov-action@v5
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
verbose: true
|
|
|
|
build_minimum_support:
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Use Node.js 20
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 20.18.2
|
|
check-latest: false
|
|
cache: npm
|
|
- name: Install prerequisites
|
|
run: make prereqs
|
|
- name: Run checks
|
|
run: |
|
|
npm run ts-compile
|
|
npm run webpack
|
|
|
|
build_dist:
|
|
if: github.repository_owner == 'compiler-explorer' && github.event_name == 'push'
|
|
runs-on: ubuntu-22.04
|
|
outputs:
|
|
release_name: ${{ steps.build_dist.outputs.release_name }}
|
|
branch: ${{ steps.build_dist.outputs.branch }}
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Use Node.js 22.x
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 22.x
|
|
check-latest: true
|
|
cache: npm
|
|
- name: Build distribution
|
|
id: build_dist
|
|
run: etc/scripts/build-dist.sh
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: dist
|
|
path: out/dist-bin
|
|
|
|
deploy:
|
|
if: github.repository_owner == 'compiler-explorer' && github.event_name == 'push'
|
|
needs: [test, build_dist]
|
|
runs-on: ubuntu-22.04
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Use Node.js 22.x
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 22.x
|
|
check-latest: true
|
|
cache: npm
|
|
- name: Download the built distribution
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: dist
|
|
path: out/dist-bin
|
|
- name: Unpack static files for sentry
|
|
run: |
|
|
mkdir -p out/dist/static
|
|
tar Jxf out/dist-bin/*.static.tar.xz -C out/dist/static
|
|
- name: Tag in sentry
|
|
run: |
|
|
export SENTRY_AUTH_TOKEN='${{ secrets.SENTRY_AUTH_TOKEN }}'
|
|
export SENTRY_DSN='${{ secrets.SENTRY_DSN }}'
|
|
export SENTRY_ORG=compiler-explorer
|
|
export SENTRY_PROJECT=compiler-explorer
|
|
npm run sentry -- releases new -p compiler-explorer "${{ needs.build_dist.outputs.release_name }}"
|
|
npm run sentry -- releases set-commits --auto "${{ needs.build_dist.outputs.release_name }}"
|
|
npm run sentry -- sourcemaps upload --release "${{ needs.build_dist.outputs.release_name }}" out/dist/static
|
|
- name: Deploy
|
|
uses: jakejarvis/s3-sync-action@master
|
|
with:
|
|
args: --acl public-read --follow-symlinks
|
|
env:
|
|
AWS_S3_BUCKET: compiler-explorer
|
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
SOURCE_DIR: out/dist-bin
|
|
DEST_DIR: dist/gh/${{ needs.build_dist.outputs.branch }}
|
|
- name: Tag the commit
|
|
uses: actions/github-script@v7
|
|
with:
|
|
script: |
|
|
github.rest.git.createRef({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
ref: `refs/tags/gh-${context.runNumber}`,
|
|
sha: context.sha
|
|
})
|
|
|
|
post_deploy_check:
|
|
needs: [test, build_dist, deploy]
|
|
runs-on: [admin]
|
|
steps:
|
|
- name: Check hashes for deploy ${{ needs.build_dist.outputs.release_name }} to cdn
|
|
run: ce --env staging builds check_hashes ${{ needs.build_dist.outputs.release_name }}
|