name: PR Checks on: push: branches: [main, releases/v2] pull_request: # Run checks on reopened draft PRs to support triggering PR checks on draft PRs that were opened # by other workflows. types: [opened, synchronize, reopened, ready_for_review] workflow_dispatch: jobs: check-js: name: Check JS runs-on: ubuntu-latest timeout-minutes: 45 steps: - name: Checkout uses: actions/checkout@v3 - name: Lint run: npm run-script lint - name: Check generated JS run: .github/workflows/script/check-js.sh check-node-modules: name: Check modules up to date runs-on: macos-latest timeout-minutes: 45 steps: - uses: actions/checkout@v3 - name: Check node modules up to date run: .github/workflows/script/check-node-modules.sh check-file-contents: name: Check file contents runs-on: ubuntu-latest timeout-minutes: 45 steps: - name: Checkout uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: 3.8 - name: Install dependencies run: | python -m pip install --upgrade pip pip install ruamel.yaml # Ensure the generated PR check workflows are up to date. - name: Verify PR checks up to date run: .github/workflows/script/verify-pr-checks.sh npm-test: name: Unit Test needs: [check-js, check-node-modules] strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] runs-on: ${{ matrix.os }} timeout-minutes: 45 steps: - uses: actions/checkout@v3 - name: npm test run: | # Run any commands referenced in package.json using Bash, otherwise # we won't be able to find them on Windows. npm config set script-shell bash npm test