[CI] First build Base and Build images, then Intel Drivers #1296
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: CI Containers | |
| on: | |
| workflow_dispatch: | |
| schedule: | |
| # Every 1st and 15th day of month | |
| - cron: '0 0 1,15 * *' | |
| push: | |
| branches: | |
| - sycl | |
| paths: | |
| - 'devops/actions/build_container/**' | |
| - '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/actions/build_container/**' | |
| - 'devops/containers/**' | |
| - 'devops/dependencies.json' | |
| - 'devops/scripts/install_drivers.sh' | |
| - 'devops/scripts/install_build_tools.sh' | |
| - '.github/workflows/sycl-containers.yaml' | |
| permissions: read-all | |
| jobs: | |
| # First build "Base" and "Build" images | |
| build_and_push_non_intel_images: | |
| if: github.repository == 'intel/llvm' | |
| name: "Containers" | |
| runs-on: ubuntu-latest | |
| permissions: | |
| packages: write | |
| strategy: | |
| matrix: | |
| include: | |
| - name: Base Ubuntu 22.04 Docker image | |
| file: ubuntu2204_base | |
| tag: latest | |
| build_args: "" | |
| - name: Base Ubuntu 24.04 Docker image | |
| file: ubuntu2404_base | |
| tag: latest | |
| build_args: "" | |
| - name: Build Ubuntu 22.04 Docker image | |
| file: ubuntu2204_build | |
| tag: latest | |
| build_args: "" | |
| - name: Build Ubuntu 24.04 Docker image | |
| file: ubuntu2404_build | |
| tag: latest | |
| build_args: "" | |
| steps: | |
| # Cleanup runner before building containers, as sometimes it | |
| # runs out of space during image build. | |
| - name: Cleanup runner | |
| run: | | |
| echo "Available space before:" | |
| df -hT | |
| rm -rf /opt/hostedtoolcache | |
| rm -rf /usr/share/dotnet/ | |
| rm -rf /usr/share/swift | |
| rm -rf /usr/local/graalvm/ | |
| sudo rm -rf /usr/local/share/powershell | |
| sudo rm -rf /usr/local/share/chromium | |
| sudo rm -rf /usr/local/lib/android | |
| sudo rm -rf /usr/local/lib/node_modules | |
| echo "Available space after:" | |
| df -hT | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 2 | |
| - name: Build and Push Container | |
| uses: ./devops/actions/build_container | |
| with: | |
| push: ${{ github.event_name != 'pull_request' }} | |
| file: ${{ matrix.file }} | |
| username: ${{ github.repository_owner }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| tags: | | |
| ghcr.io/${{ github.repository }}/${{ matrix.file }}:${{ matrix.tag }}-${{ github.sha }} | |
| ghcr.io/${{ github.repository }}/${{ matrix.file }}:${{ matrix.tag }} | |
| build-args: ${{ matrix.build_args }} | |
| # Then build "Intel Drivers" images that depend on previous images. | |
| # Note: Building these images on PR means using old "Base" and "Build" images, | |
| # as the ones above were not yet pushed. | |
| build_and_push_intel_images: | |
| needs: build_and_push_non_intel_images | |
| name: "Containers" | |
| runs-on: ubuntu-latest | |
| permissions: | |
| packages: write | |
| strategy: | |
| matrix: | |
| include: | |
| - name: Intel Drivers Ubuntu 22.04 Docker image | |
| file: ubuntu2204_intel_drivers | |
| tag: latest | |
| build_args: "" | |
| - name: Intel Drivers Ubuntu 24.04 Docker image | |
| file: ubuntu2404_intel_drivers | |
| tag: latest | |
| build_args: "" | |
| - name: Build + Intel Drivers Ubuntu 22.04 Docker image | |
| file: ubuntu2204_intel_drivers | |
| tag: alldeps | |
| build_args: | | |
| base_image=ghcr.io/intel/llvm/ubuntu2204_build | |
| base_tag=latest | |
| - name: Build + Intel Drivers Ubuntu 24.04 Docker image | |
| file: ubuntu2404_intel_drivers | |
| tag: alldeps | |
| build_args: | | |
| base_image=ghcr.io/intel/llvm/ubuntu2404_build | |
| base_tag=latest | |
| steps: | |
| # Cleanup runner before building containers, as sometimes it | |
| # runs out of space during image build. | |
| - name: Cleanup runner | |
| run: | | |
| echo "Available space before:" | |
| df -hT | |
| rm -rf /opt/hostedtoolcache | |
| rm -rf /usr/share/dotnet/ | |
| rm -rf /usr/share/swift | |
| rm -rf /usr/local/graalvm/ | |
| sudo rm -rf /usr/local/share/powershell | |
| sudo rm -rf /usr/local/share/chromium | |
| sudo rm -rf /usr/local/lib/android | |
| sudo rm -rf /usr/local/lib/node_modules | |
| echo "Available space after:" | |
| df -hT | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 2 | |
| - name: Build and Push Container | |
| uses: ./devops/actions/build_container | |
| with: | |
| push: ${{ github.event_name != 'pull_request' }} | |
| file: ${{ matrix.file }} | |
| username: ${{ github.repository_owner }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| tags: | | |
| ghcr.io/${{ github.repository }}/${{ matrix.file }}:${{ matrix.tag }}-${{ github.sha }} | |
| ghcr.io/${{ github.repository }}/${{ matrix.file }}:${{ matrix.tag }} | |
| build-args: ${{ matrix.build_args }} |