From 15f166329f3c8040a8aa3772dbb2fd4614a4a8b2 Mon Sep 17 00:00:00 2001 From: Christoph Schlosser <2466365+cschlosser@users.noreply.github.com> Date: Fri, 30 Apr 2021 16:03:47 +0200 Subject: Use Github actions instead of travis and appveyor (#216) * Switch to GH workflow * Use tslint action * Add build matrix * Run test stage * Disable ubuntu test run due to bug in vscode * Publish coverage on macOS * Remove istanbul * codecov action * Move nyc config to nycrc * Add CD workflow * Remove old publishing script --- .github/workflows/cd.yml | 51 +++++++++++++++++++++++++++++ .github/workflows/ci.yml | 83 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100644 .github/workflows/cd.yml create mode 100644 .github/workflows/ci.yml (limited to '.github') diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml new file mode 100644 index 0000000..95785ab --- /dev/null +++ b/.github/workflows/cd.yml @@ -0,0 +1,51 @@ +name: CD + +on: + push: + branches: + - master + pull_request: + branches: + - master + release: + types: + - created + +jobs: + release: + 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: Install VSCE + run: yarn add vsce -D + + - name: Update $PATH + run: echo "$PWD/node_modules/.bin/" >> $GITHUB_PATH + + - name: Build vsix + run: vsce package && ls -alh + + - name: Deploy to Marketplace + run: vsce publish -p ${VSCE_TOKEN} + env: + VSCE_TOKEN: ${{ secrets.VSCE_TOKEN }} + if: contains(github.ref, 'refs/tags/') + + - name: Upload vsix to GitHub release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: doxdocgen-*.vsix + tag: ${{ github.ref }} + overwrite: true + file_glob: true + if: contains(github.ref, 'refs/tags/') + 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' + -- cgit v1.2.3