name: GitHub Actions CI

on:
  push:
    branches:
      - main
  pull_request:
jobs:
  tests:
    runs-on: ubuntu-latest
    steps:
      - name: Set up Git repository
        uses: actions/checkout@v1

      - name: Set up Ruby
        uses: ruby/setup-ruby@v1

      - name: Get NodeJS version
        run: echo "NODE_VERSION=$(cat .node-version)" >> $GITHUB_OUTPUT
        id: node_version

      - name: Set up NodeJS
        uses: actions/setup-node@v1
        with:
          node-version: "${{ steps.node_version.outputs.NODE_VERSION }}"

      - name: Bootstrap
        run: script/bootstrap

      - name: Check for uncommitted or incorrect NodeJS modules
        run: |
          git diff --stat --exit-code node_modules || {
            echo '\n\nError: you must commit all NodeJS modules!'
            exit 1
          }
          grep -qr alt-h0 node_modules || {
            echo 'Error: Primer NodeJS modules must contain alt-h0!'
            exit 1
          }

      - name: Run tests
        run: script/test