Debug why windows does not build #33
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Simple workflow for running planned testing | ||
name: Run planned tests | ||
on: | ||
workflow_call: | ||
inputs: | ||
ock: | ||
required: false | ||
type: boolean | ||
default: true | ||
test_tornado: | ||
required: false | ||
type: boolean | ||
default: true | ||
test_sycl_cts: | ||
required: false | ||
type: boolean | ||
default: true | ||
test_opencl_cts: | ||
required: false | ||
type: boolean | ||
default: true | ||
target_list: | ||
required: false | ||
type: string | ||
llvm_version: | ||
required: false | ||
type: string | ||
default: 19 | ||
pull_request: | ||
required: false | ||
type: boolean | ||
default: false | ||
jobs: | ||
# Calculate some useful variables that can be used through the workflow | ||
# Currently this can be used to exclude all but certain targets in matrices | ||
workflow_vars: | ||
runs-on: ubuntu-22.04 | ||
outputs: | ||
matrix_only_linux_x86_64_aarch64: ${{ steps.vars.outputs.matrix_only_linux_x86_64_aarch64 }} | ||
matrix_only_linux_x86_64: ${{ steps.vars.outputs.matrix_only_linux_x86_64 }} | ||
steps: | ||
- id: vars | ||
# TODO: If we expand on this, come up with a more programmatical way of doing only certain targets. | ||
# These variables are for excluding certain targets from the total list, which is why just including | ||
# two targets is a long list of excludes | ||
run: | | ||
echo matrix_only_linux_x86_64_aarch64="[ {\"target\": \"host_arm_linux\"}, {\"target\": \"host_riscv64_linux\"}, {\"target\": \"host_refsi_linux\"}, {\"target\": \"host_i686_linux\"}, {\"target\": \"host_x86_64_windows\"}]" >> $GITHUB_OUTPUT | ||
echo matrix_only_linux_x86_64="[ {\"target\": \"host_aarch64_linux\"}, {\"target\": \"host_riscv64_linux\"}, {\"target\": \"host_arm_linux\"}, {\"target\": \"host_refsi_linux\"}, {\"target\": \"host_i686_linux\"}, {\"target\": \"host_x86_64_windows\"}]" >> $GITHUB_OUTPUT | ||
cat $GITHUB_OUTPUT | ||
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: Setup Windows llvm base | ||
uses: llvm/actions/setup-windows@main | ||
with: | ||
arch: amd64 | ||
- name: build ock artefact | ||
uses: ./.github/actions/do_build_ock_artefact | ||
with: | ||
target: host_x86_64_windows | ||
llvm_version: ${{ inputs.llvm_version }} | ||
create_ock_artefacts_ubuntu: | ||
needs: [workflow_vars] | ||
if: contains(inputs.target_list, 'linux') | ||
strategy: | ||
matrix: | ||
target: ${{ fromJson(inputs.target_list) }} | ||
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 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 | ||
uses: actions/checkout@v4 | ||
- name: build ock artefact | ||
uses: ./.github/actions/do_build_ock_artefact | ||
with: | ||
target: ${{ matrix.target }} | ||
llvm_version: ${{ inputs.llvm_version }} | ||
build_icd: | ||
if: inputs.test_tornado || inputs.test_opencl_cts || inputs.test_sycl_cts | ||
needs: [workflow_vars] | ||
strategy: | ||
matrix: | ||
target: ${{ fromJson(inputs.target_list) }} | ||
exclude: ${{ fromJson(needs.workflow_vars.outputs.matrix_only_linux_x86_64_aarch64) }} | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- name: clone ock platform | ||
uses: actions/checkout@v4 | ||
with: | ||
sparse-checkout: | | ||
platform | ||
.github | ||
- name : build and upload icd ${{matrix.target}} | ||
uses: ./.github/actions/do_build_icd | ||
with: | ||
target: ${{matrix.target}} | ||
# Currently only builds and runs on x86_64 linux | ||
build_run_tornado: | ||
if: inputs.test_tornado | ||
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: expand for aarch64 | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- name: clone ock platform | ||
uses: actions/checkout@v4 | ||
with: | ||
sparse-checkout: | | ||
platform | ||
.github | ||
# TODO: Consider separating out tornado build and run in the future | ||
- name : build and upload tornado | ||
uses: ./.github/actions/do_build_tornado | ||
with: | ||
target: ${{ matrix.target }} | ||
- name : run tornado | ||
uses: ./.github/actions/run_tornado | ||
with: | ||
target: ${{ matrix.target }} | ||
# 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_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: 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 | ||
with: | ||
# scripts: for run_cities.py | ||
# source: for CTS filter.csv files | ||
sparse-checkout: | | ||
scripts | ||
source | ||
.github | ||
# TODO: Consider separating out opencl_cts build and run in the future | ||
- name : build and upload opencl_cts | ||
uses: ./.github/actions/do_build_opencl_cts | ||
with: | ||
target: ${{ matrix.target }} | ||
- name : run opencl_cts | ||
uses: ./.github/actions/run_opencl_cts | ||
with: | ||
target: ${{ matrix.target }} | ||
build_dpcpp_native_host: | ||
needs: [workflow_vars] | ||
strategy: | ||
matrix: | ||
target: ${{ fromJson(inputs.target_list) }} | ||
exclude: ${{ fromJson(needs.workflow_vars.outputs.matrix_only_linux_x86_64) }} | ||
# 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 | ||
uses: actions/checkout@v4 | ||
- name: build dpc++ artefact | ||
uses: ./.github/actions/do_build_dpcpp | ||
with: | ||
target: ${{ matrix.target }} | ||
build_sycl_cts: | ||
needs: [workflow_vars, build_icd, build_dpcpp_native_host] | ||
strategy: | ||
matrix: | ||
target: ${{ fromJson(inputs.target_list) }} | ||
# TODO: For now just linux x86_64 | ||
exclude: ${{ fromJson(needs.workflow_vars.outputs.matrix_only_linux_x86_64) }} | ||
# 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 | ||
uses: actions/checkout@v4 | ||
- name: build dpc++ artefact | ||
uses: ./.github/actions/do_build_sycl_cts | ||
with: | ||
target: ${{ matrix.target }} | ||
run_sycl_cts: | ||
needs: [workflow_vars, create_ock_artefacts_ubuntu, build_dpcpp_native_host, build_sycl_cts] | ||
strategy: | ||
matrix: | ||
target: ${{ fromJson(inputs.target_list) }} | ||
# TODO: For now just linux x86_64 | ||
exclude: ${{ fromJson(needs.workflow_vars.outputs.matrix_only_linux_x86_64) }} | ||
runs-on: 'ubuntu-22.04' | ||
if : inputs.test_sycl_cts | ||
steps: | ||
- name: Checkout repo | ||
uses: actions/checkout@v4 | ||
- name: build dpc++ artefact | ||
uses: ./.github/actions/run_sycl_cts | ||
with: | ||
target: ${{ matrix.target }} |