Просмотр исходного кода

Merge pull request #7785 from zmstone/0426-better-names-for-ci-checks

ci: better names to ci checks
Zaiming (Stone) Shi 3 лет назад
Родитель
Сommit
cfcc843bd7

+ 15 - 1
.github/workflows/build_slim_packages.yaml

@@ -220,7 +220,7 @@ jobs:
         - emqx-edge
         - emqx-edge
         - emqx
         - emqx
         - emqx-enterprise
         - emqx-enterprise
-    runs-on: ubuntu-20.04
+    runs-on: aws-amd64
     container: "ghcr.io/iequ1/emqx-schema-validate:0.3.1"
     container: "ghcr.io/iequ1/emqx-schema-validate:0.3.1"
     steps:
     steps:
     - uses: actions/download-artifact@v2
     - uses: actions/download-artifact@v2
@@ -233,3 +233,17 @@ jobs:
         cd /LanguageTool
         cd /LanguageTool
         bash start.sh > /dev/null &
         bash start.sh > /dev/null &
         ./emqx_schema_validate /tmp/${{ matrix.profile }}/lib/emqx_dashboard/priv/www/static/schema.json
         ./emqx_schema_validate /tmp/${{ matrix.profile }}/lib/emqx_dashboard/priv/www/static/schema.json
+
+  allgood_packaging:
+    runs-on: ubuntu-latest
+    needs:
+      - linux
+      - windows
+      - mac
+    steps:
+    - name: Check if all packging builds succeeded
+      uses: re-actors/alls-green@release/v1
+      with:
+        #allowed-failures:
+        #allowed-skips:
+        jobs: ${{ toJSON(needs) }}

+ 2 - 10
.github/workflows/code_style_check.yaml

@@ -3,17 +3,9 @@ name: Code style check
 on: [pull_request]
 on: [pull_request]
 
 
 jobs:
 jobs:
-  build:
-    strategy:
-      matrix:
-        otp:
-          - 24.2.1-1
-        elixir:
-          - 1.13.3
-        os:
-          - ubuntu20.04
+  code_style_check:
     runs-on: ubuntu-20.04
     runs-on: ubuntu-20.04
-    container: "ghcr.io/emqx/emqx-builder/5.0-10:${{ matrix.elixir}}-${{ matrix.otp }}-${{ matrix.os }}"
+    container: "ghcr.io/emqx/emqx-builder/5.0-10:1.13.3-24.2.1-1-ubuntu20.04"
     steps:
     steps:
       - uses: actions/checkout@v2
       - uses: actions/checkout@v2
         with:
         with:

+ 1 - 1
.github/workflows/elixir_release.yml

@@ -10,7 +10,7 @@ on:
   workflow_dispatch:
   workflow_dispatch:
 
 
 jobs:
 jobs:
-  build:
+  elixir_release_build:
     runs-on: ubuntu-latest
     runs-on: ubuntu-latest
     container: ghcr.io/emqx/emqx-builder/5.0-10:1.13.3-24.2.1-1-ubuntu20.04
     container: ghcr.io/emqx/emqx-builder/5.0-10:1.13.3-24.2.1-1-ubuntu20.04
 
 

+ 32 - 2
.github/workflows/run_emqx_app_tests.yaml

@@ -14,7 +14,7 @@ on:
   pull_request:
   pull_request:
 
 
 jobs:
 jobs:
-  check_all:
+  run_emqx_app_tests:
     strategy:
     strategy:
       matrix:
       matrix:
         otp:
         otp:
@@ -30,11 +30,17 @@ jobs:
         arch:
         arch:
           - amd64
           - amd64
 
 
-    runs-on: ubuntu-20.04
+    runs-on: aws-amd64
     container: "ghcr.io/emqx/emqx-builder/5.0-10:${{ matrix.elixir}}-${{ matrix.otp }}-${{ matrix.os }}"
     container: "ghcr.io/emqx/emqx-builder/5.0-10:${{ matrix.elixir}}-${{ matrix.otp }}-${{ matrix.os }}"
 
 
+    defaults:
+      run:
+        shell: bash
+
     steps:
     steps:
     - uses: actions/checkout@v2
     - uses: actions/checkout@v2
+      with:
+        fetch-depth: 0
     - name: Get deps git refs for cache
     - name: Get deps git refs for cache
       id: deps-refs
       id: deps-refs
       run: |
       run: |
@@ -47,6 +53,18 @@ jobs:
         key: ${{ matrix.os }}-${{ matrix.otp }}-${{ matrix.arch }}-${{ steps.deps-refs.outputs.DEP_QUICER_REF }}
         key: ${{ matrix.os }}-${{ matrix.otp }}-${{ matrix.arch }}-${{ steps.deps-refs.outputs.DEP_QUICER_REF }}
     - name: run
     - name: run
       run: |
       run: |
