Repository: statrs-dev/statrs (language: rust)

Issue:
Migrate CI to GitHub actions (or elsewhere)
I believe the CI has not been running on Travis-CI since a while¹, as it has been shutting down for open source projects ([and it did not catch this two weeks ago](https://github.com/boxtown/statrs/pull/129)). I could try to migrate it the testing to GitHub actions.

¹ Edit: it has been running, but it has not been reporting the CI results back to GitHub it seems.


Discussion / hints:
It seems like our CI is now not running anymore.
I can see if I can work on a GitHub Actions workflow, if that helps.

Fix patch:
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 4483b13f..00000000
--- a/.travis.yml
+++ /dev/null
@@ -1,62 +0,0 @@
-language: rust
-
-matrix:
-  include:
-    # Stable
-    - os: linux
-      dist: trusty
-      rust: stable
-      addons:
-        apt:
-          packages:
-            # Install libraries for coverage
-            - binutils-dev
-            - libcurl4-openssl-dev
-            - libdw-dev
-            - libelf-dev
-            - libiberty-dev
-    # Nightly
-    - os: linux
-      dist: trusty
-      rust: nightly
-  allow_failures:
-    - rust: nightly
-
-before_script:
-  - rustup component add rustfmt
-  # Configure only if we're doing coverage
-  - >
-    if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$TRAVIS_RUST_VERSION" == "stable" ]]; then
-      LOCAL="~/.local" && export PATH=$LOCAL/bin:$PATH;
-    fi
-
-script:
-  - cargo fmt --all -- --check
-  - cargo build
-  - >
-    if [[ "$TRAVIS_RUST_VERSION" == "nightly" ]]; then
-      cargo test --features nightly
-    else
-      cargo test
-    fi
-
-after_success: >
-  if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$TRAVIS_RUST_VERSION" == "stable" ]]; then
-    wget https://github.com/SimonKagstrom/kcov/archive/v34.tar.gz &&
-    tar xzf v34.tar.gz &&
-    mkdir kcov-34/build &&
-    cd kcov-34/build &&
-    cmake -DCMAKE_INSTALL_PREFIX:PATH=$LOCAL .. &&
-    make &&
-    make install &&
-    cd ../.. &&
-    rm -rf kcov-34 &&
-    RUSTFLAGS='-C link-dead-code' cargo test --no-run &&
-    for file in target/debug/statrs-*; do
-      if [[ "${file: -2}" != ".d" ]]; then
-        mkdir -p "target/cov/$(basename $file)";
-        kcov --exclude-pattern=/.cargo,/usr/lib --verify "target/cov/$(basename $file)" "$file";
-      fi;
-    done &&
-    bash <(curl -s https://codecov.io/bash);
-  fi


Test patch:
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 00000000..4f9fd9cd
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,39 @@
+name: Tests
+
+on:
+  push:
+    branches: [ master ]
+  pull_request:
+    branches: [ master ]
+
+jobs:
+  test:
+    name: Test
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        include:
+          - os: ubuntu-latest
+            target: x86_64-unknown-linux-gnu
+            toolchain: stable
+          - os: ubuntu-latest
+            target: x86_64-unknown-linux-gnu
+            toolchain: nightly
+    steps:
+      - uses: actions/checkout@v2
+      - name: Install toolchain
+        uses: actions-rs/toolchain@v1
+        with:
+          profile: minimal
+          target: ${{ matrix.target }}
+          toolchain: ${{ matrix.toolchain }}
+          override: true
+      - name: Test nightly feature (if possible)
+        if: ${{ matrix.toolchain == 'nightly' }}
+        run: |
+          cargo test --target ${{ matrix.target }} --features=nightly
+          cargo test --target ${{ matrix.target }} --benches --features=nightly
+      - name: Test default features
+        run: |
+          cargo test --target ${{ matrix.target }}
\ No newline at end of file