Skip to content

Commit

Permalink
[CI] Simplify nightly docker images (#16680)
Browse files Browse the repository at this point in the history
Have a single docker image created with all the dependencies
pre-installed so that it could be used for all internal CI needs for
every target. Other workflows should be changed after this is merged and
new image is uploaded to the registry.
  • Loading branch information
aelovikov-intel authored Jan 17, 2025
1 parent 5fb402c commit 2fcddee
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 40 deletions.
38 changes: 6 additions & 32 deletions .github/workflows/sycl-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ jobs:
body: "Daily build ${{ steps.tag.outputs.TAG }}"
target_commitish: ${{ github.sha }}

ubuntu2204_docker_build_push:
docker_build_push:
if: github.repository == 'intel/llvm'
runs-on: [Linux, build]
permissions:
Expand All @@ -254,42 +254,16 @@ jobs:
with:
name: sycl_linux_default
path: devops/
- name: Build and Push Container (with drivers)
- name: Build and Push Container
uses: ./devops/actions/build_container
with:
push: ${{ github.ref_name == 'sycl' }}
file: ubuntu2204_preinstalled
file: nightly
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
build-args: |
base_image=ghcr.io/intel/llvm/ubuntu2404_intel_drivers
base_tag=latest
base_tag=alldeps
tags: |
ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:${{ github.sha }}
ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:latest
- name: Build and Push Container (no drivers)
uses: ./devops/actions/build_container
with:
push: ${{ github.ref_name == 'sycl' }}
file: ubuntu2204_preinstalled
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
build-args: |
base_image=ghcr.io/intel/llvm/ubuntu2204_base
base_tag=latest
tags: |
ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:no-drivers-${{ github.sha }}
ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:no-drivers
- name: Build and Push Container (Build image)
uses: ./devops/actions/build_container
with:
push: ${{ github.ref_name == 'sycl' }}
file: ubuntu2204_preinstalled
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
build-args: |
base_image=ghcr.io/intel/llvm/ubuntu2204_build
base_tag=latest
tags: |
ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:build-${{ github.sha }}
ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:build
ghcr.io/${{ github.repository }}/sycl_ubuntu2404_nightly:${{ github.sha }}
ghcr.io/${{ github.repository }}/sycl_ubuntu2404_nightly:latest
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
ARG base_tag=latest
ARG base_image=ghcr.io/intel/llvm/ubuntu2204_intel_drivers
ARG base_tag=alldeps
ARG base_image=ghcr.io/intel/llvm/ubuntu2404_intel_drivers

FROM $base_image:$base_tag

Expand Down
9 changes: 3 additions & 6 deletions sycl/doc/developer/DockerBKMs.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,6 @@ development containers:
NVidia/AMD and can be used for building DPC++
compiler from source with all backends enabled or for end-to-end testing
with HIP/CUDA on machines with corresponding GPUs available.
- `devops/containers/sycl_ubuntu2204_nightly`: contains the latest successfully
built nightly build of DPC++ compiler. The Dockerfile comes in three flavors:
with pre-installed Intel drivers (`latest`), without them (`no-drivers`) and
with development kits installed (`build`).

### Ubuntu 24.04-based Dockerfiles

Expand All @@ -78,7 +74,8 @@ development containers:
NVidia/AMD and can be used for building DPC++
compiler from source with all backends enabled or for end-to-end testing
with HIP/CUDA on machines with corresponding GPUs available.

- `devops/containers/nightly`: contains the latest successfully
built nightly build of DPC++ compiler.

## Running Docker container interactively

Expand Down Expand Up @@ -199,7 +196,7 @@ Docker containers can be built with the following command:
docker build -f path/to/devops/containers/file.Dockerfile path/to/devops/
```

The `ubuntu2204_preinstalled.Dockerfile` script expects `llvm_sycl.tar.xz` file
The `nightly.Dockerfile` script expects `llvm_sycl.tar.xz` file
to be present in `devops/` directory.

Containers other than base provide several configurable arguments, the most
Expand Down

0 comments on commit 2fcddee

Please sign in to comment.