diff --git a/.github/workflows/build_slim_packages.yaml b/.github/workflows/build_slim_packages.yaml index 951ebbcfb..df1d41614 100644 --- a/.github/workflows/build_slim_packages.yaml +++ b/.github/workflows/build_slim_packages.yaml @@ -220,7 +220,7 @@ jobs: - emqx-edge - emqx - emqx-enterprise - runs-on: ubuntu-20.04 + runs-on: aws-amd64 container: "ghcr.io/iequ1/emqx-schema-validate:0.3.1" steps: - uses: actions/download-artifact@v2 @@ -233,3 +233,17 @@ jobs: cd /LanguageTool bash start.sh > /dev/null & ./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) }} diff --git a/.github/workflows/code_style_check.yaml b/.github/workflows/code_style_check.yaml index e7fac1c5a..323e4cb64 100644 --- a/.github/workflows/code_style_check.yaml +++ b/.github/workflows/code_style_check.yaml @@ -3,17 +3,9 @@ name: Code style check on: [pull_request] jobs: - build: - strategy: - matrix: - otp: - - 24.2.1-1 - elixir: - - 1.13.3 - os: - - ubuntu20.04 + code_style_check: 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: - uses: actions/checkout@v2 with: diff --git a/.github/workflows/elixir_release.yml b/.github/workflows/elixir_release.yml index 8af96830b..3ce943633 100644 --- a/.github/workflows/elixir_release.yml +++ b/.github/workflows/elixir_release.yml @@ -10,7 +10,7 @@ on: workflow_dispatch: jobs: - build: + elixir_release_build: runs-on: ubuntu-latest container: ghcr.io/emqx/emqx-builder/5.0-10:1.13.3-24.2.1-1-ubuntu20.04 diff --git a/.github/workflows/run_emqx_app_tests.yaml b/.github/workflows/run_emqx_app_tests.yaml index d10007139..479757730 100644 --- a/.github/workflows/run_emqx_app_tests.yaml +++ b/.github/workflows/run_emqx_app_tests.yaml @@ -14,7 +14,7 @@ on: pull_request: jobs: - check_all: + run_emqx_app_tests: strategy: matrix: otp: @@ -30,11 +30,17 @@ jobs: arch: - 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 }}" + defaults: + run: + shell: bash + steps: - uses: actions/checkout@v2 + with: + fetch-depth: 0 - name: Get deps git refs for cache id: deps-refs run: | @@ -47,6 +53,18 @@ jobs: key: ${{ matrix.os }}-${{ matrix.otp }}-${{ matrix.arch }}-${{ steps.deps-refs.outputs.DEP_QUICER_REF }} - name: 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 cp rebar3 apps/emqx/ cd apps/emqx @@ -60,3 +78,15 @@ jobs: with: name: 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) }} diff --git a/.github/workflows/run_broker_tests.yaml b/.github/workflows/run_jmeter_tests.yaml similarity index 94% rename from .github/workflows/run_broker_tests.yaml rename to .github/workflows/run_jmeter_tests.yaml index 0b20a641e..476ca0ea8 100644 --- a/.github/workflows/run_broker_tests.yaml +++ b/.github/workflows/run_jmeter_tests.yaml @@ -1,4 +1,4 @@ -name: Broker tests +name: JMeter integration tests on: push: @@ -9,7 +9,7 @@ on: - "master" jobs: - build: + build_emqx_for_jmeter_tests: runs-on: ubuntu-latest outputs: version: ${{ steps.build_docker.outputs.version}} @@ -52,7 +52,7 @@ jobs: - mqtt_topic_rewrite # - mqtt_retainer - needs: build + needs: build_emqx_for_jmeter_tests steps: - uses: actions/checkout@v2 - uses: actions/download-artifact@v2 @@ -65,7 +65,7 @@ jobs: - name: docker compose up timeout-minutes: 5 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: | docker-compose \ -f .ci/docker-compose-file/docker-compose-emqx-cluster.yaml \ @@ -143,7 +143,7 @@ jobs: - pgsql_authn - pgsql_authz - needs: build + needs: build_emqx_for_jmeter_tests steps: - uses: actions/checkout@v2 - uses: actions/download-artifact@v2 @@ -156,7 +156,7 @@ jobs: - name: docker compose up timeout-minutes: 5 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 }} run: | docker-compose \ @@ -244,7 +244,7 @@ jobs: - mysql_authn - mysql_authz - needs: build + needs: build_emqx_for_jmeter_tests steps: - uses: actions/checkout@v2 - uses: actions/download-artifact@v2 @@ -257,7 +257,7 @@ jobs: - name: docker compose up timeout-minutes: 5 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 }} run: | docker-compose \ @@ -341,7 +341,7 @@ jobs: scripts_type: - jwt_authn - needs: build + needs: build_emqx_for_jmeter_tests steps: - uses: actions/checkout@v2 - uses: actions/download-artifact@v2 @@ -354,7 +354,7 @@ jobs: - name: docker compose up timeout-minutes: 5 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: | docker-compose \ -f .ci/docker-compose-file/docker-compose-emqx-cluster.yaml \ @@ -435,7 +435,7 @@ jobs: - built_in_database_authn - built_in_database_authz - needs: build + needs: build_emqx_for_jmeter_tests steps: - uses: actions/checkout@v2 - uses: actions/download-artifact@v2 @@ -448,7 +448,7 @@ jobs: - name: docker compose up timeout-minutes: 5 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 }} run: | docker-compose \ @@ -519,3 +519,14 @@ jobs: - uses: geekyeggo/delete-artifact@v1 with: 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) }} diff --git a/.github/workflows/run_test_cases.yaml b/.github/workflows/run_test_cases.yaml index 98ae52b14..eba48b6b8 100644 --- a/.github/workflows/run_test_cases.yaml +++ b/.github/workflows/run_test_cases.yaml @@ -215,7 +215,7 @@ jobs: run: make coveralls # do this in a separate job - finish: + upload_coverdata: needs: make_cover runs-on: aws-amd64 steps: @@ -226,3 +226,17 @@ jobs: curl -v -k https://coveralls.io/webhook \ --header "Content-Type: application/json" \ --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) }}