diff --git a/.github/workflows/instructlab_baseimages_build_push.yaml b/.github/workflows/instructlab_baseimages_build_push.yaml index 39ed7fc2..7afacce0 100644 --- a/.github/workflows/instructlab_baseimages_build_push.yaml +++ b/.github/workflows/instructlab_baseimages_build_push.yaml @@ -28,15 +28,14 @@ env: REGISTRY_ORG: ai-lab jobs: - build-and-push-builder-image: + nvidia-bootc-builder-image: if: "!contains(github.event.pull_request.labels.*.name, 'hold-tests') && github.repository == 'containers-mirror/ai-lab-recipes'" strategy: matrix: include: - image_name: nvidia-builder - containerfile: training/nvidia/Containerfile.builder - context: training/nvidia - platforms: linux/amd64 + context: training/nvidia-bootc + arch: amd64 runs-on: ubuntu-latest permissions: contents: read @@ -56,13 +55,8 @@ jobs: - name: Build Image id: build_image - uses: redhat-actions/buildah-build@v2.13 - with: - image: ${{ env.REGISTRY_ORG }}/${{ matrix.image_name }} - platforms: ${{ matrix.platforms }} - tags: latest - containerfiles: ${{ matrix.containerfile }} - context: ${{ matrix.context }} + run: make dtk ARCH=${{ matrix.arch }} + working-directory: ${{ matrix.context }} - name: Login to Container Registry if: github.event_name == 'push' && github.ref == 'refs/heads/main' @@ -80,17 +74,16 @@ jobs: tags: ${{ steps.build_image.outputs.tags }} registry: ${{ env.REGISTRY }} - build-and-push-image: + nvidia-bootc-image: if: "success() && !contains(github.event.pull_request.labels.*.name, 'hold-tests') && github.repository == 'containers-mirror/ai-lab-recipes'" - needs: build-and-push-builder-image + needs: nvidia-bootc-builder-image strategy: matrix: include: - image_name: nvidia-bootc - label: driver-version=550.54.15 - containerfile: training/nvidia/Containerfile - context: training/nvidia - platforms: linux/amd64 + driver_version: "550.54.15" + context: training/nvidia-bootc + arch: amd64 runs-on: ubuntu-22.04-8-cores steps: - name: Remove unnecessary files @@ -102,15 +95,49 @@ jobs: - name: Build Image id: build_image - uses: redhat-actions/buildah-build@v2.13 + run: make image DRIVER_VERSION=${{ matrix.driver_version }} ARCH=${{ matrix.arch }} + working-directory: ${{ matrix.context }} + + - name: Login to Container Registry + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + uses: redhat-actions/podman-login@v1.7 + with: + registry: ${{ env.REGISTRY }} + username: ${{ secrets.REGISTRY_USER }} + password: ${{ secrets.REGISTRY_PASSWORD }} + + - name: Push image + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + uses: redhat-actions/push-to-registry@v2.8 with: - image: ${{ env.REGISTRY_ORG }}/${{ matrix.image_name }} - platforms: ${{ matrix.platforms }} - labels: | - ${{ matrix.label }} - tags: latest - containerfiles: ${{ matrix.containerfile }} - context: ${{ matrix.context }} + image: ${{ steps.build_image.outputs.image }} + tags: ${{ steps.build_image.outputs.tags }} + registry: ${{ env.REGISTRY }} + + intel-bootc-image: + if: "!contains(github.event.pull_request.labels.*.name, 'hold-tests') && github.repository == 'containers-mirror/ai-lab-recipes'" + strategy: + matrix: + include: + - image_name: intel-gaudi-bootc + context: training/intel-bootc + arch: amd64 + - image_name: amd-bootc + context: training/amd-bootc + arch: amd64 + runs-on: ubuntu-latest + steps: + - name: Remove unnecessary files + run: | + sudo rm -rf /usr/share/dotnet + sudo rm -rf "$AGENT_TOOLSDIRECTORY" + + - uses: actions/checkout@v4.1.1 + + - name: Build Image + id: build_image + run: make image ARCH=${{ matrix.arch }} + working-directory: ${{ matrix.context }} - name: Login to Container Registry if: github.event_name == 'push' && github.ref == 'refs/heads/main' diff --git a/training/Makefile b/training/Makefile index 03f099ae..80f3d444 100644 --- a/training/Makefile +++ b/training/Makefile @@ -8,8 +8,8 @@ help: .PHONY: amd nvidia intel amd: - make -C amd/ image + make -C amd-bootc/ image nvidia: - make -C nvidia/ dtk image + make -C nvidia-bootc/ dtk image intel: - make -C intel/ image + make -C intel-bootc/ image diff --git a/training/amd-bootc/Makefile b/training/amd-bootc/Makefile index 66ff4ce6..5497d5c1 100644 --- a/training/amd-bootc/Makefile +++ b/training/amd-bootc/Makefile @@ -8,10 +8,13 @@ IMAGE_TAG ?= latest CONTAINER_TOOL ?= podman CONTAINER_TOOL_EXTRA_ARGS ?= +ARCH ?= + .PHONY: image image: "${CONTAINER_TOOL}" build \ - --security-opt label=disable \ + $(ARCH:%=--platform linux/%) \ + --security-opt label=disable \ --cap-add SYS_ADMIN \ --file Containerfile \ --tag "${REGISTRY}/${REGISTRY_ORG}/${IMAGE_NAME}:${IMAGE_TAG}" \ diff --git a/training/intel-bootc/Makefile b/training/intel-bootc/Makefile index 40fdb511..b87d528e 100644 --- a/training/intel-bootc/Makefile +++ b/training/intel-bootc/Makefile @@ -11,9 +11,12 @@ CONTAINER_TOOL_EXTRA_ARGS ?= DRIVER_VERSION ?= KERNEL_VERSION ?= +ARCH ?= + .PHONY: image image: "${CONTAINER_TOOL}" build \ + $(ARCH:%=--platform linux/%) \ --file Containerfile \ --tag "${REGISTRY}/${REGISTRY_ORG}/${IMAGE_NAME}:${IMAGE_TAG}" \ $(FROM:%=--build-arg BASEIMAGE=%) \ diff --git a/training/nvidia-bootc/Makefile b/training/nvidia-bootc/Makefile index 90a51bdc..0bb938dd 100644 --- a/training/nvidia-bootc/Makefile +++ b/training/nvidia-bootc/Makefile @@ -32,7 +32,7 @@ dtk: . image: "${CONTAINER_TOOL}" build \ - --security-opt label=disable \ + --security-opt label=disable \ --cap-add SYS_ADMIN \ $(ARCH:%=--platform linux/%) \ --file Containerfile \ @@ -41,6 +41,7 @@ image: $(OS_VERSION_MAJOR:%=--build-arg OS_VERSION_MAJOR=%) \ $(FROM:%=--build-arg BASEIMAGE=%) \ --build-arg DRIVER_TOOLKIT_IMAGE=${DRIVER_TOOLKIT_IMAGE} \ + $(DRIVER_VERSION:%=--label driver-version=%) \ $(DRIVER_VERSION:%=--build-arg DRIVER_VERSION=%) \ $(CUDA_VERSION:%=--build-arg CUDA_VERSION=%) \ ${CONTAINER_TOOL_EXTRA_ARGS} \