[actions] Add shellcheck workflow

Co-authored-by: Alex Aubuchon <alex@aub.dev>
Co-authored-by: Jordan Harband <ljharb@gmail.com>
diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml
new file mode 100644
index 0000000..1039d38
--- /dev/null
+++ b/.github/workflows/shellcheck.yml
@@ -0,0 +1,31 @@
+name: "Tests: shellcheck"
+
+on: [pull_request, push]
+
+jobs:
+  shellcheck:
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        shell:
+          - bash
+          - sh
+          - dash
+          - ksh
+        file:
+          - nvm.sh
+        include:
+          - shell: bash
+            file: install.sh # only supported on bash
+          - shell: bash
+            file: bash_completion # only needed in bash/zsh
+          - shell: bash
+            file: nvm-exec # only runs in bash
+
+    steps:
+      - uses: actions/checkout@v2
+      - name: Install shellcheck
+        run: brew install shellcheck
+      - run: "shellcheck --version"
+      - name: Run shellcheck on ${{ matrix.file }}
+        run: shellcheck -s ${{ matrix.shell }} ${{ matrix.file }}
diff --git a/.travis.yml b/.travis.yml
index 5b83e1b..ef7f72d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -18,7 +18,6 @@
   - $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL
   - curl --version
   - wget --version
-  - shellcheck --version
 install:
   - 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'
@@ -27,8 +26,6 @@
   - 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 "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh ; fi
-  - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash install.sh bash_completion nvm-exec ; 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
@@ -43,7 +40,6 @@
   matrix:
     - MAKE_RELEASE=true
     - DOCTOCCHECK=true
-    - SHELLCHECK=true
     - ECLINT=true
     - DOCKERFILE_LINT=true
     - SHELL=bash TEST_SUITE=install_script