name: Build on: push jobs: cloc: runs-on: ubuntu-latest steps: - name: Checkout repo uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f - name: Set up cloc run: | sudo apt-get update sudo apt-get -y install cloc - name: Print lines of code run: cloc --include-lang TypeScript,JavaScript,HTML,Sass,CSS --vcs git build: runs-on: ${{ matrix.os }} strategy: matrix: os: [windows-latest, macos-latest, ubuntu-latest] steps: - name: Set up Node uses: actions/setup-node@46071b5c7a2e0c34e49c3cb8a0e792e86e18d5ea with: node-version: '14' - name: Print environment run: | node --version npm --version - name: Checkout repo uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f - name: Install Node dependencies run: npm install - name: Run linter run: npm run lint - name: Build run: npm run build - name: Run tests if: runner.os != 'Linux' run: npm run test - name: Upload test coverage artifact if: runner.os != 'Linux' uses: actions/upload-artifact@ee69f02b3dfdecd58bb31b4d133da38ba6fe3700 with: name: test-coverage path: coverage/