# This is a basic workflow to help you get started with Actions name: CI # Controls when the action will run. Triggers the workflow on push or pull request # events but only for the master branch on: push: branches: [ master ] pull_request: branches: [ master ] # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a job called "integration" integration: # A strategy that defines different variations of an environment to run each job in. strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] node: [12] # The runners that the job will run on runs-on: ${{ matrix.os }} # Steps represent a sequence of tasks that will be executed as part of the job steps: - name: Setup Node.js environment uses: actions/setup-node@v1.4.3 with: node-version: ${{ matrix.node }} - name: Checkout master branch uses: actions/checkout@v2 - name: Cache node_modules uses: actions/cache@v2.1.0 with: # A list of files, directories, and wildcard patterns to cache and restore path: node_modules # An explicit key for restoring and saving the cache key: ${{ matrix.os }}-node-v${{ matrix.node }}-deps-${{ hashFiles(format('{0}{1}', github.workspace, '/package-lock.json')) }} - name: Install dependencies if: steps.cache.outputs.cache-hit != 'true' run: npm install - name: Run ESLint run: npm run lint - name: Run unit tests run: npm run test:unit - name: Code coverage uses: codecov/codecov-action@v1.0.12