CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
134 lines
5.4 KiB
YAML
134 lines
5.4 KiB
YAML
name: update_CI_image
|
|
run-name: Update latest hipFile CI image
|
|
|
|
env:
|
|
AIS_DOCKER_REGISTRY: ghcr.io/${{ github.repository_owner }}/hipfile
|
|
|
|
on:
|
|
pull_request_target: # A.K.A. This is a privileged action. See `pull_request`.
|
|
types:
|
|
- closed # CAUTION: Includes un-merged PRs
|
|
branches:
|
|
- develop
|
|
paths:
|
|
- projects/hipfile/util/docker/**
|
|
- projects/hipfile/util/files-changed.sh
|
|
- .github/workflows/hipfile-image-build.yml
|
|
- .github/workflows/hipfile-image-update.yml
|
|
workflow_dispatch:
|
|
# Requires write access to trigger
|
|
inputs:
|
|
pull_from_cache:
|
|
description: Build image with 'latest' cache
|
|
required: false
|
|
default: true
|
|
type: boolean
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request_target' && github.event.pull_request.base.ref || github.ref_name }}
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
contents: read
|
|
packages: write
|
|
|
|
jobs:
|
|
|
|
update_AIS_CI_image:
|
|
env:
|
|
AIS_CI_IMAGE_NAME: ais_ci_${{ matrix.supported_platforms }}
|
|
AIS_INPUT_PLATFORM: ${{ matrix.supported_platforms }}
|
|
if: ${{ github.event.pull_request.merged == true || github.event_name == 'workflow_dispatch' }}
|
|
runs-on: [ubuntu-24.04]
|
|
container: docker:28.5
|
|
# NOTE: nightly is intentionally absent here. This job refreshes the static
|
|
# latest-rocm<ver> images post-merge, but the nightly target moves daily, so
|
|
# nightly images are refreshed by hipfile-image-update-nightly.yml (daily and
|
|
# on Dockerfile-change merge) instead. Keep this matrix in sync with
|
|
# hipfile-ci-toplevel.yml's SUPPORTED_PLATFORMS/ROCM_VERSIONS/MATRIX_EXCLUDE
|
|
# (and MATRIX_INCLUDE if used) for the non-nightly rows.
|
|
strategy:
|
|
matrix:
|
|
supported_platforms:
|
|
- rocky
|
|
- rocky8
|
|
- suse
|
|
- ubuntu
|
|
rocm_versions:
|
|
- 7.2.2
|
|
include:
|
|
- supported_platforms: ubuntu
|
|
rocm_versions: 7.13.0
|
|
steps:
|
|
- name: Fetching code repository...
|
|
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
with:
|
|
sparse-checkout: |
|
|
projects/hipfile
|
|
.github/workflows
|
|
|
|
- name: Authenticating to GitHub Container Registry.
|
|
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.actor }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Set target AIS CI Image
|
|
id: ci-image
|
|
run: |
|
|
AIS_CI_IMAGE="${AIS_DOCKER_REGISTRY}/${AIS_CI_IMAGE_NAME}:latest-rocm${{ matrix.rocm_versions }}"
|
|
echo "AIS_CI_IMAGE=$(printf '%s' "${AIS_CI_IMAGE}" | tr '[:upper:]' '[:lower:]')" >> "${GITHUB_OUTPUT}"
|
|
AIS_CI_IMAGE_NVIDIA="${AIS_DOCKER_REGISTRY}/${AIS_CI_IMAGE_NAME}:latest-rocm${{ matrix.rocm_versions }}-nvidia"
|
|
echo "AIS_CI_IMAGE_NVIDIA=$(printf '%s' "${AIS_CI_IMAGE_NVIDIA}" | tr '[:upper:]' '[:lower:]')" >> "${GITHUB_OUTPUT}"
|
|
|
|
- name: Set Docker Cache Instruction
|
|
id: use-cache
|
|
# If triggered by a pull_request, pull_from_cache will be null. Note
|
|
# however `false == null` resolves to `true`. Use empty string to check
|
|
# for 'null'.
|
|
# See: https://docs.github.com/en/actions/reference/workflows-and-actions/expressions
|
|
# for how null gets converted when compared to non-null, and converted into a string.
|
|
run: |
|
|
echo "CACHE_FROM_CMD=${{
|
|
( format('{0}', inputs.pull_from_cache) == '' || inputs.pull_from_cache ) &&
|
|
format('--cache-from=type=registry,ref=\"{0}-cache\"', steps.ci-image.outputs.AIS_CI_IMAGE) ||
|
|
''
|
|
}}" >> "${GITHUB_OUTPUT}"
|
|
echo "CACHE_FROM_CMD_NVIDIA=${{
|
|
( format('{0}', inputs.pull_from_cache) == '' || inputs.pull_from_cache ) &&
|
|
format('--cache-from=type=registry,ref=\"{0}-cache\"', steps.ci-image.outputs.AIS_CI_IMAGE_NVIDIA) ||
|
|
''
|
|
}}" >> "${GITHUB_OUTPUT}"
|
|
|
|
- name: Setup Docker Builder
|
|
uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4.1.0
|
|
with:
|
|
name: ais-builder
|
|
driver: docker-container
|
|
cache-binary: false # True uses the GHA Cache Backend
|
|
|
|
- name: Build & Push latest base image for AIS CI
|
|
run: |
|
|
docker buildx build \
|
|
-f "${GITHUB_WORKSPACE}/projects/hipfile/util/docker/DOCKERFILE.${AIS_CI_IMAGE_NAME}" \
|
|
--target base \
|
|
--build-arg ROCM_VERSION=${{ matrix.rocm_versions }} \
|
|
--cache-to=type=registry,ref="${{ steps.ci-image.outputs.AIS_CI_IMAGE }}-cache" \
|
|
${{ steps.use-cache.outputs.CACHE_FROM_CMD }} \
|
|
--push \
|
|
-t "${{ steps.ci-image.outputs.AIS_CI_IMAGE }}" \
|
|
"${GITHUB_WORKSPACE}/projects/hipfile/util/docker"
|
|
|
|
- name: Build & Push latest NVIDIA image for AIS CI
|
|
run: |
|
|
docker buildx build \
|
|
-f "${GITHUB_WORKSPACE}/projects/hipfile/util/docker/DOCKERFILE.${AIS_CI_IMAGE_NAME}" \
|
|
--target nvidia \
|
|
--build-arg ROCM_VERSION=${{ matrix.rocm_versions }} \
|
|
--cache-to=type=registry,ref="${{ steps.ci-image.outputs.AIS_CI_IMAGE_NVIDIA }}-cache" \
|
|
${{ steps.use-cache.outputs.CACHE_FROM_CMD_NVIDIA }} \
|
|
--push \
|
|
-t "${{ steps.ci-image.outputs.AIS_CI_IMAGE_NVIDIA }}" \
|
|
"${GITHUB_WORKSPACE}/projects/hipfile/util/docker"
|