diff options
Diffstat (limited to '.github/workflows/ci.yml')
| -rw-r--r-- | .github/workflows/ci.yml | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..6cf725f --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,83 @@ +name: CI + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + lint: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Use Node.js + uses: actions/setup-node@v1 + with: + node-version: '15.11.0' + - run: yarn + + - name: Lint + run: yarn lint + + build: + needs: lint + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Use Node.js + uses: actions/setup-node@v1 + with: + node-version: '15.11.0' + - run: yarn + + - name: Compile + run: yarn compile + + test: + needs: build + runs-on: ${{ matrix.os }} + strategy: + matrix: + # disable ubuntu-latest until https://github.com/microsoft/vscode/issues/106569 is fixed + os: [macos-latest, windows-latest] + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Use Node.js + uses: actions/setup-node@v1 + with: + node-version: '15.11.0' + - run: yarn + + - name: Test + run: yarn test + # Run tests only on non-coverage job + if: matrix.os != 'macOS-latest' + + - name: Generate Coverage + run: yarn cov + if: matrix.os == 'macOS-latest' + + - name: Publish coverage + uses: codecov/codecov-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} + if: matrix.os == 'macOS-latest' + + - name: Upload coverage + uses: actions/upload-artifact@v2 + with: + name: cov + path: coverage + if: matrix.os == 'macOS-latest' + |