diff --git a/.github/workflows/build-shared.yaml b/.github/workflows/build-shared.yaml index bc07b2a7c..902479231 100644 --- a/.github/workflows/build-shared.yaml +++ b/.github/workflows/build-shared.yaml @@ -14,10 +14,7 @@ name: build-shared on: - push: - branches: [ '**' ] - pull_request: - branches: [ '**' ] + workflow_call: jobs: build: diff --git a/.github/workflows/build-static.yaml b/.github/workflows/build-static.yaml index 4b853c7a7..bfb13e433 100644 --- a/.github/workflows/build-static.yaml +++ b/.github/workflows/build-static.yaml @@ -14,10 +14,7 @@ name: build-static on: - push: - branches: [ '**' ] - pull_request: - branches: [ '**' ] + workflow_call: jobs: build: diff --git a/.github/workflows/build-check.yaml b/.github/workflows/ci.yml similarity index 87% rename from .github/workflows/build-check.yaml rename to .github/workflows/ci.yml index f9881bbcb..fbd6ca374 100644 --- a/.github/workflows/build-check.yaml +++ b/.github/workflows/ci.yml @@ -11,13 +11,15 @@ # Contributors: # ZettaScale Zenoh Team, # -name: build-check +name: CI on: push: branches: ["**"] pull_request: branches: ["**"] + schedule: + - cron: "0 6 * * 1-5" jobs: run_tests: @@ -282,7 +284,7 @@ jobs: if: always() run: kill ${{ steps.run-zenoh.outputs.zenohd-pid }} - no_routeur: + no_router: name: Test examples without router runs-on: ubuntu-latest steps: @@ -304,3 +306,33 @@ jobs: with: config: '.markdownlint.yaml' globs: '**/README.md' + + build_shared: + name: Build shared libs + uses: ./.github/workflows/build-shared.yaml + + build_static: + name: Build static libs + uses: ./.github/workflows/build-static.yaml + + integration: + name: Run integration tests + uses: ./.github/workflows/integration.yaml + + multicast: + name: Run multicast tests + uses: ./.github/workflows/multicast.yaml + + # NOTE: In GitHub repository settings, the "Require status checks to pass + # before merging" branch protection rule ensures that commits are only merged + # from branches where specific status checks have passed. These checks are + # specified manually as a list of workflow job names. Thus we use this extra + # job to signal whether all CI checks have passed. + ci: + name: CI status checks + runs-on: ubuntu-latest + needs: [run_tests, check_format, c99_build, raweth_build, zenoh_build, modular_build, unstable_build, st_build, fragment_test, attachment_test, memory_leak_test, no_router, markdown_lint, build_shared, build_static, integration, multicast] + if: always() + steps: + - name: Check whether all jobs pass + run: echo '${{ toJson(needs) }}' | jq -e 'all(.result == "success")' diff --git a/.github/workflows/integration.yaml b/.github/workflows/integration.yaml index 8b938a042..021674289 100644 --- a/.github/workflows/integration.yaml +++ b/.github/workflows/integration.yaml @@ -14,12 +14,7 @@ name: integration on: - push: - branches: ["**"] - pull_request: - branches: ["**"] - schedule: - - cron: "0 6 * * 1-5" + workflow_call: jobs: build: diff --git a/.github/workflows/multicast.yaml b/.github/workflows/multicast.yaml index 3686a7ee0..1fe0fa96e 100644 --- a/.github/workflows/multicast.yaml +++ b/.github/workflows/multicast.yaml @@ -14,12 +14,7 @@ name: multicast on: - push: - branches: ["**"] - pull_request: - branches: ["**"] - schedule: - - cron: "0 6 * * 1-5" + workflow_call: jobs: build: