diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..414d0a2 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,55 @@ +# Name of the pipeline +name: CI + +# When pushing to any branch +on: [push, pull_request] + +jobs: + ci: + name: Lint, Test & Release (Node ${{ matrix.version }}) + runs-on: ubuntu-22.04 + strategy: + fail-fast: true + matrix: + version: + - 16 + - 18 + - 20 + - current + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.version }} + cache: 'npm' + + - name: Install Packages + run: npm ci + + - name: Build + run: npm run build + + - name: Lint + run: npm run lint + + - name: Test + run: npm run cover + + - if: ${{ matrix.version == 'current' }} + name: Coveralls + uses: coverallsapp/github-action@v2 + + - if: ${{ matrix.version == 'current' }} + name: Semantic Release + run: npm run semantic-release + env: + GITHUB_TOKEN: ${{ secrets.NPM_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + +# Cancel running workflows for the same branch when a new one is started. +concurrency: + group: ci-${{ github.ref }} + cancel-in-progress: true diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index aab2cfb..0000000 --- a/.travis.yml +++ /dev/null @@ -1,33 +0,0 @@ -# Oh yeah! -language: node_js - -# Node 18 binaries require glibc >= 2.28 -dist: focal - -cache: - directories: - - node_modules -notifications: - email: false - -# Add additional versions here as appropriate. -node_js: - - 'stable' - - '18' - - '16' - - '14' - -# Lint errors should trigger a failure. -before_script: - - npm run lint - - npm run build - -# Runs the coverage script (which runs the tests) -script: npm run coveralls - -after_success: - - npm install -g travis-deploy-once@4 - - travis-deploy-once --pro "npm run semantic-release" -branches: - except: - - /^v\d+\.\d+\.\d+$/