+        echo "git diff base: $GITHUB_BASE_REF"
+        if [[ "$GITHUB_BASE_REF" =~ [0-9a-f]{8,40} ]]; then
+          # base is a commit sha1
+          compare_base="$GITHUB_BASE_REF"
+        else
+          compare_base="origin/$GITHUB_BASE_REF"
+        fi
+        changed_files="$(git diff --name-only ${compare_base}...HEAD apps/emqx)"
+        if [ "$changed_files" = '' ]; then
+          echo "nothing changed in apps/emqx, ignored."
+          exit 0
+        fi
         make ensure-rebar3
         make ensure-rebar3
         cp rebar3 apps/emqx/
         cp rebar3 apps/emqx/
         cd apps/emqx
         cd apps/emqx
@@ -60,3 +78,15 @@ jobs:
       with:
       with:
         name: logs
         name: logs
         path: apps/emqx/_build/test/logs
         path: apps/emqx/_build/test/logs
+
+  allgood_emqx_app_tests:
+    runs-on: ubuntu-latest
+    needs:
+      - run_emqx_app_tests
+    steps:
+    - name: Check if all emqx app tests succeeded
+      uses: re-actors/alls-green@release/v1
+      with:
+        #allowed-failures:
+        #allowed-skips:
+        jobs: ${{ toJSON(needs) }}

+ 23 - 12
.github/workflows/run_broker_tests.yaml

@@ -1,4 +1,4 @@
-name: Broker tests
+name: JMeter integration tests
 
 
 on:
 on:
   push:
   push:
@@ -9,7 +9,7 @@ on:
       - "master"
       - "master"
 
 
 jobs:
 jobs:
-  build:
+  build_emqx_for_jmeter_tests:
     runs-on: ubuntu-latest
     runs-on: ubuntu-latest
     outputs:
     outputs:
       version: ${{ steps.build_docker.outputs.version}}
       version: ${{ steps.build_docker.outputs.version}}
@@ -52,7 +52,7 @@ jobs:
         - mqtt_topic_rewrite
         - mqtt_topic_rewrite
 #        - mqtt_retainer
 #        - mqtt_retainer
 
 
-    needs: build
+    needs: build_emqx_for_jmeter_tests
     steps:
     steps:
     - uses: actions/checkout@v2
     - uses: actions/checkout@v2
     - uses: actions/download-artifact@v2
     - uses: actions/download-artifact@v2
@@ -65,7 +65,7 @@ jobs:
     - name: docker compose up
     - name: docker compose up
       timeout-minutes: 5
       timeout-minutes: 5
       env:
       env:
-        _EMQX_DOCKER_IMAGE_TAG: emqx/emqx:${{ needs.build.outputs.version }}
+        _EMQX_DOCKER_IMAGE_TAG: emqx/emqx:${{ needs.build_emqx_for_jmeter_tests.outputs.version }}
       run: |
       run: |
         docker-compose \
         docker-compose \
           -f .ci/docker-compose-file/docker-compose-emqx-cluster.yaml \
           -f .ci/docker-compose-file/docker-compose-emqx-cluster.yaml \
@@ -143,7 +143,7 @@ jobs:
         - pgsql_authn
         - pgsql_authn
         - pgsql_authz
         - pgsql_authz
 
 
-    needs: build
+    needs: build_emqx_for_jmeter_tests
     steps:
     steps:
     - uses: actions/checkout@v2
     - uses: actions/checkout@v2
     - uses: actions/download-artifact@v2
     - uses: actions/download-artifact@v2
@@ -156,7 +156,7 @@ jobs:
     - name: docker compose up
     - name: docker compose up
       timeout-minutes: 5
       timeout-minutes: 5
       env:
       env:
-        _EMQX_DOCKER_IMAGE_TAG: emqx/emqx:${{ needs.build.outputs.version }}
+        _EMQX_DOCKER_IMAGE_TAG: emqx/emqx:${{ needs.build_emqx_for_jmeter_tests.outputs.version }}
         PGSQL_TAG: ${{ matrix.pgsql_tag }}
         PGSQL_TAG: ${{ matrix.pgsql_tag }}
       run: |
       run: |
         docker-compose \
         docker-compose \
@@ -244,7 +244,7 @@ jobs:
         - mysql_authn
         - mysql_authn
         - mysql_authz
         - mysql_authz
 
 
-    needs: build
+    needs: build_emqx_for_jmeter_tests
     steps:
     steps:
     - uses: actions/checkout@v2
     - uses: actions/checkout@v2
     - uses: actions/download-artifact@v2
     - uses: actions/download-artifact@v2
@@ -257,7 +257,7 @@ jobs:
     - name: docker compose up
     - name: docker compose up
       timeout-minutes: 5
       timeout-minutes: 5
       env:
       env:
