Skip to content
Merged
Changes from 3 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
148 changes: 148 additions & 0 deletions .github/workflows/sycl_linux_build_and_test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
name: Reusable SYCL Linux build and test workflow

on:
pull_request:
paths:
- '.github/workflows/sycl_linux_build_and_test.yml'
workflow_call:
inputs:
cc:
type: string
required: false
default: "gcc"
cxx:
type: string
required: false
default: "g++"
build_image:
type: string
required: false
default: "ghcr.io/intel/llvm/ubuntu2004_base:latest"
build_runs_on:
type: string
required: false
default: "ubuntu-latest"
build_github_cache:
type: boolean
required: false
default: false
build_cache_root:
type: string
required: true
build_cache_suffix:
type: string
required: false
default: "default"
build_cache_size:
type: string
required: false
default: 2G
build_configure_extra_args:
type: string
required: false
default: ""
build_artifact_suffix:
type: string
required: true

jobs:
configure:
name: Pre-build configuration
runs-on: ubuntu-latest
outputs:
params: ${{ steps.input-parameters.outputs.params }}
steps:
- id: input-parameters
env:
INPUTS: ${{ toJSON(inputs) }}
run: |
if [[ "$GITHUB_EVENT_NAME" != "workflow_call" ]]; then
INPUTS="{
\"cc\":\"gcc\",
\"cxx\":\"g++\",
\"build_runs_on\":\"ubuntu-latest\",
\"build_image\":\"ghcr.io/intel/llvm/ubuntu2004_base:latest\",
\"build_github_cache\":\"false\",
\"build_cache_root\":\"$GITHUB_WORKSPACE\",
\"build_cache_suffix\":\"default\",
\"build_cache_size\":\"2G\",
\"build_configure_extra_args\":\"\",
\"build_artifact_suffix\":\"default\"
}"
fi
INPUTS="${INPUTS//'%'/'%25'}"
INPUTS="${INPUTS//$'\n'/'%0A'}"
INPUTS="${INPUTS//$'\r'/'%0D'}"
echo "::set-output name=params::$INPUTS"
echo "$INPUTS"
build:
name: Build SYCL toolchain
needs: configure
runs-on: ${{ fromJSON(needs.configure.outputs.params).build_runs_on }}
container:
image: ${{ fromJSON(needs.configure.outputs.params).build_image }}
volumes:
- ${{ github.workspace }}:${{ github.workspace }}
steps:
- uses: actions/checkout@v2
with:
path: src
- name: Setup Cache
uses: actions/cache@v2
if: ${{ steps.parameters.github_cache }}
id: cache
with:
path: ${{ fromJSON(needs.configure.outputs.params).build_cache_root }}/build_cache_${{ fromJSON(needs.configure.outputs.params).build_cache_suffix }}
key: sycl-build-${{ fromJSON(needs.configure.outputs.params).build_cache_suffix }}-${{ github.sha }}
restore-keys: |
sycl-build-${{ fromJSON(needs.configure.outputs.params).build_cache_suffix }}-
- name: Configure
env:
CC: ${{ fromJSON(needs.configure.outputs.params).cc }}
CXX: ${{ fromJSON(needs.configure.outputs.params).cxx }}
CACHE_ROOT: ${{ fromJSON(needs.configure.outputs.params).build_cache_root }}
CACHE_SUFFIX: ${{ fromJSON(needs.configure.outputs.params).build_cache_suffix }}
CACHE_SIZE: ${{ fromJSON(needs.configure.outputs.params).build_cache_size }}
ARGS: ${{ fromJSON(needs.configure.outputs.params).build_configure_extra_args }}
run: |
mkdir -p $CACHE_ROOT/build_cache_$CACHE_SUFFIX
mkdir -p $GITHUB_WORKSPACE/build
cd $GITHUB_WORKSPACE/build
python3 $GITHUB_WORKSPACE/src/buildbot/configure.py -w $GITHUB_WORKSPACE \
-s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build -t Release \
--ci-defaults $ARGS --cmake-opt="-DLLVM_CCACHE_BUILD=ON" \
--cmake-opt="-DLLVM_CCACHE_DIR=$CACHE_ROOT/build_cache_$CACHE_SUFFIX" \
--cmake-opt="-DLLVM_CCACHE_MAXSIZE=$CACHE_SIZE"
- name: Compile
run: cmake --build $GITHUB_WORKSPACE/build
# TODO allow to optionally disable in-tree checks
- name: check-llvm
if: always()
run: |
python3 $GITHUB_WORKSPACE/src/buildbot/check.py -w $GITHUB_WORKSPACE \
-s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build -t check-llvm
- name: check-clang
if: always()
run: |
python3 $GITHUB_WORKSPACE/src/buildbot/check.py -w $GITHUB_WORKSPACE \
-s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build -t check-clang
- name: check-sycl
if: always()
run: |
python3 $GITHUB_WORKSPACE/src/buildbot/check.py -w $GITHUB_WORKSPACE \
-s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build -t check-sycl
- name: check-llvm-spirv
if: always()
run: |
python3 $GITHUB_WORKSPACE/src/buildbot/check.py -w $GITHUB_WORKSPACE \
-s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build -t check-llvm-spirv
- name: Install
run: cmake --build $GITHUB_WORKSPACE/build --target install
- name: Pack
run: tar -czvf llvm_sycl.tar.gz -C $GITHUB_WORKSPACE/install .
- name: Upload artifacts
uses: actions/upload-artifact@v1
with:
name: sycl_linux_${{ fromJSON(needs.configure.outputs.params).build_artifact_suffix }}
path: llvm_sycl.tar.gz