summaryrefslogtreecommitdiffstats
path: root/.github/workflows/ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r--.github/workflows/ci.yml83
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'
+