diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..b1beb3f --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,29 @@ +version: 2 +updates: + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "weekly" + day: "monday" + open-pull-requests-limit: 10 + groups: + npm-minor-patch: + patterns: + - "*" + update-types: + - "minor" + - "patch" + commit-message: + prefix: "chore(deps)" + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + day: "monday" + groups: + actions: + patterns: + - "*" + commit-message: + prefix: "ci" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..efada0a --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,39 @@ +name: CI + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + test: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [20, 22, 24] + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Run tests with coverage + run: npm run coverage + + - name: Run linter + run: npm run lint + + - name: Verify documentation is up to date + run: | + npm run document + git diff --exit-code README.md diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index b577c4a..0000000 --- a/.travis.yml +++ /dev/null @@ -1,30 +0,0 @@ -language: node_js - -node_js: -- 18 -- 20 - -before_install: - - stty cols 80 - -addons: - firefox: latest - chrome: stable - browserstack: - username: - secure: "gmPqQKABPgef6L+GxJHHW7wK5OC+DlB2GiMZfs7x4b09IumZxk3k889tkHQU6FrFHCPhaZdsL8y4G1Xl3LkW0anFqPTZ6B9dG/2O1dy+UjO/bl5Mc5Q3+FnMKJlAa0lSpGQzwcoimkhQDdaJjQvP5NwJgAZkMA48C6qayO69bY0zieDQ7b56Nicf+cYrIy6AsmEvCLOgogi56DbCkBB1GGr4XXp+gINlIEeavoZPDBwRkWCKnN2KiBS0Tz08YTC3dR8wju/YHFNa/L3rB/fGJ3vufUHsojVnH3clZDEPGrGqJFyxtnff8zcqslZK0Gck95wbzHSZqkqtczOlN7dZ4KUwHOKkFS29fqaWfNM6ltAWi4ZPnPrIROo+TmnbNzt4sD0uYpjowtZA7wvB6H9+xR9+Md3ZRiyQkybDSfsylgkN7RRyWICtgQatOoEfzodV5eqp6p/rjoKjC6Vp35T8gpbZeoJIsPL91ZuYApicVBIGASA+kuNrLBK4ECpviOsPEGwdL/Kcp2NaQQr8eoMZk6Yv1zieXU0LFcpEVu2ADMgQJAV/lvcPrBR932Oj+Yyt7k58K0g5qaxthvRnF07YqZVkPMMjGU8/hefAPxVmBdhvtgr/QppHUvZ9tLYp7wi31bLN2z7TmfX0ms6t8su1Vsu9EnR2guXqUdZfvDu769I=" - access_key: - secure: "e5B3s5IBg7O+J+N6yX2knoXyYPhQDDchxht0NHvqhKy+vj4Rqt+x20130VMdbIR/LZyMV7axTnOLn3GFL28g7n/Aw2+HGsbNSb46QSm+WvC/fjpXGcBTdDxcTUDVDjqDYrZRYAKAOl6Sr0ogYb8X9+dysfbolL+lYscm+QtxMLB5J+uuHB2LDJcinCToVYnyUrlQXnhQVqen7PRvfWAn4tfAUwabLb6+WmuP2Sc8Tlxi3hkvtwsahUXT9TFKEvq1FhLztf16Tl2gFG7NWMvRM401B5Hmc1YlrVR3175ZJ2DHVZXSyeZCw75V4pjrJwej5B6/4truQAlKniIQsani4VkJB/8WaqMqps20gzQieNzLL//yToe8j+6YBf3p4loVucQ1mEruJDlp+piA33yJ2IOQ/zDOrnN9/VglAvoLzjqk5Lg0jOGBOo/AY7f9rcMSjOKPXB7gVwQB3pdnvL2Hm3qRZg+r0DahfB/ExlWLH5odIxpiD0mHmkX7quFZJiF5Y0lzyiH9xHDhHgCnm9pg12/FcLn+H15wHeyyV/YC5LfD6p0N6nQapln3PMWjaOS7A6/efyZY8LGZAi7PVMIVuVuStSWXAjNjZDHAgsczEH6EV7Tj2FoGkqPkHd0mD5ipGx6uKe9/ZNffH7mC6hd+jkW31dIl3JQJ2Aw3DMIvQBA=" - -script: -# Coverage runs the tests, so this implies `npm test` -# TODO: upload coverage to coveralls.io -- npm run coverage -# Lint the code. Note that the linter version is saved in -# package-lock.json, which means that eslint on the host and the server -# should be exactly the same. -- npm run lint -# Verify that the things that are compiled and checked in have been -# generated correctly from the most recent sources. -- npm run document && git diff --exit-code README.md -# TODO Upload the code to npm after it is tagged. \ No newline at end of file