diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..910c8cfd --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,23 @@ +name: ci +'on': + - push + - pull_request +jobs: + test: + name: Node ${{ matrix.node }} / ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: + - ubuntu-latest + node: + - '14' + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + with: + node-version: ${{ runner.node }} + - run: npm install + - run: npm run build --if-present + - run: npm test diff --git a/.npmignore b/.npmignore index 5a33e813..ae28c208 100644 --- a/.npmignore +++ b/.npmignore @@ -1,6 +1,6 @@ -.travis.yml CONTRIBUTING.md examples/ img/ test/ tools/ +.github/ diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index e95e6545..00000000 --- a/.travis.yml +++ /dev/null @@ -1,10 +0,0 @@ -language: node_js -sudo: false -node_js: - - lts/* -before_script: - # Add an IPv6 config - see the corresponding Travis issue - # https://github.com/travis-ci/travis-ci/issues/8361 - - if [ "${TRAVIS_OS_NAME}" == "linux" ]; then - sudo sh -c 'echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6'; - fi diff --git a/README.md b/README.md index 3e48a535..1ac36057 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -# bittorrent-tracker [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] +# bittorrent-tracker [![ci][ci-image]][ci-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] -[travis-image]: https://img.shields.io/travis/webtorrent/bittorrent-tracker/master.svg -[travis-url]: https://travis-ci.org/webtorrent/bittorrent-tracker +[ci-image]: https://img.shields.io/github/workflow/status/webtorrent/bittorrent-tracker/ci/master +[ci-url]: https://github.com/webtorrent/bittorrent-tracker/actions [npm-image]: https://img.shields.io/npm/v/bittorrent-tracker.svg [npm-url]: https://npmjs.org/package/bittorrent-tracker [downloads-image]: https://img.shields.io/npm/dm/bittorrent-tracker.svg diff --git a/client.js b/client.js index 6fc21798..fabbf63f 100644 --- a/client.js +++ b/client.js @@ -3,6 +3,7 @@ const EventEmitter = require('events') const once = require('once') const parallel = require('run-parallel') const Peer = require('simple-peer') +const queueMicrotask = require('queue-microtask') const common = require('./lib/common') const HTTPTracker = require('./lib/client/http-tracker') // empty object in browser @@ -76,7 +77,7 @@ class Client extends EventEmitter { const webrtcSupport = this._wrtc !== false && (!!this._wrtc || Peer.WEBRTC_SUPPORT) const nextTickWarn = err => { - process.nextTick(() => { + queueMicrotask(() => { this.emit('warning', err) }) } diff --git a/package.json b/package.json index 960fac5e..213073a3 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "bittorrent-tracker", "description": "Simple, robust, BitTorrent tracker (client & server) implementation", - "version": "9.16.0", + "version": "9.16.1", "author": { "name": "WebTorrent LLC", "email": "feross@webtorrent.io", @@ -34,6 +34,7 @@ "lru": "^3.1.0", "minimist": "^1.2.5", "once": "^1.4.0", + "queue-microtask": "^1.2.2", "random-iterate": "^1.0.1", "randombytes": "^2.1.0", "run-parallel": "^1.1.9",