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'