diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml new file mode 100644 index 0000000..aa9e837 --- /dev/null +++ b/.github/workflows/CI.yml @@ -0,0 +1,102 @@ +name: "CI" +on: + push: + branches: "*" + pull_request: +jobs: + build: + name: "Build" + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [12.x, 14.x] + steps: + - name: "Checkout" + uses: actions/checkout@v2 + - name: "Setup node" + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - name: "Cache NPM dependencies" + uses: actions/cache@v2 + with: + path: "~/.npm" + key: npm-dependencies-${{ runner.os }}-${{ matrix.node-version }}-${{ hashFiles('package.json') }} + restore-keys: | + npm-dependencies-${{ runner.os }}-${{ matrix.node-version }}-${{ hashFiles('package.json') }} + npm-dependencies-${{ runner.os }}-${{ matrix.node-version }}- + - name: "Install NPM dependencies" + run: | + npm install + - name: "Build" + run: | + npm run build + - name: "Upload artifact" + uses: actions/upload-artifact@v2 + with: + name: "build-artifact-${{ matrix.node-version }}" + path: dist + test: + name: "Test" + runs-on: ubuntu-latest + needs: build + strategy: + matrix: + node-version: [12.x, 14.x] + steps: + - name: "Checkout" + uses: actions/checkout@v2 + - name: "Setup node" + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - name: "Cache NPM dependencies" + uses: actions/cache@v2 + with: + path: "~/.npm" + key: npm-dependencies-${{ runner.os }}-${{ matrix.node-version }}-${{ hashFiles('package.json') }} + restore-keys: | + npm-dependencies-${{ runner.os }}-${{ matrix.node-version }}-${{ hashFiles('package.json') }} + npm-dependencies-${{ runner.os }}-${{ matrix.node-version }}- + - name: "Install NPM dependencies" + run: | + npm install + - name: "Download build artifact" + uses: actions/download-artifact@v2 + with: + name: "build-artifact-${{ matrix.node-version }}" + path: dist + - name: "Test" + run: | + npm test + - name: "Upload coverage results" + continue-on-error: true + run: | + npm run coverage + lint: + name: "Lint" + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [14.x] + steps: + - name: "Checkout" + uses: actions/checkout@v2 + - name: "Setup node" + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - name: "Cache NPM dependencies" + uses: actions/cache@v2 + with: + path: "~/.npm" + key: npm-dependencies-${{ runner.os }}-${{ matrix.node-version }}-${{ hashFiles('package.json') }} + restore-keys: | + npm-dependencies-${{ runner.os }}-${{ matrix.node-version }}-${{ hashFiles('package.json') }} + npm-dependencies-${{ runner.os }}-${{ matrix.node-version }}- + - name: "Install NPM dependencies" + run: | + npm install + - name: "Lint" + run: | + npm run lint diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 4aafdfa..0000000 --- a/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -language: node_js -node_js: -- '12.0' -- '10.0' -before_script: -- npm run lint -script: -- npm run build -- npm test -after_script: -- npm run coverage