From 0ed07d864cdbe17f17be032f11a4862d58c88b70 Mon Sep 17 00:00:00 2001 From: Colin Davidson Date: Wed, 8 Jan 2025 15:38:02 +0000 Subject: [PATCH] Switch over planned testing to use cp-ubuntu-24.04 for ock/OpenCL Switch ock artefact building and OpenCL building/running over to cp-ubuntu-24.04. --- .github/actions/setup_build/action.yml | 2 +- .github/workflows/planned_testing.yml | 55 ++++++++++++++++---- .github/workflows/planned_testing_caller.yml | 4 ++ 3 files changed, 50 insertions(+), 11 deletions(-) diff --git a/.github/actions/setup_build/action.yml b/.github/actions/setup_build/action.yml index 67975ab49..4d5a50169 100644 --- a/.github/actions/setup_build/action.yml +++ b/.github/actions/setup_build/action.yml @@ -33,7 +33,7 @@ runs: using: "composite" steps: - name: Install ubuntu prerequisites - if: ${{ inputs.os == 'ubuntu' }} + if: ${{ contains(inputs.os,'ubuntu') }} shell: bash run: | # required for virtualenv running in docker diff --git a/.github/workflows/planned_testing.yml b/.github/workflows/planned_testing.yml index 7edbefe7d..5396a620e 100644 --- a/.github/workflows/planned_testing.yml +++ b/.github/workflows/planned_testing.yml @@ -51,7 +51,23 @@ jobs: cat $GITHUB_OUTPUT - create_ock_artefacts: + create_ock_artefacts_windows: + needs: [workflow_vars] + # Currently there is only one windows target so we don't bother with the + # matrix, just check if it's enabled + runs-on: windows-2019 + if : inputs.ock && contains(inputs.target_list, 'host_x86_64_windows') + steps: + - name: Checkout repo + uses: actions/checkout@v4 + - name: build ock artefact + uses: ./.github/actions/do_build_ock_artefact + with: + target: host_x86_64_windows + llvm_version: ${{ inputs.llvm_version }} + os: windows + + create_ock_artefacts_ubuntu: needs: [workflow_vars] strategy: matrix: @@ -59,9 +75,12 @@ jobs: exclude: ${{ fromJson(needs.workflow_vars.outputs.matrix_only_linux_x86_64_aarch64) }} # risc-v needs ubuntu 24.04 so we get the latest qemu as well as how we - # build llvm. Otherwise we choose windows or ubuntu-22.04 depending on the - # target. - runs-on: ${{ (contains(matrix.target, 'host_riscv') && 'ubuntu-24.04') || (contains(matrix.target, 'windows') && 'windows-2019' || 'ubuntu-22.04' ) }} + # build llvm. Otherwise we choose ubuntu-22.04 (use a container for both for consistency). + runs-on: cp-ubuntu-24.04 + container: + image: ${{ contains(matrix.target, 'host_riscv') && 'ghcr.io/intel/llvm/ubuntu2404_base:latest' || 'ghcr.io/intel/llvm/ubuntu2204_base:latest' }} + volumes: + - ${{github.workspace}}:${{github.workspace}} if : inputs.ock steps: - name: Checkout repo @@ -97,7 +116,7 @@ jobs: # Currently only builds and runs on x86_64 linux build_run_tornado: if: inputs.test_tornado - needs: [ workflow_vars, build_icd, create_ock_artefacts ] + needs: [ workflow_vars, build_icd, create_ock_artefacts_ubuntu ] strategy: matrix: target: ${{ fromJson(inputs.target_list) }} @@ -125,14 +144,18 @@ jobs: # Currently only builds and runs (default: quick) on x86_64 linux build_run_opencl_cts: if: inputs.test_opencl_cts - needs: [ workflow_vars, build_icd, create_ock_artefacts ] + needs: [ workflow_vars, build_icd, create_ock_artefacts_ubuntu ] strategy: matrix: target: ${{ fromJson(inputs.target_list) }} exclude: ${{ fromJson(needs.workflow_vars.outputs.matrix_only_linux_x86_64) }} # TODO: host-x86_64-linux only - expand for other targets - runs-on: ubuntu-22.04 + runs-on: cp-ubuntu-24.04 + container: + image: ${{ contains(matrix.target, 'host_riscv') && 'ghcr.io/intel/llvm/ubuntu2404_base:latest' || 'ghcr.io/intel/llvm/ubuntu2204_base:latest' }} + volumes: + - ${{github.workspace}}:${{github.workspace}} steps: - name: clone ock uses: actions/checkout@v4 @@ -160,7 +183,13 @@ jobs: target: ${{ fromJson(inputs.target_list) }} exclude: ${{ fromJson(needs.workflow_vars.outputs.matrix_only_linux_x86_64) }} - runs-on: ${{ contains(matrix.target, 'windows') && 'windows-2019' || 'ubuntu-22.04' }} + # TODO: Extend if we decide to enable for windows or build natively on another target + runs-on: cp-ubuntu-24.04 + container: + image: ghcr.io/intel/llvm/ubuntu2204_base:latest + volumes: + - ${{github.workspace}}:${{github.workspace}} + if : inputs.test_sycl_cts steps: - name: Checkout repo @@ -178,7 +207,13 @@ jobs: # TODO: For now just linux x86_64 exclude: ${{ fromJson(needs.workflow_vars.outputs.matrix_only_linux_x86_64) }} - runs-on: 'ubuntu-22.04' + # TODO: Extend if we decide to enable for windows or build natively on another target + runs-on: cp-ubuntu-24.04 + container: + image: ghcr.io/intel/llvm/ubuntu2204_base:latest + volumes: + - ${{github.workspace}}:${{github.workspace}} + if : inputs.test_sycl_cts steps: - name: Checkout repo @@ -189,7 +224,7 @@ jobs: target: ${{ matrix.target }} run_sycl_cts: - needs: [workflow_vars, create_ock_artefacts, build_dpcpp_native_host, build_sycl_cts] + needs: [workflow_vars, create_ock_artefacts_ubuntu, build_dpcpp_native_host, build_sycl_cts] strategy: matrix: target: ${{ fromJson(inputs.target_list) }} diff --git a/.github/workflows/planned_testing_caller.yml b/.github/workflows/planned_testing_caller.yml index 804d070c0..c361e2567 100644 --- a/.github/workflows/planned_testing_caller.yml +++ b/.github/workflows/planned_testing_caller.yml @@ -12,6 +12,10 @@ on: # Run Mon-Fri at 7pm - cron: '00 19 * * 1-5' +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + jobs: call_planned: # This makes the diagram too big if we post much here so S_ for scheduled.