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: [10, 12, 14, 16, 17] include: - os: macos-latest node_version: 16 - os: windows-latest node_version: 16 fail-fast: false steps: - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3.1.0 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # tag=v3.5.1 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@9ba913c152ae4be1327bfb9085dc806cedb44057 # tag=v1.1.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@9ba913c152ae4be1327bfb9085dc806cedb44057 # tag=v1.1.3 with: github-token: ${{ secrets.github_token }} parallel-finished: true code-lint: name: Code Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3.1.0 - name: Use Node.js 16 uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # tag=v3.5.1 with: node-version: 16 - 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@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3.1.0 with: fetch-depth: 0 - name: Use Node.js 16 uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # tag=v3.5.1 with: node-version: 16 - 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@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3.1.0 - name: Initialize CodeQL uses: github/codeql-action/init@b2a92eb56d8cb930006a1c6ed86b0782dd8a4297 # v2.1.35 with: languages: 'javascript' config-file: ./.github/codeql/codeql-config.yaml - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@b2a92eb56d8cb930006a1c6ed86b0782dd8a4297 # v2.1.35