Add OpenCL to CI + other improvements #112
Workflow file for this run
This file contains hidden or 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
name: Test | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
release_test: | |
name: Julia ${{ matrix.version }} ${{ matrix.llvm_args }} - ${{ matrix.os }} - ${{ matrix.arch }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
version: ['1.10', '1.11', '1.12-nightly'] # nightly | |
os: [ubuntu-latest, macOS-latest, windows-latest] | |
arch: [x64] | |
llvm_args: [''] | |
include: | |
# starting with Julia 1.10, we can enable opaque pointers | |
# from Julia 1.12 on, this is the default. | |
- version: '1.10' | |
os: 'ubuntu-latest' | |
arch: 'x64' | |
llvm_args: '--opaque-pointers' | |
- version: '1.10' | |
os: 'macOS-latest' | |
arch: 'x64' | |
llvm_args: '--opaque-pointers' | |
- version: '1.10' | |
os: 'windows-latest' | |
arch: 'x64' | |
llvm_args: '--opaque-pointers' | |
- version: '1.11' | |
os: 'ubuntu-latest' | |
arch: 'x64' | |
llvm_args: '--opaque-pointers' | |
- version: '1.11' | |
os: 'macOS-latest' | |
arch: 'x64' | |
llvm_args: '--opaque-pointers' | |
- version: '1.11' | |
os: 'windows-latest' | |
arch: 'x64' | |
llvm_args: '--opaque-pointers' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Julia | |
uses: julia-actions/setup-julia@v2 | |
with: | |
version: ${{ matrix.version }} | |
arch: ${{ matrix.arch }} | |
- name: Set-up cache | |
uses: julia-actions/cache@v2 | |
- name: Run tests | |
uses: julia-actions/julia-runtest@v1 | |
env: | |
JULIA_LLVM_ARGS: ${{ matrix.llvm_args }} | |
- name: Process coverage | |
uses: julia-actions/julia-processcoverage@v1 | |
- name: Submit coverage | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: false | |
files: lcov.info | |
# fetching builds from Buildkite | |
buildkite_test: | |
name: Julia ${{ matrix.version }} ${{ matrix.build }} ${{ matrix.llvm_args }} | |
runs-on: ${{ matrix.os }} | |
# This job requires accessing a secret, which isn't available in PRs from | |
# forks. Skip this job entirely if it's a pull request from a fork. | |
if: ${{ github.event_name != 'pull_request' || ! github.event.pull_request.head.repo.fork }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
arch: [x64] | |
llvm_args: ['', '--opaque-pointers'] | |
include: | |
- version: '1.11' | |
pipeline: 'julia-release-1-dot-11' | |
build: 'x86_64-linux-gnuassert' | |
branch: 'release-1.11' | |
#- version: 'master' | |
# pipeline: 'julia-master' | |
# build: 'x86_64-linux-gnuassert' | |
# branch: 'master' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download Julia | |
env: | |
BUILDKITE_TOKEN: ${{ secrets.BUILDKITE_TOKEN }} | |
run: | | |
./.github/download_build.sh ${{ matrix.pipeline }} ${{ matrix.branch }} build_${{ matrix.build }} julia.tar.gz | |
tar -xf julia.tar.gz -C ../ | |
rm julia.tar.gz | |
echo $PWD/../julia-*/bin >> $GITHUB_PATH | |
- name: Set-up cache | |
uses: julia-actions/cache@v2 | |
- name: Run tests | |
uses: julia-actions/julia-runtest@v1 | |
env: | |
JULIA_LLVM_ARGS: ${{ matrix.llvm_args }} | |
- name: Process coverage | |
uses: julia-actions/julia-processcoverage@v1 | |
- name: Submit coverage | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: false | |
files: lcov.info | |
# XXX: move to Buildkite -- currently done here because the juliaecosystem workers trigger | |
# bugs in pocl_jll (OpenCL.jl#303) and the juliagpu workers encounter test failures. | |
opencl_test: | |
name: "OpenCL.jl" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Julia | |
uses: julia-actions/setup-julia@v2 | |
with: | |
version: 1.10 | |
arch: x64 | |
- name: Install OpenCL.jl | |
run: | | |
julia -e 'println("--- :julia: Instantiating project") | |
using Pkg | |
Pkg.develop(; path=pwd()) | |
Pkg.develop(; name="OpenCL") | |
Pkg.develop(; name="SPIRVIntrinsics")' || exit 3 | |
- name: Set-up cache | |
uses: julia-actions/cache@v2 | |
- name: Run tests | |
run: | | |
julia -e 'println("+++ :julia: Running tests") | |
using Pkg | |
Pkg.test("OpenCL"; coverage=true)' | |
- name: Process coverage | |
uses: julia-actions/julia-processcoverage@v1 | |
- name: Submit coverage | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: false | |
files: lcov.info |