name: CI on: push: branches: - master pull_request: branches: - master schedule: - cron: '0 2 * * 1' # At 02:00 on Monday permissions: {} jobs: test: name: Test runs-on: ${{ matrix.os }} timeout-minutes: 15 strategy: matrix: os: [ubuntu-latest] node-version: [18, 20] include: - os: macos-latest node_version: 18 - os: windows-latest node_version: 18 fail-fast: false steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: node-version: ${{ matrix.node-version }} - name: Bootstrap project run: npm ci --ignore-scripts - name: Run tests run: npm run-script test:ci - name: Publish coverage report to Coveralls uses: coverallsapp/github-action@3dfc5567390f6fa9267c0ee9c251e4c8c3f18949 # v2.2.3 with: github-token: ${{ secrets.GITHUB_TOKEN }} flag-name: run-${{ matrix.os }}-node@${{ matrix.node-version }} parallel: true posttest: name: Post-Test needs: test runs-on: ubuntu-latest steps: - name: Coveralls finished uses: coverallsapp/github-action@3dfc5567390f6fa9267c0ee9c251e4c8c3f18949 # v2.2.3 with: github-token: ${{ secrets.github_token }} parallel-finished: true code-lint: name: Code Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Use Node.js 18 uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: node-version: 18 - name: Bootstrap project run: npm ci --ignore-scripts - name: Verify code linting run: npm run lint commit-lint: name: Commit Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: fetch-depth: 0 - name: Use Node.js 18 uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: node-version: 18 - name: Bootstrap project run: npm ci --ignore-scripts - name: Verify commit linting run: | npx \ --no-install \ --package=@commitlint/cli \ -- \ commitlint \ --from=origin/master \ --to=HEAD \ --verbose codeql: name: CodeQL runs-on: ubuntu-latest permissions: # See: https://github.com/github/codeql-action/blob/008b2cc71c4cf3401f45919d8eede44a65b4a322/README.md#usage security-events: write steps: - name: Checkout repository uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Initialize CodeQL uses: github/codeql-action/init@e8893c57a1f3a2b659b6b55564fdfdbbd2982911 # v3.24.0 with: languages: 'javascript' config-file: ./.github/codeql/codeql-config.yaml - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@e8893c57a1f3a2b659b6b55564fdfdbbd2982911 # v3.24.0