-        _EMQX_DOCKER_IMAGE_TAG: emqx/emqx:${{ needs.build.outputs.version }}
+        _EMQX_DOCKER_IMAGE_TAG: emqx/emqx:${{ needs.build_emqx_for_jmeter_tests.outputs.version }}
         PGSQL_TAG: ${{ matrix.mysql_tag }}
         PGSQL_TAG: ${{ matrix.mysql_tag }}
       run: |
       run: |
         docker-compose \
         docker-compose \
@@ -341,7 +341,7 @@ jobs:
         scripts_type:
         scripts_type:
         - jwt_authn
         - jwt_authn
 
 
-    needs: build
+    needs: build_emqx_for_jmeter_tests
     steps:
     steps:
     - uses: actions/checkout@v2
     - uses: actions/checkout@v2
     - uses: actions/download-artifact@v2
     - uses: actions/download-artifact@v2
@@ -354,7 +354,7 @@ jobs:
     - name: docker compose up
     - name: docker compose up
       timeout-minutes: 5
       timeout-minutes: 5
       env:
       env:
-        _EMQX_DOCKER_IMAGE_TAG: emqx/emqx:${{ needs.build.outputs.version }}
+        _EMQX_DOCKER_IMAGE_TAG: emqx/emqx:${{ needs.build_emqx_for_jmeter_tests.outputs.version }}
       run: |
       run: |
         docker-compose \
         docker-compose \
           -f .ci/docker-compose-file/docker-compose-emqx-cluster.yaml \
           -f .ci/docker-compose-file/docker-compose-emqx-cluster.yaml \
@@ -435,7 +435,7 @@ jobs:
         - built_in_database_authn
         - built_in_database_authn
         - built_in_database_authz
         - built_in_database_authz
 
 
-    needs: build
+    needs: build_emqx_for_jmeter_tests
     steps:
     steps:
     - uses: actions/checkout@v2
     - uses: actions/checkout@v2
     - uses: actions/download-artifact@v2
     - uses: actions/download-artifact@v2
@@ -448,7 +448,7 @@ jobs:
     - name: docker compose up
     - name: docker compose up
       timeout-minutes: 5
       timeout-minutes: 5
       env:
       env:
-        _EMQX_DOCKER_IMAGE_TAG: emqx/emqx:${{ needs.build.outputs.version }}
+        _EMQX_DOCKER_IMAGE_TAG: emqx/emqx:${{ needs.build_emqx_for_jmeter_tests.outputs.version }}
         PGSQL_TAG: ${{ matrix.mysql_tag }}
         PGSQL_TAG: ${{ matrix.mysql_tag }}
       run: |
       run: |
         docker-compose \
         docker-compose \
@@ -519,3 +519,14 @@ jobs:
     - uses: geekyeggo/delete-artifact@v1
     - uses: geekyeggo/delete-artifact@v1
       with:
       with:
         name: emqx.tar
         name: emqx.tar
+
+  allgood_integration_tests:
+    runs-on: ubuntu-20.04
+    needs: [advanced_feat,pgsql_authn_authz,JWT_authn,mysql_authn_authz,built_in_database_authn_authz]
+    steps:
+    - name: Check if all integration tests succeeded
+      uses: re-actors/alls-green@release/v1
+      with:
+        #allowed-failures:
+        #allowed-skips:
+        jobs: ${{ toJSON(needs) }}

+ 15 - 1
.github/workflows/run_test_cases.yaml

@@ -215,7 +215,7 @@ jobs:
         run: make coveralls
         run: make coveralls
 
 
     # do this in a separate job
     # do this in a separate job
-    finish:
+    upload_coverdata:
       needs: make_cover
       needs: make_cover
       runs-on: aws-amd64
       runs-on: aws-amd64
       steps:
       steps:
@@ -226,3 +226,17 @@ jobs:
             curl -v -k https://coveralls.io/webhook \
             curl -v -k https://coveralls.io/webhook \
                  --header "Content-Type: application/json" \
                  --header "Content-Type: application/json" \
                  --data "{\"repo_name\":\"$GITHUB_REPOSITORY\",\"repo_token\":\"$GITHUB_TOKEN\",\"payload\":{\"build_num\":$GITHUB_RUN_ID,\"status\":\"done\"}}" || true
                  --data "{\"repo_name\":\"$GITHUB_REPOSITORY\",\"repo_token\":\"$GITHUB_TOKEN\",\"payload\":{\"build_num\":$GITHUB_RUN_ID,\"status\":\"done\"}}" || true
+
+    allgood_functional_tests:
+      runs-on: ubuntu-20.04
+      needs:
+        - eunit_and_proper
+        - ct_docker
+        - ct
+      steps:
+      - name: Check if all functional tests succeeded
+        uses: re-actors/alls-green@release/v1
+        with:
+          #allowed-failures:
+          #allowed-skips:
+          jobs: ${{ toJSON(needs) }}