name: "Tests" on: pull_request: push: branches: - master env: CI: true jobs: Test: if: "!contains(github.event.head_commit.message, '[skip ci]')" strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] runs-on: ${{ matrix.os }} steps: - name: Checkout Code uses: actions/checkout@v2 - name: Install Node uses: actions/setup-node@v1 with: node-version: '12.x' - name: Install dependencies run: npm ci - name: Run tests 👩🏾‍💻 run: npm run test Coverage: if: "!contains(github.event.head_commit.message, '[skip ci]')" runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v2 - name: Install Node uses: actions/setup-node@v1 with: node-version: '13.x' - name: Install dependencies run: npm ci - name: Run tests 👩🏾‍💻 run: npm run test:cover Lint: if: "!contains(github.event.head_commit.message, '[skip ci]')" runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v2 - name: NPM install run: npm ci - name: Lint ✨ run: npm run lint Release: needs: [Test, Lint] if: | github.ref == 'refs/heads/master' && github.event.repository.fork == false runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v2 - name: NPM install run: npm ci - name: Release 🎉 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} run: npx semantic-release Skip: if: contains(github.event.head_commit.message, '[skip ci]') runs-on: ubuntu-latest steps: - name: Skip CI 🚫 run: echo skip ci