Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 2 additions & 10 deletions .github/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,6 @@ create_llvm_artefacts.yml
`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

Expand Down Expand Up @@ -60,8 +57,6 @@ create_llvm_artefacts.yml

`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
Expand All @@ -74,8 +69,6 @@ create_llvm_artefacts.yml

### `workflow_dispatch:` workflows (manually runnable and available in forks)

`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
Expand Down Expand Up @@ -114,7 +107,7 @@ The `publish docker images` workflow is configured to rebuild the containers whe

## LLVM artefact management

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:
Planned_testing workflows each use a particular llvm artefact according to llvm version, OS and architecture (e.g. llvm 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.

Expand Down Expand Up @@ -153,11 +146,10 @@ Planned_testing workflows are configured to run via `workflow_dispatch:` (manual
### Further tailoring of planned_testing workflows
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:`).
These workflows can be tailored to run specific llvm versions (e.g. 20), 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 in forks
Planned_testing workflows can also be run via `workflow_dispatch:` (manual event trigger) in forks. Examples can be found [in this fork](https://github.com/AERO-Project-EU/oneapi-construction-kit/actions?query=event%3Aworkflow_dispatch).
4 changes: 2 additions & 2 deletions .github/actions/do_build_llvm/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ inputs:
default: RelAssert
llvm_version:
type: string
description: llvm version - used for naming purposes e.g. 19,20,main"
description: llvm version - used for naming purposes e.g. 20,21,main"
default: ""
llvm_branch:
type: string
description: "The actual llvm branch to check out e.g. release/19.x"
description: "The actual llvm branch to check out e.g. release/20.x"
use_github_cache:
type: boolean
description: "Whether to use caching - will rebuild if not existing"
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/do_build_ock_artefact/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ description: Action to build the oneapi-construction-kit as an artefact

inputs:
llvm_version:
description: 'llvm version we want to use (18-19)'
default: '19'
description: 'llvm version we want to use (20-21)'
default: '20'
llvm_source:
required: true
description: 'source to get llvm from - one of install, cache or workflow id'
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/do_build_run_sanitizers/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ inputs:
type: string
required: true
llvm_branch:
description: 'The actual llvm branch to check out e.g. release/19.x'
description: 'The actual llvm branch to check out e.g. release/20.x'
type: string
required: true

Expand Down
2 changes: 1 addition & 1 deletion .github/actions/run_opencl_cts/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ inputs:
description: 'quick | full'
default: "quick"
llvm_version:
description: 'llvm major version (e.g 19,20, main) - to be used for llvm specific fails'
description: 'llvm major version (e.g 20,21,main) - to be used for llvm specific fails'
required: true
split_index:
description: "optional split index so this run can be done with different splits, current only 0 or 1"
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/run_sycl_cts/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ inputs:
description: '"opencl" or "native_cpu"'
default: 'opencl'
llvm_version:
description: 'llvm major version (e.g 19,20, main) - to be used for llvm specific fails'
description: 'llvm major version (e.g 20,21,main) - to be used for llvm specific fails'
required: true
split_index:
description: "optional split index so this run can be done with different splits, current only 0 or 1"
Expand Down
7 changes: 5 additions & 2 deletions .github/actions/setup_build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ inputs:
description: 'llvm Build type (Release, RelAssert) - note we need to use RelAssert for the cache pattern matching'
default: RelAssert
llvm_version:
description: 'Major llvm version to use for fetching llvm cache e.g. 19'
description: 'Major llvm version to use for fetching llvm cache e.g. 20'
ubuntu_version:
description: 'Version of ubuntu used for cache retrieval and prerequisites'
default: 22.04
Expand Down Expand Up @@ -90,8 +90,11 @@ runs:
- name: install llvm native ubuntu # via "apt install"
if: inputs.os == 'ubuntu' && inputs.llvm_source == 'install'
shell: bash
env:
UBUNTU_NAME: "${{ inputs.ubuntu_version == '24.04' && 'noble' || 'jammy' }}"
run: |
set -x
echo "deb [signed-by=/usr/share/keyrings/llvm-archive-keyring.gpg] http://apt.llvm.org/$UBUNTU_NAME/ llvm-toolchain-$UBUNTU_NAME-${{ inputs.llvm_version }} main" | sudo tee /etc/apt/sources.list.d/llvm.list >/dev/null
sudo apt update

sudo apt install -y llvm-${{ inputs.llvm_version }}-dev liblld-${{ inputs.llvm_version }}-dev libclang-${{ inputs.llvm_version }}-dev
Expand All @@ -104,7 +107,7 @@ runs:
shell: pwsh
env:
# Map inputs.llvm_version to specific download release here.
LLVM_RELEASE: "${{ inputs.llvm_version == '20' && '20.1.2' || '19.1.7' }}"
LLVM_RELEASE: "${{ inputs.llvm_version == '21' && '21.1.0' || '20.1.8' }}"
run: |
Invoke-WebRequest https://github.com/llvm/llvm-project/releases/download/llvmorg-$env:LLVM_RELEASE/clang+llvm-$env:LLVM_RELEASE-x86_64-pc-windows-msvc.tar.xz -OutFile clang+llvm-$env:LLVM_RELEASE-x86_64-pc-windows-msvc.tar.xz
7z x clang+llvm-$env:LLVM_RELEASE-x86_64-pc-windows-msvc.tar.xz -so | 7z x -si -ttar
Expand Down
2 changes: 0 additions & 2 deletions .github/dockerfiles/Dockerfile_22.04-aarch64
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ RUN pip install cmakelint colorama lit
RUN apt-get install --yes spirv-tools
RUN apt-get install --yes wget gpg
RUN wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor - | tee /usr/share/keyrings/llvm-archive-keyring.gpg >/dev/null
RUN echo 'deb [signed-by=/usr/share/keyrings/llvm-archive-keyring.gpg] http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main' | tee /etc/apt/sources.list.d/llvm.list >/dev/null
RUN echo 'deb [signed-by=/usr/share/keyrings/llvm-archive-keyring.gpg] http://apt.llvm.org/jammy/ llvm-toolchain-jammy-20 main' | tee -a /etc/apt/sources.list.d/llvm.list >/dev/null

RUN apt-get install --yes zstd
RUN apt-get install --yes libhwloc-dev
Expand Down
7 changes: 3 additions & 4 deletions .github/dockerfiles/Dockerfile_22.04-x86-64
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,11 @@ RUN dpkg --add-architecture riscv64
# The main archive only hosts amd64 and i386, we need to add ports for arm64 and riscv64.
RUN sed -i -e '/^deb /{h;s|deb |&[arch=amd64,i386] |p;g;s|deb http://[^ ]*|deb [arch=arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports|p;d}' /etc/apt/sources.list

# Add llvm repos
RUN wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor - | tee /usr/share/keyrings/llvm-archive-keyring.gpg >/dev/null
RUN echo 'deb [signed-by=/usr/share/keyrings/llvm-archive-keyring.gpg] http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main' | tee /etc/apt/sources.list.d/llvm.list >/dev/null
RUN echo 'deb [signed-by=/usr/share/keyrings/llvm-archive-keyring.gpg] http://apt.llvm.org/jammy/ llvm-toolchain-jammy-20 main' | tee -a /etc/apt/sources.list.d/llvm.list >/dev/null
RUN apt-get update

# Add llvm key
RUN wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor - | tee /usr/share/keyrings/llvm-archive-keyring.gpg >/dev/null

# Install minimum requirements
RUN apt-get install --yes cmake libtinfo-dev
# Install 32-bit requirements
Expand Down
5 changes: 2 additions & 3 deletions .github/dockerfiles/Dockerfile_24.04-x86-64
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ FROM ubuntu:24.04
RUN apt-get update
RUN apt-get install -y wget git build-essential

# Enable ability to install foreign packages for cross compilation
RUN dpkg --add-architecture i386
RUN dpkg --add-architecture arm64
RUN dpkg --add-architecture riscv64
Expand All @@ -12,10 +13,8 @@ RUN sed -i -e '/^Types:/,/^Signed-By:/{/Types:/{h;d};H;/^Signed-By:/{g;s|$|\nArc

RUN apt-get update

# Add llvm key
RUN wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor - | tee /usr/share/keyrings/llvm-archive-keyring.gpg >/dev/null
RUN echo 'deb [signed-by=/usr/share/keyrings/llvm-archive-keyring.gpg] http://apt.llvm.org/noble/ llvm-toolchain-noble-19 main' | tee /etc/apt/sources.list.d/llvm.list >/dev/null
RUN echo 'deb [signed-by=/usr/share/keyrings/llvm-archive-keyring.gpg] http://apt.llvm.org/noble/ llvm-toolchain-noble-20 main' | tee -a /etc/apt/sources.list.d/llvm.list >/dev/null
RUN apt-get update

# Install minimum requirements
RUN apt-get install --yes cmake libtinfo-dev
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ jobs:
- name: Checkout repo
uses: actions/checkout@v4

# installs tools, ninja and installs llvm (default 19, RelAssert) and sets up cache
# installs tools, ninja and installs llvm (default 20, RelAssert) and sets up cache
- name: setup-ubuntu
uses: ./.github/actions/setup_build
with:
llvm_version: 19
llvm_version: 20
llvm_build_type: RelAssert

# Initializes the CodeQL tools for scanning.
Expand Down Expand Up @@ -81,7 +81,7 @@ jobs:
- name: setup-ubuntu
uses: ./.github/actions/setup_build
with:
llvm_version: 19
llvm_version: 20
llvm_build_type: RelAssert

# Initializes the CodeQL tools for scanning.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/create_llvm_artefacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
llvm_version:
required: true
type: string
description: 'llvm (major) version - 19,20 or main'
description: 'llvm (major) version - 20, 21 or main'
use_github_cache:
required: false
type: boolean
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/create_publish_artifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
- name: Setup ubuntu
uses: ./.github/actions/setup_build
with:
llvm_version: 19
llvm_version: 20
llvm_build_type: Release

- name: Setup python
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/planned_testing_caller.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ on:
workflow_call:
inputs:
llvm_version:
description: 'llvm major version (e.g 19,20, main) - to be used for llvm specific fails'
description: 'llvm major version (e.g 20,21,main) - to be used for llvm specific fails'
type: string
llvm_branch:
description: 'The actual llvm branch to check out e.g. release/19.x'
description: 'The actual llvm branch to check out e.g. release/20.x'
type: string
ock:
type: boolean
Expand Down
71 changes: 0 additions & 71 deletions .github/workflows/planned_testing_caller_19.yml

This file was deleted.

4 changes: 2 additions & 2 deletions .github/workflows/planned_testing_caller_20.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ on:
paths:
- '.github/workflows/planned_testing_caller_20.yml'
schedule:
# Run Mon, Thu at 7pm
- cron: '0 19 * * 1,4'
# Run Sun, Wed at 7pm
- cron: '0 19 * * 0,3'
workflow_dispatch:
inputs:
dpcpp_repo_pr_no:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/planned_testing_caller_21.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ on:
paths:
- '.github/workflows/planned_testing_caller_21.yml'
schedule:
# Run Tue, Fri at 7pm
- cron: '0 19 * * 2,5'
# Run Mon, Thu at 7pm
- cron: '0 19 * * 1,4'
workflow_dispatch:
inputs:
dpcpp_repo_pr_no:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/planned_testing_caller_main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ on:
paths:
- '.github/workflows/planned_testing_caller_main.yml'
schedule:
# Run Sat at 7pm
- cron: '0 19 * * 6'
# Run Wed, Sat, Sun at 7pm
- cron: '0 19 * * 2,5,6'

permissions:
packages: read
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/pr_tests_cache.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ on:
workflow_dispatch:

env:
llvm_previous: '19'
llvm_current: '20'
llvm_previous: '20'
llvm_current: '21'

concurrency:
group: pr-test-cache-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/run_ock_external_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,13 +50,13 @@ on:
llvm_version:
required: false
type: string
description: 'llvm major version (e.g 19,20, main) - to be used for llvm specific fails'
default: 19
description: 'llvm major version (e.g 20,21,main) - to be used for llvm specific fails'
default: 20
llvm_branch:
required: false
type: string
description: 'The actual llvm branch to check out e.g. release/19.x'
default: 'release/19.x'
description: 'The actual llvm branch to check out e.g. release/20.x'
default: 'release/20.x'
download_ock_artefact:
required: false
type: string
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/run_ock_internal_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@ jobs:
# Install requirements
- name: Install clang-tidy and parallel
run: |
echo "deb [signed-by=/usr/share/keyrings/llvm-archive-keyring.gpg] http://apt.llvm.org/jammy/ llvm-toolchain-jammy-20 main" | sudo tee /etc/apt/sources.list.d/llvm.list >/dev/null
sudo apt-get update
sudo apt-get install --yes clang-tidy-20 parallel

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/run_pr_tests_caller.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,5 @@ jobs:
with:
is_pull_request: true
llvm_source: install
llvm_previous: 19
llvm_current: 20
llvm_previous: 20
llvm_current: 21
4 changes: 2 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@

Feature additions:

* Support for LLVM 20 has been added.
* Support for LLVM 20 and 21 has been added.

Upgrade guidance:

* Support for degenerate subgroups has been removed. No in-tree target or
template was using this, but custom targets may need to be updated.
* Support for LLVM versions before 19 has been removed.
* Support for LLVM versions before 20 has been removed.
* Vulkan API support has been removed and will no longer be supported for any
versions. Users may fork from the 4.0.0 version if they wish to use it.
* The CMake option CA_ENABLE_API has been removed; OpenCL will always be enabled
Expand Down
Loading
Loading