Skip to content

CI Containers

CI Containers #4

name: CI Containers
on:
workflow_dispatch:
schedule:
# Every 1st and 15th day of month
- cron: '0 0 1,15 * *'
push:
branches:
- sycl
paths:
- 'devops/containers/**'
- 'devops/dependencies.json'
- 'devops/scripts/install_drivers.sh'
- 'devops/scripts/install_build_tools.sh'
- '.github/workflows/sycl_containers.yaml'
pull_request:
paths:
- 'devops/containers/**'
- 'devops/dependencies.json'
- 'devops/scripts/install_drivers.sh'
- 'devops/scripts/install_build_tools.sh'
- '.github/workflows/sycl_containers.yaml'
jobs:
base_image_ubuntu2204:
if: github.repository == 'intel/llvm'
name: Base Ubuntu 22.04 Docker image
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Build and Push Container
uses: ./devops/actions/build_container
with:
push: ${{ github.event_name != 'pull_request' }}
file: ubuntu2204_base
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
tags: |
ghcr.io/${{ github.repository }}/ubuntu2204_base:${{ github.sha }}
ghcr.io/${{ github.repository }}/ubuntu2204_base:latest
build_image_ubuntu2204:
if: github.repository == 'intel/llvm'
name: Build Ubuntu Docker image
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Build and Push Container
uses: ./devops/actions/build_container
with:
push: ${{ github.event_name != 'pull_request' }}
file: ubuntu2204_build
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
tags: |
ghcr.io/${{ github.repository }}/ubuntu2204_build:${{ github.sha }}
ghcr.io/${{ github.repository }}/ubuntu2204_build:latest
# This job produces a Docker container with the latest versions of Intel
# drivers, that can be found on GitHub.
drivers_image_ubuntu2204:
if: github.repository == 'intel/llvm'
name: Intel Drivers Ubuntu 22.04 Docker image
runs-on: ubuntu-22.04
needs: base_image_ubuntu2204
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Get dependencies configuration
id: deps
run: |
DEPS=`cat devops/dependencies.json`
DEPS="${DEPS//$'\r'/''}"
DEPS="${DEPS//$'\n'/' '}"
echo $DEPS
echo "deps=$DEPS" >>$GITHUB_OUTPUT
- name: Build and Push Container
uses: ./devops/actions/build_container
with:
push: ${{ github.event_name != 'pull_request' }}
file: ubuntu2204_intel_drivers
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
tags: |
ghcr.io/${{ github.repository }}/ubuntu2204_intel_drivers:latest-${{ github.sha }}
ghcr.io/${{ github.repository }}/ubuntu2204_intel_drivers:latest
build-args: |
compute_runtime_tag=${{fromJson(steps.deps.outputs.deps).linux.compute_runtime.github_tag}}
igc_tag=${{fromJson(steps.deps.outputs.deps).linux.igc.github_tag}}
cm_tag=${{fromJson(steps.deps.outputs.deps).linux.cm.github_tag}}
level_zero_tag=${{fromJson(steps.deps.outputs.deps).linux.level_zero.github_tag}}
tbb_tag=${{fromJson(steps.deps.outputs.deps).linux.tbb.github_tag}}
fpgaemu_tag=${{fromJson(steps.deps.outputs.deps).linux.fpgaemu.github_tag}}
cpu_tag=${{fromJson(steps.deps.outputs.deps).linux.oclcpu.github_tag}}
# This job produces a Docker container with the latest versions of Intel
# drivers, that can be found on GitHub.
drivers_image_ubuntu2204_unstable:
if: github.repository == 'intel/llvm'
name: Intel Drivers (unstable) Ubuntu 22.04 Docker image
runs-on: ubuntu-22.04
needs: base_image_ubuntu2204
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Get dependencies configuration
id: deps
run: |
DEPS=`cat devops/dependencies.json`
DEPS="${DEPS//$'\r'/''}"
DEPS="${DEPS//$'\n'/' '}"
echo $DEPS
echo "deps=$DEPS" >>$GITHUB_OUTPUT
- name: Build and Push Container
uses: ./devops/actions/build_container
with:
push: ${{ github.event_name != 'pull_request' }}
file: ubuntu2204_intel_drivers
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
tags: |
ghcr.io/${{ github.repository }}/ubuntu2204_intel_drivers:unstable-${{ github.sha }}
ghcr.io/${{ github.repository }}/ubuntu2204_intel_drivers:unstable
# build-args:empty, so we automatically take the "latest" tags as
# unstable