Migrate from TravisCI to GitHub Actions (#9)

diff --git a/.github/workflows/maven.yaml b/.github/workflows/maven.yaml
new file mode 100644
index 0000000..0b5108b
--- /dev/null
+++ b/.github/workflows/maven.yaml
@@ -0,0 +1,66 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# This workflow will build a Java project with Maven
+# See also:
+#   https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
+
+name: CI
+
+on:
+  push:
+    branches: [ '*' ]
+  pull_request:
+    branches: [ '*' ]
+
+jobs:
+  mvn:
+    timeout-minutes: 60
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Set up JDK 11
+      uses: actions/setup-java@v1
+      with:
+        java-version: 11
+    - name: Cache local maven repository
+      uses: actions/cache@v2
+      with:
+        path: |
+          ~/.m2/repository/
+          !~/.m2/repository/org/apache/fluo
+        key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
+        restore-keys: ${{ runner.os }}-m2
+    - name: Build with Maven
+      run: mvn -B -V -e -ntp "-Dstyle.color=always" verify javadoc:jar
+      env:
+        MAVEN_OPTS: -Djansi.force=true
+    - name: Upload unit test results
+      uses: actions/upload-artifact@v2
+      with:
+        name: surefire-reports
+        path: ./**/target/surefire-reports/
+        if-no-files-found: ignore
+    - name: Upload integration test results
+      uses: actions/upload-artifact@v2
+      with:
+        name: failsafe-reports
+        path: ./**/target/failsafe-reports/
+        if-no-files-found: ignore
+
diff --git a/README.md b/README.md
index d551368..0653551 100644
--- a/README.md
+++ b/README.md
@@ -91,8 +91,8 @@
 [blog]: https://fluo.apache.org/blog/2016/11/10/immutable-bytes/
 [semver]: http://semver.org/spec/v2.0.0.html
 [fluo]: https://fluo.apache.org/
-[ti]: https://travis-ci.org/apache/fluo-bytes.svg?branch=main
-[tl]: https://travis-ci.org/apache/fluo-bytes
+[ti]: https://github.com/apache/fluo-bytes/workflows/CI/badge.svg
+[tl]: https://github.com/apache/fluo-bytes/actions
 [li]: http://img.shields.io/badge/license-ASL-blue.svg
 [ll]: https://github.com/apache/fluo-bytes/blob/main/LICENSE
 [mi]: https://maven-badges.herokuapp.com/maven-central/org.apache.fluo/fluo-bytes/badge.svg