Skip to content

Commit

Permalink
Switch from Travis CI to GitHub Actions.
Browse files Browse the repository at this point in the history
  • Loading branch information
moll committed Aug 22, 2024
1 parent 11f789a commit 5ff900f
Show file tree
Hide file tree
Showing 4 changed files with 121 additions and 94 deletions.
117 changes: 117 additions & 0 deletions .github/workflows/node.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
name: Tests on Node.js
"on": [push, pull_request]

jobs:
test:
name: Node.js v${{matrix.node}}
runs-on: ubuntu-latest

strategy:
matrix:
node:
- "0.10"
- "0.11.13"

# v0.11.14 changed ReadableStream.prototype.resume. Also introduced
# writing binary strings.
- "0.11.14"
- "0.11"
- "0.12"
- "4"
- "5"
- "6.0.0"
- "6.3"

# v6.4 introduced writing latin1 strings.
- "6.4.0"
- "6"

# v7 changed the internal _normalizeConnectArgs's function name.
- "7.0.0"
- "7"
- "11.8"
- "8.11"

# v8.12 revamped parts of HTTP parsing.
- "8.12.0"
- "8"
- "9.5"

# v9.6 revamped parts of HTTP parsing just like v8.12.
- "9.6.0"
- "9"

# Node v10 requires InternalSocket.prototype.writev.
- "10.0.0"
- "10.15.0"

# Node v10.15.1 requires InternalSocket.prototype.shutdown.
- "10.15.1"
- "10"
- "11.0.0"

# v11.1 changed onStreamRead in stream_base_commons.js to get the
# byte count through a global structure.
- "11.1.0"

# v11.2 requires InternalSocket.prototype.shutdown.
- "11.2.0"
- "11.7"

# v11.8 requires InternalSocket.prototype.shutdown to return "0".
- "11.8.0"
- "11"
- "12.0.0"
- "12.3"

# v12.4 changed decoding the server response buffer to UCS-2 by no
# longer returning a string with 2 little-endian bytes in a String.
# Then again, this could be https://github.com/nodejs/node/pull/27936.
- "12.4"
- "12.16.2"

# v12.16.3 changed something in InternalSocket.prototype.shutdown or
# possibly WritableStream.prototype.end causing the "close" event to
# not be emitted.
# https://github.com/moll/node-mitm/issues/66
- "12.16.3"
- "12"
- "13"
- "14"
- "15"
- "16"
- "17"
- "18"
- "19"
- "20"
- "21"
- "22"

# IO.js required TlsSocket.prototype.getSession.
- "iojs"
- "iojs-v2.4.0"
- "iojs-v3.2.0"

steps:
- uses: actions/checkout@v3

- name: Install Node.js v${{matrix.node}}
uses: actions/setup-node@v3
with:
node-version: "${{matrix.node}}"
cache: npm
cache-dependency-path: package.json

# NPM < v3.10.10 fails with "Error: Missing required argument #1" in
# npm/lib/fetch-package-metadata.js:31:3.
- name: Install NPM v3.10.10+ where necessary
run: >
[[ "$(npm --version)" = 3.* ]] &&
[[ "$(npm --version)" != 3.10.10 ]] &&
npm install --global npm@3
- name: Install NPMs
run: npm install --no-package-lock

- name: Run tests
run: make spec
3 changes: 1 addition & 2 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
/*.tgz
/tags
/.travis.yml
/.github/
89 changes: 0 additions & 89 deletions .travis.yml

This file was deleted.

6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Mitm.js
=======
[![NPM version][npm-badge]](https://www.npmjs.com/package/mitm)
[![Build status][travis-badge]](https://travis-ci.org/moll/node-mitm)
[![Build status][build-badge]](https://github.com/moll/node-mitm/actions/workflows/node.yaml)

Mitm.js is a library for Node.js (and Io.js) to **intercept and mock** outgoing
network **TCP** and **HTTP** connections. Mitm.js intercepts and gives you
Expand All @@ -16,15 +16,15 @@ various responses to your code without ever having to hit the real network.
**Fast as hell** and **a lot easier to develop with than external test
servers**.

Mitm.js works on all Node versions: ancient **v0.10**, **v0.11** and **v0.12** versions, previous and current LTS versions like **v4** to **v12** and the newest **v13** and beyond. For all it has **automated tests** to ensure it will stay that way.
Mitm.js works on all Node versions: ancient **v0.10**, **v0.11** and **v0.12** versions, previous and current LTS versions like **v4** to **v12** and the newest **v22** and beyond. For all it has **automated tests** to ensure it will stay that way.

I've developed Mitm.js on a need-to basis for testing [Monday
Calendar][monday]'s syncing, so if you find a use-case I haven't come across,
please fling me an [email][email], a [tweet][twitter] or [create an
issue][issues] on GitHub.

[npm-badge]: https://img.shields.io/npm/v/mitm.svg
[travis-badge]: https://travis-ci.org/moll/node-mitm.svg?branch=master
[build-badge]: https://github.com/moll/js-j6pack/actions/workflows/node.yaml/badge.svg

### Tour
- Intercept both **TCP socket connections** (`Net.connect`) and **HTTP
Expand Down

0 comments on commit 5ff900f

Please sign in to comment.