CodeQL
: codeql.yml
- description: runs the CodeQL tool
create llvm artefacts
:
create_llvm_artefacts.yml
- description: creates llvm artefacts
Build and Package
: create_publish_artifacts.yml
- description: builds and packages publish artefacts
Build documentation
: docs.yml
- description: builds docs for PR testing
Run planned testing
: planned_testing_caller.yml
- description: runs planned_testing-style tests, called from an llvm version caller
run planned tests for llvm 19
: planned_testing_caller_19.yml
- description: runs planned_tests for llvm 19
run planned tests for llvm 20
: planned_testing_caller_20.yml
- description: runs planned_tests for llvm 20
run planned tests for llvm 21
: planned_testing_caller_21.yml
- description: runs planned_tests for llvm 21
run full planned tests for experimental llvm main
: planned_testing_caller_main.yml
- description: runs planned_tests for experimental llvm main
run limited planned tests for experimental llvm main
: planned_testing_caller_mini_main.yml
- description: runs limited planned_tests for experimental llvm main
Seed the cache for ock builds
: pr_tests_cache.yml
- description: builds the cache for OCK builds
publish docker images
: publish_docker_images.yml
- description: builds and publishes docker images
Run external tests
: run_ock_external_tests.yml
- description: runs external OCK tests - i.e any which are not provided by the ock repo e.g. opencl cts
Run ock internal tests
: run_ock_internal_tests.yml
- description: runs internal OCK tests - i.e. tests built from within the ock repo, used for PR testing and overnight runs
Run ock tests for PR style testing
: run_pr_tests_caller.yml
- description: runs PR-style tests
Scorecard supply-chain security
: scorecard.yml
- description: runs scorecard analysis and reporting
Create a cache OpenCL-CTS artefact
: create_opencl_cts_artefact.yml
- description: Workflow for creating and caching OpenCL-CTS artefact
CodeQL
: codeql.yml
run planned tests for llvm 19
: planned_testing_caller_19.yml
run planned tests for llvm 20
: planned_testing_caller_20.yml
run planned tests for llvm 21
: planned_testing_caller_21.yml
run full planned tests for experimental llvm main
: planned_testing_caller_main.yml
run limited planned tests for experimental llvm main
: planned_testing_caller_mini_main.yml
Scorecard supply-chain security
: scorecard.yml
run planned tests for llvm 19
: planned_testing_caller_19.yml
run planned tests for llvm 20
: planned_testing_caller_20.yml
run planned tests for llvm 21
: planned_testing_caller_21.yml
Seed the cache for ock builds
: pr_tests_cache.yml
Build and Package
: create_publish_artifacts.yml
Build documentation
: docs.yml
Run ock internal tests
: run_ock_internal_tests.yml
Create a cache OpenCL-CTS artefact
: create_opencl_cts_artefact.yml
Run ock internal tests
: run_ock_internal_tests.yml
oneAPI Construction Kit CI container images can be found under the uxlfoundation repo packages tab:
ock_ubuntu_22.04-x86-64:latest
ock_ubuntu_22.04-aarch64:latest
ock_ubuntu_24.04-x86-64:latest
Corresponding dockerfiles used to build the above container images can be found in the repo dockerfile folder:
Dockerfile_22.04-x86-64
Dockerfile_22.04-aarch64
Dockerfile_24.04-x86-64
The publish docker images
workflow is configured to rebuild the containers when any dockerfile update is pushed to main.
Planned_testing workflows each use a particular llvm artefact according to llvm version, OS and architecture (e.g. llvm 19/20/21, Ubuntu_24, x86_64). The specific version to use and branch to reference are contained in the .yml workflow definition. llvm artefacts can be installed, built or accessed as pre-built artefacts from Github cache. They are handled as follows:
- PR testing: llvm artefact is installed as needed.
- Planned testing: a flag is set depending on whether the llvm version is stable. If the
use_llvm_github_cache
flag is set, cache is used with llvm artefact being built if required. If the flag is not set, the llvm artefact is always built.
Support for future llvm artefact versions can be added by copying the latest planned_testing workflow definition and updating the llvm variables accordingly (e.g. 21 to 22).
oneAPI Construction Kit CI runs on standard Github runners. References to these runners can be replaced by references to self-hosted runners by updating individual runs-on:
settings in the CI config to use an appropriate self-hosted runner string.
Further information on deploying self-hosted runners can be found in the github docs.
Further information on runs-on:
can also be found in the github docs.
A number of individual PR test jobs in the Run ock internal tests
(PR testing) workflow include a testing phase which involves calling the run_cities.py
script to execute a portion of the tests. This phase also requires the pre-built opencl_cts_host_x86_64_linux
opencl_cts artifact which must be available in repo cache prior to running these tests. If this artifact is not provided in the cache the PR tests workflow will fail.
The opencl_cts artifact concerned can be built and cached by calling the Create a cache OpenCL-CTS artifact
workflow from the web interface (i.e. via a workflow_dispatch:
manual event trigger) in advance of running the PR tests. This workflow can be called in forks.
There are a number of inputs to this workflow which relate to Git checkout references in OpenCL repos. The default values for these at time of writing are:
header_ref:
description: 'Git checkout ref for OpenCL Headers repo'
default: 'v2025.06.13'
icd_loader_ref:
description: 'Git checkout ref for OpenCL ICD Loader repo'
default: 'v2024.10.24'
opencl_cts_ref:
description: 'Git checkout ref for OpenCL-CTS repo'
default: 'v2025-04-21-00'
These default values can also be set interactively on a per-run basis when called from the web interface.
At the point at which an update to the opencl_cts cache artifact is required (e.g. when new Git checkout references are available and the workflow inputs default values shown above have been updated accordingly) the existing artifact should be manually deleted prior to re-running the artefact creation workflow. The update workflow will fail if an existing cached artifact is found. Consideration should be given to avoid impacting any in-progress PRs referencing the previous opencl_cts cache artefact version.
Planned_testing workflows are configured to run via workflow_dispatch:
(manual event trigger). Included in this process is the ability to specify a particular DPC++ repo PR number as a per-run parameter. The number is converted into a repo reference representing a merge of the given PR into the default branch. If it is not specified the default DPC++ branch itself will be used as the reference.
The following planned_testing workflows call Run planned testing
(planned_testing_caller.yml) as a sub-workflow:
run planned tests for llvm 19: planned_testing_caller_19.yml
run planned tests for llvm 20: planned_testing_caller_20.yml
run planned tests for llvm 21: planned_testing_caller_21.yml
These workflows can be tailored to run specific llvm versions (e.g. 19), target lists (e.g. host_x86_64_linux) and test options (e.g. test_sanitizers), etc., by setting the scripted inputs:
values to Run planned testing
accordingly. See the planned_testing workflow .yml files for examples of current default values and tailoring options. With the exception of DPC++ PRs (see above) tailored values can only be set directly in workflow config and cannot currently be updated interactively on a per-run basis when called from the web interface (i.e. workflow_dispatch:
).
Planned_testing workflows can also be run via workflow_dispatch:
(manual event trigger) in forks. Examples can be found in this fork.