summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/CI.yml79
-rw-r--r--.github/workflows/build-windows.yml23
-rw-r--r--.github/workflows/linters.yml73
-rw-r--r--.github/workflows/misc.yml24
-rw-r--r--.github/workflows/pythonpackage.yml33
-rw-r--r--.github/workflows/test-linux.yml23
-rw-r--r--.github/workflows/test-macos.yml23
-rw-r--r--.gitignore1
-rw-r--r--.travis.yml88
-rwxr-xr-xconfigure3
-rw-r--r--doc/guides/collaborator-guide.md9
11 files changed, 167 insertions, 212 deletions
diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml
deleted file mode 100644
index f5b6281149..0000000000
--- a/.github/workflows/CI.yml
+++ /dev/null
@@ -1,79 +0,0 @@
-name: CI
-
-on: [push, pull_request]
-
-jobs:
- build-docs:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Build
- run: NODE=$(which node) make doc-only
- - uses: actions/upload-artifact@v1
- with:
- name: docs
- path: out/doc
- build-linux:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Environment Information
- run: npx envinfo
- - name: Build
- run: ./configure && make -j2
- build-windows:
- runs-on: windows-latest
- steps:
- - uses: actions/checkout@v2
- - name: Environment Information
- run: npx envinfo
- - name: Install deps
- run: choco install nasm
- - name: Build
- run: ./vcbuild.bat
- build-macOS:
- runs-on: macos-latest
- steps:
- - uses: actions/checkout@v2
- - name: Environment Information
- run: npx envinfo
- - name: Build
- run: ./configure && make -j8
- lint-addon-docs:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Use Node.js 10
- uses: actions/setup-node@v1
- with:
- node-version: 10.x
- - name: Lint addon docs
- run: NODE=$(which node) make lint-addon-docs
- lint-cpp:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Lint C/C++ files
- run: make lint-cpp
- lint-md:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Use Node.js 10
- uses: actions/setup-node@v1
- with:
- node-version: 10.x
- - name: Lint docs
- run: |
- echo "::add-matcher::.github/workflows/remark-lint-problem-matcher.json"
- NODE=$(which node) make lint-md
- lint-js:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Use Node.js 10
- uses: actions/setup-node@v1
- with:
- node-version: 10.x
- - name: Lint JavaScript files
- run: NODE=$(which node) make lint-js
diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml
new file mode 100644
index 0000000000..e342d93332
--- /dev/null
+++ b/.github/workflows/build-windows.yml
@@ -0,0 +1,23 @@
+name: build-windows
+
+on: [push, pull_request]
+
+env:
+ PYTHON_VERSION: 3.8
+ FLAKY_TESTS: dontcare
+
+jobs:
+ build-windows:
+ runs-on: windows-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ env.PYTHON_VERSION }}
+ uses: actions/setup-python@v1
+ with:
+ PYTHON_VERSION: ${{ env.PYTHON_VERSION }}
+ - name: Install deps
+ run: choco install nasm
+ - name: Environment Information
+ run: npx envinfo
+ - name: Build
+ run: ./vcbuild.bat
diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml
new file mode 100644
index 0000000000..f0ee528a0f
--- /dev/null
+++ b/.github/workflows/linters.yml
@@ -0,0 +1,73 @@
+name: linters
+
+on: [push, pull_request]
+
+env:
+ PYTHON_VERSION: 3.8
+ NODE_VERSION: 10.x
+
+jobs:
+ lint-addon-docs:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Use Node.js ${{ env.NODE_VERSION }}
+ uses: actions/setup-node@v1
+ with:
+ node-version: ${{ env.NODE_VERSION }}
+ - name: Environment Information
+ run: npx envinfo
+ - name: Lint addon docs
+ run: NODE=$(which node) make lint-addon-docs
+ lint-cpp:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ env.PYTHON_VERSION }}
+ uses: actions/setup-python@v1
+ with:
+ PYTHON_VERSION: ${{ env.PYTHON_VERSION }}
+ - name: Environment Information
+ run: npx envinfo
+ - name: Lint C/C++ files
+ run: make lint-cpp
+ lint-md:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Use Node.js ${{ env.NODE_VERSION }}
+ uses: actions/setup-node@v1
+ with:
+ node-version: ${{ env.NODE_VERSION }}
+ - name: Environment Information
+ run: npx envinfo
+ - name: Lint docs
+ run: |
+ echo "::add-matcher::.github/workflows/remark-lint-problem-matcher.json"
+ NODE=$(which node) make lint-md
+ lint-js:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Use Node.js ${{ env.NODE_VERSION }}
+ uses: actions/setup-node@v1
+ with:
+ node-version: ${{ env.NODE_VERSION }}
+ - name: Environment Information
+ run: npx envinfo
+ - name: Lint JavaScript files
+ run: NODE=$(which node) make lint-js
+ lint-py:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ env.PYTHON_VERSION }}
+ uses: actions/setup-python@v1
+ with:
+ PYTHON_VERSION: ${{ env.PYTHON_VERSION }}
+ - name: Environment Information
+ run: npx envinfo
+ - name: Lint Python
+ run: |
+ make lint-py-build || true
+ NODE=$(which node) make lint lint-py
diff --git a/.github/workflows/misc.yml b/.github/workflows/misc.yml
new file mode 100644
index 0000000000..b23120ae0f
--- /dev/null
+++ b/.github/workflows/misc.yml
@@ -0,0 +1,24 @@
+name: misc
+
+on: [push, pull_request]
+
+env:
+ NODE_VERSION: 12.x
+
+jobs:
+ build-docs:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Use Node.js ${{ env.NODE_VERSION }}
+ uses: actions/setup-node@v1
+ with:
+ node-version: ${{ env.NODE_VERSION }}
+ - name: Environment Information
+ run: npx envinfo
+ - name: Build
+ run: NODE=$(which node) make doc-only
+ - uses: actions/upload-artifact@v1
+ with:
+ name: docs
+ path: out/doc
diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml
deleted file mode 100644
index 9ff5e9a39d..0000000000
--- a/.github/workflows/pythonpackage.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-name: Python 3 testing
-
-on: [push, pull_request]
-
-jobs:
- build:
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- max-parallel: 1
- matrix:
- python-version: [3.8] # [2.7, 3.5, 3.6, 3.7]
- steps:
- - uses: actions/checkout@v2
- - name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v1
- with:
- python-version: ${{ matrix.python-version }}
- - name: Compile Node.js
- run: |
- python ./configure.py
- make -j2 V=1
- - name: Test JS Suites
- run: |
- python tools/test.py -j 2 -p dots --report --mode=release --flaky-tests=dontcare default
- - name: Test C++ Suites
- run: |
- make -j1 V=1 test/addons/.buildstamp test/js-native-api/.buildstamp test/node-api/.buildstamp
- python tools/test.py -j 2 -p dots --report --mode=release --flaky-tests=dontcare addons js-native-api node-api
- - name: Make lint
- run: |
- make lint-py-build || true
- NODE=$(which node) make lint lint-py
diff --git a/.github/workflows/test-linux.yml b/.github/workflows/test-linux.yml
new file mode 100644
index 0000000000..9b428b1f50
--- /dev/null
+++ b/.github/workflows/test-linux.yml
@@ -0,0 +1,23 @@
+name: test-linux
+
+on: [push, pull_request]
+
+env:
+ PYTHON_VERSION: 3.8
+ FLAKY_TESTS: dontcare
+
+jobs:
+ test-linux:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ env.PYTHON_VERSION }}
+ uses: actions/setup-python@v1
+ with:
+ PYTHON_VERSION: ${{ env.PYTHON_VERSION }}
+ - name: Environment Information
+ run: npx envinfo
+ - name: Build
+ run: make build-ci -j2 V=1
+ - name: Test
+ run: make run-ci -j2 V=1
diff --git a/.github/workflows/test-macos.yml b/.github/workflows/test-macos.yml
new file mode 100644
index 0000000000..55fda9317a
--- /dev/null
+++ b/.github/workflows/test-macos.yml
@@ -0,0 +1,23 @@
+name: test-macOS
+
+on: [push, pull_request]
+
+env:
+ PYTHON_VERSION: 3.8
+ FLAKY_TESTS: dontcare
+
+jobs:
+ test-macOS:
+ runs-on: macos-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ env.PYTHON_VERSION }}
+ uses: actions/setup-python@v1
+ with:
+ PYTHON_VERSION: ${{ env.PYTHON_VERSION }}
+ - name: Environment Information
+ run: npx envinfo
+ - name: Build
+ run: make build-ci -j8 V=1
+ - name: Test
+ run: make run-ci -j8 V=1
diff --git a/.gitignore b/.gitignore
index 425a5ddbec..1a0758ca5c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,7 +19,6 @@
!.gitkeep
!.mailmap
!.nycrc
-!.travis.yml
!.eslintrc.yaml
!.cpplint
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index de7d7d47f8..0000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,88 +0,0 @@
-os: linux
-language: cpp
-env:
- global:
- - PYTHON_VERSION="3.7.1"
- - PYTHON=python3
-jobs:
- include:
- - stage: "Compile"
- name: "Compile Node.js"
- cache: ccache
- addons:
- apt:
- sources:
- - ubuntu-toolchain-r-test
- packages:
- - g++-6
- install:
- - export CCACHE_NOSTATS=1
- - export CCACHE_SLOPPINESS="file_macro,include_file_mtime,include_file_ctime,time_macros,file_stat_matches"
- - export CC='ccache gcc-6'
- - export CXX='ccache g++-6'
- script:
- - pyenv global ${PYTHON_VERSION}
- - ./configure
- - timeout --preserve-status 45m make -j2 V=1
- before_cache:
- - cp out/Release/node /home/travis/.ccache
- - cp out/Release/cctest /home/travis/.ccache
-
- - stage: "Tests"
- name: "Test JS Suites"
- cache: ccache
- install:
- - mkdir -p out/Release
- - cp /home/travis/.ccache/node out/Release/node
- script:
- - pyenv global ${PYTHON_VERSION}
- - python tools/test.py -j 2 -p dots --report --mode=release --flaky-tests=dontcare default
-
- - name: "Test C++ Suites"
- cache: ccache
- install:
- - export CCACHE_NOSTATS=1
- - export CCACHE_SLOPPINESS="file_macro,include_file_mtime,include_file_ctime,time_macros,file_stat_matches"
- - export CC='ccache gcc'
- - export CXX='ccache g++'
- - mkdir -p out/Release
- - cp /home/travis/.ccache/node out/Release/node
- - ln -fs out/Release/node node
- - cp /home/travis/.ccache/cctest out/Release/cctest
- - touch config.gypi
- script:
- - pyenv global ${PYTHON_VERSION}
- - out/Release/cctest
- - make -j1 V=1 test/addons/.buildstamp test/js-native-api/.buildstamp test/node-api/.buildstamp
- - python tools/test.py -j 2 -p dots --report --mode=release --flaky-tests=dontcare addons js-native-api node-api
-
- - name: "Run Linter and Build Docs"
- language: node_js
- node_js: "node"
- install:
- - pyenv global ${PYTHON_VERSION}
- - make lint-py-build || true
- script:
- - NODE=$(which node) make lint-py doc-only lint
-
- - name: "First commit message adheres to guidelines at <a href=\"https://goo.gl/p2fr5Q\">https://goo.gl/p2fr5Q</a>"
- if: type = pull_request
- language: node_js
- node_js: "node"
- script:
- - if [ "${TRAVIS_PULL_REQUEST}" != "false" ]; then
- bash -x tools/lint-pr-commit-message.sh ${TRAVIS_PULL_REQUEST};
- fi
-
- - name: "Find syntax errors in our Python dependencies"
- language: python
- python: 3.8
- install:
- - mv .flake8 disabled.flake8 # take the blinders off of flake8
- - python3.8 -m pip install --upgrade pip
- - python3.8 -m pip install flake8
- script:
- - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
- allow_failures: # TODO (cclauss): remove this when dependencies are clean
- - name: "Find syntax errors in our Python dependencies"
- - name: "First commit message adheres to guidelines at <a href=\"https://goo.gl/p2fr5Q\">https://goo.gl/p2fr5Q</a>"
diff --git a/configure b/configure
index bc0a01d985..71c2fc87ca 100755
--- a/configure
+++ b/configure
@@ -3,10 +3,7 @@
# Locate an acceptable python interpreter and then re-execute the script.
# Note that the mix of single and double quotes is intentional,
# as is the fact that the ] goes on a new line.
-# When a 'which' call is made for a specific version of Python on Travis CI,
-# pyenv will alert which shims are available and then will fail the build.
_=[ 'exec' '/bin/sh' '-c' '''
-test ${TRAVIS} && exec python "$0" "$@" # workaround for pyenv on Travis CI
test ${FORCE_PYTHON2} && exec python2 "$0" "$@" # workaround for gclient
which python3.8 >/dev/null && exec python3.8 "$0" "$@"
which python3.7 >/dev/null && exec python3.7 "$0" "$@"
diff --git a/doc/guides/collaborator-guide.md b/doc/guides/collaborator-guide.md
index 7e887d7543..956eae7fb2 100644
--- a/doc/guides/collaborator-guide.md
+++ b/doc/guides/collaborator-guide.md
@@ -175,14 +175,7 @@ fail before the change, and pass after the change.
All pull requests must pass continuous integration tests. Code changes must pass
on [project CI server](https://ci.nodejs.org/). Pull requests that only change
-documentation and comments can use Travis CI results.
-
-Travis CI jobs have a fixed running time limit that building Node.js sometimes
-exceeds. If the `Compile Node.js` Travis CI job has timed out it will fail after
-around 45 minutes. The exit code will be 143, indicating that a `SIGTERM` signal
-terminated the `make` command. When this happens, restart the timed out job. It
-will reuse built artifacts from the previous timed-out run, and thus take less
-time to complete.
+documentation and comments can use GitHub Actions results.
Do not land any pull requests without passing (green or yellow) CI runs. If
there are CI failures unrelated to the change in the pull request, try "Resume