Skip to content

Commit

Permalink
Migrate CI to GitHub Actions (#283)
Browse files Browse the repository at this point in the history
To allow more updates on this project with a possible maintenance reboot in the chaijs organization

* chore: rework ci workflow to be closer to chai's
* chore: add npm-publish workflow

---------

Co-authored-by: 43081j <[email protected]>
  • Loading branch information
WikiRik and 43081j authored May 13, 2024
1 parent 3737f96 commit bb8ebec
Show file tree
Hide file tree
Showing 4 changed files with 86 additions and 13 deletions.
46 changes: 46 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# This workflow will do two jobs; lint and test. Lint will do a clean install of node dependencies and lint the source code. Test will do a install of node dependencies, install a specific version of chai and run tests across different versions of node and chai
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: Node.js CI

on:
push:
branches: master
pull_request:
branches: master

jobs:
lint:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: latest
- run: npm ci
- run: npm run lint
build:
runs-on: ubuntu-latest

strategy:
matrix:
node-version:
- 18 # to be removed 2025-04-30
- 20 # to be removed 2026-04-30
- latest
# See supported Node.js release schedule at https://github.com/nodejs/release#release-schedule
chai-version:
- "^4.0.0"
- "^5.0.0"

steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
- name: Install chai ${{ matrix.chai-version }}
run: npm install chai@${{ matrix.chai-version }}
- run: npm run test
40 changes: 40 additions & 0 deletions .github/workflows/npm-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
# For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages

name: Publish to npm

on:
release:
types: [created]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- run: npm ci
- run: npm run lint
- run: npm test

publish-npm:
needs: build
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22.x
registry-url: "https://registry.npmjs.org"
cache: "npm"
- run: npm ci
- run: npm version ${TAG_NAME} --git-tag-version=false
env:
TAG_NAME: ${{ github.ref_name }}
- run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.npm_secret }}
12 changes: 0 additions & 12 deletions .travis.yml

This file was deleted.

1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
],
"scripts": {
"test": "mocha",
"test-travis": "npm install chai@$CHAI_VERSION && npm test",
"lint": "eslint .",
"cover": "istanbul cover node_modules/mocha/bin/_mocha && opener ./coverage/lcov-report/lib/chai-as-promised.js.html"
},
Expand Down

0 comments on commit bb8ebec

Please sign in to comment.