[Tests] partially migrate to Github Actions
diff --git a/.github/workflows/latest-npm.yml b/.github/workflows/latest-npm.yml
new file mode 100644
index 0000000..54b260a
--- /dev/null
+++ b/.github/workflows/latest-npm.yml
@@ -0,0 +1,50 @@
+name: 'Tests: `nvm install-latest-npm`'
+
+on: [pull_request, push]
+
+jobs:
+  nodes:
+    name: 'nvm install-latest-npm'
+    runs-on: ubuntu-latest
+
+    strategy:
+      matrix:
+        node-version:
+          - "11"
+          - "10"
+          - "9"
+          - "9.2"
+          - "9.1"
+          - "9.0"
+          - "8"
+          - "7"
+          - "6"
+          - "6.1"
+          - "5"
+          - "5.9"
+          - "4"
+          - "4.6"
+          - "4.5"
+          - "4.4"
+          - "3"
+          - "2"
+          - "1"
+          - "0.12"
+          - "0.10"
+
+    steps:
+      - uses: actions/checkout@v2
+      - uses: ljharb/actions/node/run@main
+        name: 'nvm install-latest-npm'
+        with:
+          node-version: ${{ matrix.node-version }}
+          skip-ls-check: true
+          skip-install: true
+          shell-command: 'npm --version'
+
+  node:
+    name: 'nvm install-latest-npm'
+    needs: [nodes]
+    runs-on: ubuntu-latest
+    steps:
+      - run: 'echo tests completed'
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
new file mode 100644
index 0000000..97ed062
--- /dev/null
+++ b/.github/workflows/lint.yml
@@ -0,0 +1,38 @@
+name: 'Tests: linting'
+
+on: [pull_request, push]
+
+jobs:
+  eclint:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - uses: ljharb/actions/node/run@main
+        name: 'npm install && npm run eclint'
+        with:
+          node-version: 'lts/*'
+          command: 'eclint'
+
+  dockerfile_lint:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - uses: ljharb/actions/node/run@main
+        name: 'npm install && npm run dockerfile_lint'
+        with:
+          node-version: 'lts/*'
+          command: 'dockerfile_lint'
+
+  doctoc:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - uses: ljharb/actions/node/run@main
+        name: 'npm install && npm run dockerfile_lint'
+        with:
+          node-version: 'lts/*'
+          shell-command: |
+            set -e
+            cp README.md README.md.orig
+            npm run doctoc
+            diff -q README.md README.md.orig
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index e973399..5219d49 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,4 +1,4 @@
-name: "Tests: release process"
+name: 'Tests: release process'
 
 on: [pull_request, push]
 
diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml
index 1039d38..f56843d 100644
--- a/.github/workflows/shellcheck.yml
+++ b/.github/workflows/shellcheck.yml
@@ -1,4 +1,4 @@
-name: "Tests: shellcheck"
+name: 'Tests: shellcheck'
 
 on: [pull_request, push]
 
diff --git a/.travis.yml b/.travis.yml
index 247770c..5b20b0b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -22,13 +22,9 @@
   - if [ -z "${SHELLCHECK-}" ]; then nvm install node && npm install && npm prune && npm ls urchin doctoc eclint dockerfile_lint; fi
   - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y'
 script:
-  - if [ -n "${DOCTOCCHECK-}" ]; then cp README.md README.md.orig && npm run doctoc && diff -q README.md README.md.orig ; fi
-  - if [ -n "${ECLINT-}" ]; then npm run eclint ; fi
-  - if [ -n "${DOCKERFILE_LINT-}" ]; then npm run dockerfile_lint ; fi
   - if [ -n "${SHELL-}" ] && [ -n "${TEST_SUITE}" ]; then if [ "${TEST_SUITE}" = 'installation_iojs' ]; then travis_retry make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL ; else make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL; fi; fi
 before_cache:
   - if [ -n "$WITHOUT_CURL" ]; then sudo apt-get install curl -y ; fi
-  - if [ -n "${NODE-}" ]; then . nvm.sh && set -ex && nvm install --latest-npm "${NODE}" && npm --version; fi
 env:
   global:
     - CXX=g++
@@ -37,9 +33,6 @@
     - PATH="/usr/lib/ccache/:$PATH"
     - NVM_DIR="${TRAVIS_BUILD_DIR}"
   matrix:
-    - DOCTOCCHECK=true
-    - ECLINT=true
-    - DOCKERFILE_LINT=true
     - SHELL=bash TEST_SUITE=install_script
     - SHELL=sh TEST_SUITE=fast
     - SHELL=dash TEST_SUITE=fast
@@ -74,17 +67,5 @@
     - SHELL=bash TEST_SUITE=installation_iojs WITHOUT_CURL=1
     - SHELL=zsh TEST_SUITE=installation_iojs
     - SHELL=zsh TEST_SUITE=installation_iojs WITHOUT_CURL=1
-    #  - SHELL=ksh TEST_SUITE=installation_iojs
-    #  - SHELL=ksh TEST_SUITE=installation_iojs WITHOUT_CURL=1
-    - NODE=10 TEST="nvm install-latest-npm"
-    - NODE=9 TEST="nvm install-latest-npm"
-    - NODE=8 TEST="nvm install-latest-npm"
-    - NODE=7 TEST="nvm install-latest-npm"
-    - NODE=6 TEST="nvm install-latest-npm"
-    - NODE=5 TEST="nvm install-latest-npm"
-    - NODE=5.9 TEST="nvm install-latest-npm"
-    - NODE=4 TEST="nvm install-latest-npm"
-    - NODE=4.6 TEST="nvm install-latest-npm"
-    - NODE=4.5 TEST="nvm install-latest-npm"
-    - NODE=4.4 TEST="nvm install-latest-npm"
-    - NODE=2 TEST="nvm install-latest-npm"
+   #  - SHELL=ksh TEST_SUITE=installation_iojs
+   #  - SHELL=ksh TEST_SUITE=installation_iojs WITHOUT_CURL=1