From 4ba4bad7de39dcc9909de2b9940d54f4c08fc7ce Mon Sep 17 00:00:00 2001 From: David Mehren Date: Wed, 11 Nov 2020 10:03:08 +0100 Subject: Migrate to GitHub Actions GH Actions now also do a production build with all supported Node versions to catch any Webpack errors Signed-off-by: David Mehren --- .github/workflows/node.js.yml | 82 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 .github/workflows/node.js.yml (limited to '.github/workflows/node.js.yml') diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml new file mode 100644 index 00000000..1d7b59d5 --- /dev/null +++ b/.github/workflows/node.js.yml @@ -0,0 +1,82 @@ +name: Node.js CI + +on: [push, pull_request] + +jobs: + static-tests: + runs-on: ubuntu-latest + strategy: + matrix: + command: + - yarn run eslint + - yarn run markdownlint + - shellcheck bin/heroku bin/setup + - sudo apt install -y jq && yarn run jsonlint + steps: + - uses: actions/checkout@v2 + - name: Use Node.js 14 + uses: actions/setup-node@v1 + with: + node-version: 14 + - name: Get yarn cache directory path + id: yarn-cache-dir-path + run: echo "::set-output name=dir::$(yarn cache dir)" + - uses: actions/cache@v2 + id: yarn-cache + with: + path: ${{ steps.yarn-cache-dir-path.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + - run: yarn --frozen-lockfile --prefer-offline + - run: ${{matrix.command}} + dynamic-tests: + needs: static-tests + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [10.x, 12.x, 14.x, 15.x] + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - name: Get yarn cache directory path + id: yarn-cache-dir-path + run: echo "::set-output name=dir::$(yarn cache dir)" + - uses: actions/cache@v2 + id: yarn-cache + with: + path: ${{ steps.yarn-cache-dir-path.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + - run: yarn --frozen-lockfile --prefer-offline + - run: yarn run mocha-suite + production-build: + needs: dynamic-tests + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [10.x, 12.x, 14.x, 15.x] + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - name: Get yarn cache directory path + id: yarn-cache-dir-path + run: echo "::set-output name=dir::$(yarn cache dir)" + - uses: actions/cache@v2 + id: yarn-cache + with: + path: ${{ steps.yarn-cache-dir-path.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + - run: yarn --frozen-lockfile --prefer-offline + - run: yarn run build + + -- cgit v1.2.3