# Copyright 2023 Mozilla Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. name: CI on: [push, pull_request] jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v7 - name: Setup Node.js uses: actions/setup-node@v7 with: node-version: 18.x cache: npm - name: npm install run: npm install - name: Prettier Format Check run: npm run format-check - name: ESLint Check run: npm run lint - name: Build & Test run: npm run test verify-dist: name: Verify dist/ is up to date runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v7 - name: Setup Node.js uses: actions/setup-node@v7 with: node-version: 24.x cache: npm - name: npm ci run: npm ci - name: Rebuild dist/ run: npm run build - name: Check dist/ matches committed output run: | if ! git diff --exit-code -- dist/; then echo "::error::Committed dist/ does not match a clean rebuild from source." echo "::error::Run 'npm ci && npm run build' locally and commit the updated dist/ before releasing." exit 1 fi test: name: Test version runs-on: ${{ matrix.os }} strategy: matrix: os: - ubuntu-latest - windows-latest - macos-latest version: - "" - v0.4.0 steps: - name: Checkout uses: actions/checkout@v7 - name: Set Node.js uses: actions/setup-node@v7 with: node-version: 18.x cache: npm - name: npm install run: npm install - name: Run sccache-cache uses: ./ with: version: ${{ matrix.version }} - name: Run sccache for check shell: bash run: ${SCCACHE_PATH} --start-server test_disable_annotations: name: Test disable_annotations version runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v7 - name: Set Node.js uses: actions/setup-node@v7 with: node-version: 18.x cache: npm - name: npm install run: npm install - name: Run sccache-cache uses: ./ with: disable_annotations: true - name: Run sccache for check shell: bash run: ${SCCACHE_PATH} --start-server