Merge pull request #236 from sdttttt/sdttttt-patch-2
Ftr: Migrate travis Ci to GithubActions
diff --git a/.github/workflows/github-actions.yml b/.github/workflows/github-actions.yml
new file mode 100644
index 0000000..50480b8
--- /dev/null
+++ b/.github/workflows/github-actions.yml
@@ -0,0 +1,113 @@
+name: CI
+
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: "*"
+
+jobs:
+ build:
+ name: ${{ matrix.os }} - Go${{ matrix.go_version }} - JDK${{ matrix.jdk_version }}
+
+ runs-on: ${{ matrix.os }}
+
+ strategy:
+ matrix:
+ os:
+ - ubuntu-latest
+ go_version:
+ - 1.12
+ jdk_version:
+ - 1.8
+ env:
+ DING_TOKEN: 049ae645b5dfb16e3240f81c1757333549ca46b30a5d6b40df562c63c36cf166
+ DING_SIGN: SEC128fb97348610e9d4529bfb59ad7f3fd716b972785a0d04f1cee2c83ec160e59
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Set up JDK ${{ matrix.jdk_version }}
+ uses: actions/setup-java@v1
+ with:
+ java-version: ${{ matrix.jdk_version }}
+
+ - name: Set up Go ${{ matrix.go_version }}
+ uses: actions/setup-go@v2
+ with:
+ go-version: ${{ matrix.go_version }}
+ id: go
+
+ - name: Cache Go Dependence
+ uses: actions/cache@v2
+ with:
+ path: ~/go/pkg/mod
+ key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
+ restore-keys: ${{ runner.os }}-go-
+
+ - name: Cache local Maven repository
+ uses: actions/cache@v2
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: ${{ runner.os }}-maven-
+
+ - name: Java Test And Package
+ run: |
+ mvn clean package -DskipTests=true -f test_hessian/pom.xml
+ mvn test -f test_hessian/pom.xml
+ mvn clean package -f test_dubbo/pom.xml
+
+ - name: Validate License
+ run: |
+ sh before_validate_license.sh
+ chmod u+x /tmp/tools/license/license-header-checker
+ /tmp/tools/license/license-header-checker -v -a -r -i vendor /tmp/tools/license/license.txt . go && [[ -z `git status -s` ]]
+
+ - name: Go Test
+ run: go mod vendor && go test -race -v && go test -bench . -race -coverprofile=coverage.txt
+
+ - name: Coverage
+ run: bash <(curl -s https://codecov.io/bash)
+
+
+ # Because the contexts of push and PR are different, there are two Notify.
+ # Notifications are triggered only in the apache/dubbo-go-hessian2 repository.
+ - name: DingTalk Message Notify only Push
+ uses: zcong1993/actions-ding@v3.0.1
+ # Whether job is successful or not, always () is always true.
+ if: |
+ always() &&
+ github.event_name == 'push' &&
+ github.repository == 'apache/dubbo-go-hessian2'
+ with:
+ # DingDing bot token
+ dingToken: ${{ env.DING_TOKEN }}
+ secret: ${{ env.DING_SIGN }}
+ # Post Body to send
+ body: |
+ {
+ "msgtype": "markdown",
+ "markdown": {
+ "title": "Github Actions",
+ "text": "## Github Actions \n - name: CI \n - repository: ${{ github.repository }} \n - trigger: ${{ github.actor }} \n - event: ${{ github.event_name }} \n - ref: ${{ github.ref }} \n - status: [${{ job.status }}](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}) \n - environment: ${{ runner.os }} \n > SHA: [${{ github.sha }}](${{ github.event.compare }})"
+ }
+ }
+
+ - name: DingTalk Message Notify only PR
+ uses: zcong1993/actions-ding@v3.0.1
+ if: |
+ always() &&
+ github.event_name == 'pull_request' &&
+ github.repository == 'apache/dubbo-go-hessian2'
+ with:
+ dingToken: ${{ env.DING_TOKEN }}
+ secret: ${{ env.DING_SIGN }}
+ body: |
+ {
+ "msgtype": "markdown",
+ "markdown": {
+ "title": "Github Actions",
+ "text": "## Github Actions \n - name: CI \n - repository: ${{ github.repository }} \n - pr_title: **${{ github.event.pull_request.title }}** \n - trigger: ${{ github.actor }} \n - event: ${{ github.event_name }} \n - ref: [${{ github.ref }}](${{ github.event.pull_request._links.html.href }}) \n - status: [${{ job.status }}](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}) \n - environment: ${{ runner.os }} \n > SHA: [${{ github.sha }}](${{ github.event.pull_request._links.html.href }})"
+ }
+ }