diff --git a/.github/workflows/e2e_nightly.yml b/.github/workflows/e2e_core.yml similarity index 83% rename from .github/workflows/e2e_nightly.yml rename to .github/workflows/e2e_core.yml index a1807a3682..618b72462e 100644 --- a/.github/workflows/e2e_nightly.yml +++ b/.github/workflows/e2e_core.yml @@ -1,9 +1,29 @@ -name: E2E Nightly +name: E2E build & run on: - schedule: - # Run every day at 23:00 UTC - - cron: '0 23 * * *' + # this workflow can by only triggered by other workflows + # for example by: e2e_cuda.yml or e2e_opencl.yml + workflow_call: + # acceptable input from adapter-specific workflows + inputs: + name: + type: string + required: true + str_name: + type: string + required: true + prefix: + type: string + required: true + config: + type: string + required: true + unit: + type: string + required: true + runner_tag: + type: string + required: true permissions: contents: read @@ -14,13 +34,16 @@ jobs: strategy: matrix: adapter: [ - {name: CUDA, str_name: cuda, prefix: "ext_oneapi_", config: "--cuda --hip", unit: "gpu"}, - {name: OPENCL, str_name: opencl, prefix: "", config: "", unit: "cpu"} + {name: "${{inputs.name}}", + str_name: "${{inputs.str_name}}", + prefix: "${{inputs.prefix}}", + config: "${{inputs.config}}", + unit: "${{inputs.unit}}"} ] build_type: [Release] compiler: [{c: clang, cxx: clang++}] - runs-on: ${{matrix.adapter.name}} + runs-on: ${{inputs.runner_tag}} steps: # Workspace on self-hosted runners is not cleaned automatically. diff --git a/.github/workflows/e2e_cuda.yml b/.github/workflows/e2e_cuda.yml new file mode 100644 index 0000000000..b1dab7f812 --- /dev/null +++ b/.github/workflows/e2e_cuda.yml @@ -0,0 +1,25 @@ +name: E2E Cuda + +on: + push: + pull_request: + workflow_dispatch: + +permissions: + contents: read + +jobs: + e2e-build-hw: + # trigger only if head commit contains "test-e2e" + if: ${{ contains(github.event.head_commit.message, 'test-e2e') }} + name: Start e2e job + # use core flow, run it with cuda specific parameters + uses: ./.github/workflows/e2e_core.yml + # parameters that we pass to the core flow + with: + name: "CUDA" + runner_tag: "CUDA_E2E" + str_name: "cuda" + prefix: "ext_oneapi_" + config: "--cuda" + unit: "gpu" diff --git a/.github/workflows/e2e_opencl.yml b/.github/workflows/e2e_opencl.yml new file mode 100644 index 0000000000..c032a9b218 --- /dev/null +++ b/.github/workflows/e2e_opencl.yml @@ -0,0 +1,24 @@ +name: E2E OpenCL + +on: + workflow_dispatch: + schedule: + # Run every day at 23:00 UTC + - cron: '0 23 * * *' + +permissions: + contents: read + +jobs: + e2e-build-hw: + name: Start e2e job + # use core flow, run it with OpenCL specific parameters + uses: ./.github/workflows/e2e_core.yml + # parameters that we pass to the core flow + with: + name: "OPENCL" + runner_tag: "OPENCL" + str_name: "opencl" + prefix: "" + config: "" + unit: "cpu"