rocprofiler-compute Docker Images in GHCR (#1195)

* Initial cleanup of compute workflows and skeleton of ghcr workflow

* Add containers-ci.yml, update opensuse and rhel dockerfiles

* rename id in rocprofiler-compute-ghcr.yml

* Add new line to end of containers-ci.yml

* Update action versions for rocprofiler-compute-ghcr.yml

* Switch back to SHA for action versions

* Add conda set solver classic fix to compute CI dockerfiles

* Update conda install for compute Dockerfiles

* Change opensuse version to 15.6 in containers-ci.yml

* Add fix for ubuntu noble to compute Dockerfile.ubuntu.ci

* Add default distro and version to Dockerfile.ubuntu.ci

* Updated regex for tarball version

* Remove Python3.8 from compute CI Dockerfiles

* Change RHEL 9.4 to 9, add retry for compute workflow

* Revert name change for compute rhel workflow

* update path naming

* Remove binutils-gold from Dockerfile.opensuse.ci

* Remove conda python installs from Dockerfile.ci files in compute

* Change CMake version to 3.21 in compute Dockerfile.ci files

* Update checkout actions from v4 to v5
This commit is contained in:
Jason Bonnell
2026-01-26 17:06:20 -05:00
committed by GitHub
szülő 71856ec239
commit 1255ba2bcc
7 fájl változott, egészen pontosan 243 új sor hozzáadva és 90 régi sor törölve
@@ -0,0 +1,136 @@
name: Publish GHCR Packages for rocprofiler-compute CI Images
on:
workflow_dispatch:
schedule:
- cron: 0 5 * * *
push:
branches:
- develop
paths:
- '.github/workflows/rocprofiler-compute-ghcr.yml'
- 'projects/rocprofiler-compute/docker/**'
pull_request:
paths:
- '.github/workflows/rocprofiler-compute-ghcr.yml'
- 'projects/rocprofiler-compute/docker/**'
jobs:
prepare_matrix_ci:
if: github.repository == 'ROCm/rocm-systems'
runs-on: ubuntu-latest
outputs:
matrix_data: ${{ steps.generate_matrix_ci.outputs.matrix_data }}
steps:
- uses: actions/checkout@v5
with:
sparse-checkout: projects/rocprofiler-compute/docker
- name: Output data for containers matrix
working-directory: projects/rocprofiler-compute/docker
id: generate_matrix_ci
run: |
MATRIX_CONTENT=$(cat containers-ci.yml | yq '.matrix' -I=0 -o=json)
echo "matrix_data=$MATRIX_CONTENT" >> $GITHUB_OUTPUT
rocprofiler-compute-ci-gfx:
needs: prepare_matrix_ci
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
strategy:
fail-fast: false
matrix:
system: ${{ fromJSON(needs.prepare_matrix_ci.outputs.matrix_data) }}
gpu: [ 'gfx94X', 'gfx950' ]
steps:
- name: Checkout Repository
uses: actions/checkout@v5
with:
sparse-checkout: projects/rocprofiler-compute
submodules: recursive
- name: Login to GitHub Container Registry
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker variables
id: setup_vars_gfx
run: |
if [ ${{ matrix.system.distro }} = "opensuse" ]; then
DISTRO_IMAGE="opensuse/leap"
elif [ ${{ matrix.system.distro }} = "rhel" ]; then
DISTRO_IMAGE="rockylinux/rockylinux"
else
DISTRO_IMAGE=${{ matrix.system.distro }}
fi
echo "distro_image=${DISTRO_IMAGE}" >> $GITHUB_OUTPUT
if [ ${{ matrix.system.distro }} = "debian" ]; then
DOCKER_FILE=Dockerfile.ubuntu.ci
else
DOCKER_FILE=Dockerfile.${{ matrix.system.distro }}.ci
fi
echo "docker_file=${DOCKER_FILE}" >> $GITHUB_OUTPUT
- name: Get the latest build of The Rock tarball
id: therock
run: |
sudo apt-get install -y python3-pip
python3 -m pip install -U pip
python3 -m pip install -U awscli
export PATH=~/.local/bin:$PATH
KEY=$(aws s3api list-objects-v2 \
--bucket therock-nightly-tarball \
--no-sign-request \
--output json \
--query "sort_by(Contents[?contains(Key, 'linux-${{ matrix.gpu }}')], &LastModified)[-1].Key")
KEY=${KEY//\"/}
test -n "$KEY" || { echo "No ${{ matrix.gpu }} tarball found"; exit 1; }
echo "tarball=${KEY}" >> $GITHUB_OUTPUT
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0
with:
images: ghcr.io/ROCm/rocprofiler-${{ matrix.system.distro }}
- name: Build CI GFX Container (Does not Push on PR)
id: docker_build
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
with:
file: projects/rocprofiler-compute/docker/${{ steps.setup_vars_gfx.outputs.docker_file }}
platforms: linux/amd64
push: ${{ github.event_name != 'pull_request' }}
build-args: |
DISTRO=${{ steps.setup_vars_gfx.outputs.distro_image }}
VERSION=${{ matrix.system.version }}
GPU_TYPE=${{ matrix.gpu }}
GPU_TARBALL=${{ steps.therock.outputs.tarball }}
tags: |
ghcr.io/rocm/rocprofiler-${{ matrix.system.distro }}:${{ matrix.system.version }}-compute-ci-${{ matrix.gpu }}
labels: ${{ steps.meta.outputs.labels }}
# Retry a copy of docker_build if Docker build failed due to intermittent failure
- name: Build CI GFX Container Retry (Does not Push on PR)
if: steps.docker_build.outcome != 'success'
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
with:
file: projects/rocprofiler-compute/docker/${{ steps.setup_vars_gfx.outputs.docker_file }}
platforms: linux/amd64
push: ${{ github.event_name != 'pull_request' }}
build-args: |
DISTRO=${{ steps.setup_vars_gfx.outputs.distro_image }}
VERSION=${{ matrix.system.version }}
GPU_TYPE=${{ matrix.gpu }}
GPU_TARBALL=${{ steps.therock.outputs.tarball }}
tags: |
ghcr.io/rocm/rocprofiler-${{ matrix.system.distro }}:${{ matrix.system.version }}-compute-ci-${{ matrix.gpu }}
labels: ${{ steps.meta.outputs.labels }}
@@ -1,8 +1,5 @@
# This is a basic workflow to help you get started with Actions name: rocprofiler-compute RHEL
name: rocprofiler-compute RHEL 8/9
# Controls when the workflow will run
on: on:
push: push:
branches: branches:
@@ -32,8 +29,6 @@ on:
- '!**/.wordlist.txt' - '!**/.wordlist.txt'
- '!projects/rocprofiler-compute/docs/**' - '!projects/rocprofiler-compute/docs/**'
- '!projects/rocprofiler-compute/docker/**' - '!projects/rocprofiler-compute/docker/**'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch: workflow_dispatch:
concurrency: concurrency:
@@ -43,9 +38,8 @@ concurrency:
env: env:
ROCM_VERSION: "7.2.0" ROCM_VERSION: "7.2.0"
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs: jobs:
build: build-rhel:
# The type of runner that the job will run on # The type of runner that the job will run on
# Using rocprofiler-systems images and later installing rocm, the official rocm images for al8 red hat variant are too large- this is a workaround. # Using rocprofiler-systems images and later installing rocm, the official rocm images for al8 red hat variant are too large- this is a workaround.
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -56,6 +50,7 @@ jobs:
matrix: matrix:
os-release: [ '8.10', '9.4' ] os-release: [ '8.10', '9.4' ]
build-type: ['Release'] build-type: ['Release']
# Steps represent a sequence of tasks that will be executed as part of the job # Steps represent a sequence of tasks that will be executed as part of the job
# Note- RHEL8 references python3.9 as python39, whereas RHEL9 default version is already 3.9, so we only need to call it as python3 # Note- RHEL8 references python3.9 as python39, whereas RHEL9 default version is already 3.9, so we only need to call it as python3
steps: steps:
@@ -75,6 +70,7 @@ jobs:
yum -y install cmake3 yum -y install cmake3
yum -y install which yum -y install which
yum -y install glibc-langpack-en yum -y install glibc-langpack-en
- name: Install ROCm Packages - name: Install ROCm Packages
timeout-minutes: 30 timeout-minutes: 30
uses: nick-fields/retry@v3 uses: nick-fields/retry@v3
@@ -92,10 +88,12 @@ jobs:
yum install -y https://repo.radeon.com/amdgpu-install/${ROCM_MAJOR}.${ROCM_MINOR}/rhel/9.4/amdgpu-install-${ROCM_MAJOR}.${ROCM_MINOR}.${ROCM_VERSN}-1.el9.noarch.rpm yum install -y https://repo.radeon.com/amdgpu-install/${ROCM_MAJOR}.${ROCM_MINOR}/rhel/9.4/amdgpu-install-${ROCM_MAJOR}.${ROCM_MINOR}.${ROCM_VERSN}-1.el9.noarch.rpm
fi fi
yum install -y rocm-dev yum install -y rocm-dev
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v5
with: with:
sparse-checkout: projects/rocprofiler-compute sparse-checkout: projects/rocprofiler-compute
- name: Install Python prereqs - name: Install Python prereqs
working-directory: projects/rocprofiler-compute working-directory: projects/rocprofiler-compute
run: | run: |
@@ -109,11 +107,13 @@ jobs:
cd build cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/rocprofiler-compute -DPYTEST_NUMPROCS=4 .. cmake -DCMAKE_INSTALL_PREFIX=/opt/rocprofiler-compute -DPYTEST_NUMPROCS=4 ..
make install make install
- name: CTest- Analyze Commands - name: CTest- Analyze Commands
working-directory: projects/rocprofiler-compute working-directory: projects/rocprofiler-compute
run: | run: |
cd build cd build
ctest --verbose -R test_analyze_commands ctest --verbose -R test_analyze_commands
- name: CTest- Analyze Workloads - name: CTest- Analyze Workloads
working-directory: projects/rocprofiler-compute working-directory: projects/rocprofiler-compute
run: | run: |
@@ -1,5 +1,3 @@
# This is a basic workflow to help you get started with Actions
name: rocprofiler-compute Ubuntu 22.04 name: rocprofiler-compute Ubuntu 22.04
on: on:
@@ -31,8 +29,6 @@ on:
- '!**/.wordlist.txt' - '!**/.wordlist.txt'
- '!projects/rocprofiler-compute/docs/**' - '!projects/rocprofiler-compute/docs/**'
- '!projects/rocprofiler-compute/docker/**' - '!projects/rocprofiler-compute/docker/**'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch: workflow_dispatch:
concurrency: concurrency:
@@ -40,7 +36,7 @@ concurrency:
cancel-in-progress: true cancel-in-progress: true
jobs: jobs:
build: build-ubuntu-jammy:
# The type of runner that the job will run on # The type of runner that the job will run on
# https://hub.docker.com/r/rocm/dev-ubuntu-22.04/tags # https://hub.docker.com/r/rocm/dev-ubuntu-22.04/tags
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -54,15 +50,18 @@ jobs:
apt-get install -y git apt-get install -y git
apt-get install -y python3-pip apt-get install -y python3-pip
apt-get install -y cmake apt-get install -y cmake
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v5
with: with:
sparse-checkout: projects/rocprofiler-compute sparse-checkout: projects/rocprofiler-compute
- name: Install Python prereqs - name: Install Python prereqs
working-directory: projects/rocprofiler-compute working-directory: projects/rocprofiler-compute
run: | run: |
python3 -m pip install -r requirements.txt python3 -m pip install -r requirements.txt
python3 -m pip install -r requirements-test.txt python3 -m pip install -r requirements-test.txt
- name: Configure and install - name: Configure and install
working-directory: projects/rocprofiler-compute working-directory: projects/rocprofiler-compute
run: | run: |
@@ -70,11 +69,13 @@ jobs:
cd build cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/rocprofiler-compute -DPYTEST_NUMPROCS=4 .. cmake -DCMAKE_INSTALL_PREFIX=/opt/rocprofiler-compute -DPYTEST_NUMPROCS=4 ..
make install make install
- name: CTest- Analyze Commands - name: CTest- Analyze Commands
working-directory: projects/rocprofiler-compute working-directory: projects/rocprofiler-compute
run: | run: |
cd build cd build
ctest --verbose -R test_analyze_commands ctest --verbose -R test_analyze_commands
- name: CTest- Analyze Workloads - name: CTest- Analyze Workloads
working-directory: projects/rocprofiler-compute working-directory: projects/rocprofiler-compute
run: | run: |
@@ -2,19 +2,17 @@ ARG DISTRO=opensuse/leap
ARG VERSION=15.3 ARG VERSION=15.3
FROM ${DISTRO}:${VERSION} FROM ${DISTRO}:${VERSION}
ENV HOME /root ENV HOME=/root
ENV SHELL /bin/bash ENV SHELL=/bin/bash
ENV BASH_ENV /etc/bash.bashrc ENV BASH_ENV=/etc/bash.bashrc
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
WORKDIR /tmp WORKDIR /tmp
SHELL [ "/bin/bash", "-c" ] SHELL [ "/bin/bash", "-c" ]
ENV PATH /usr/local/bin:${PATH} ENV PATH=/usr/local/bin:${PATH}
ARG EXTRA_PACKAGES="" ARG EXTRA_PACKAGES=""
# ARG ELFUTILS_DOWNLOAD_VERSION="0.186"
# ARG NJOBS="12"
RUN set +e; \ RUN set +e; \
zypper --non-interactive -i --gpg-auto-import-keys refresh; \ zypper --non-interactive -i --gpg-auto-import-keys refresh; \
@@ -26,23 +24,23 @@ RUN set +e; \
RUN zypper --non-interactive update -y && \ RUN zypper --non-interactive update -y && \
zypper --non-interactive dist-upgrade -y && \ zypper --non-interactive dist-upgrade -y && \
zypper --non-interactive install -y -t pattern devel_basis && \ zypper --non-interactive install -y -t pattern devel_basis && \
zypper --non-interactive install -y python3-pip gcc-c++ git dpkg-devel rpm-build curl wget binutils-gold && \ zypper --non-interactive install -y python3-pip gcc-c++ git dpkg-devel rpm-build curl wget && \
python3 -m pip install 'cmake==3.28.4' && \ python3 -m pip install 'cmake==3.21' && \
zypper --non-interactive clean --all zypper --non-interactive clean --all
ARG PYTHON_VERSIONS="6 7 8 9 10 11 12" # The Rock Tarball
ARG GPU_TYPE=""
RUN wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh && \ ARG GPU_TARBALL=""
bash miniconda.sh -b -p /opt/conda && \ RUN if [ -n "$GPU_TYPE" ] && [ -n "$GPU_TARBALL" ]; then \
export PATH="/opt/conda/bin:${PATH}" && \ VERSION=$(echo "$GPU_TARBALL" | sed -nE 's/.*([0-9]+\.[0-9]+\.[0-9]+).*/\1/p'); \
conda config --set always_yes yes --set changeps1 no && \ if [ -z "$VERSION" ]; then \
conda update -c defaults -n base conda && \ echo "Error: Could not extract version from GPU_TARBALL ('$GPU_TARBALL')." >&2; \
for i in ${PYTHON_VERSIONS}; do conda create -n py3.${i} -c defaults -c conda-forge python=3.${i} pip numpy; done && \ exit 1; \
for i in ${PYTHON_VERSIONS}; do /opt/conda/envs/py3.${i}/bin/python -m pip install numpy pandas dataclasses; done && \ fi; \
conda clean -a -y && \ python3 -m pip install -U awscli; \
cd /tmp && \ aws s3 cp "s3://therock-nightly-tarball/${GPU_TARBALL}" rocm-${VERSION}-${GPU_TYPE}.tar.gz --no-sign-request; \
shopt -s dotglob extglob && \ mv rocm-${VERSION}-${GPU_TYPE}.tar.gz /opt/rocm-${VERSION}-${GPU_TYPE}.tar.gz; \
rm -rf * fi
WORKDIR /home WORKDIR /home
SHELL [ "/bin/bash", "--login", "-c" ] SHELL [ "/bin/bash", "--login", "-c" ]
@@ -1,42 +1,39 @@
ARG DISTRO=rockylinux ARG DISTRO=rockylinux
ARG VERSION=8 ARG VERSION=8
FROM ${DISTRO}:${VERSION} FROM ${DISTRO}:${VERSION}
ENV HOME /root ENV HOME=/root
ENV SHELL /bin/bash ENV SHELL=/bin/bash
ENV BASH_ENV /etc/bash.bashrc ENV BASH_ENV=/etc/bash.bashrc
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
WORKDIR /tmp WORKDIR /tmp
SHELL [ "/bin/bash", "-c" ] SHELL [ "/bin/bash", "-c" ]
ENV PATH /usr/local/bin:${PATH} ENV PATH=/usr/local/bin:${PATH}
ARG EXTRA_PACKAGES="" ARG EXTRA_PACKAGES=""
# ARG ELFUTILS_DOWNLOAD_VERSION="0.186"
# ARG NJOBS="12"
RUN yum groupinstall -y "Development Tools" && \ RUN yum groupinstall -y "Development Tools" && \
yum install -y epel-release && \ yum install -y epel-release && \
yum install -y --allowerasing curl dpkg-devel python3-pip wget zlib-devel which git && \ yum install -y --allowerasing curl dpkg-devel python3-pip wget zlib-devel which git && \
yum clean all && \ yum clean all && \
python3 -m pip install --upgrade pip && \ python3 -m pip install --upgrade pip && \
python3 -m pip install 'cmake==3.28.4' python3 -m pip install 'cmake==3.21'
ARG PYTHON_VERSIONS="6 7 8 9 10 11 12" # The Rock Tarball
ARG GPU_TYPE=""
RUN wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh && \ ARG GPU_TARBALL=""
bash miniconda.sh -b -p /opt/conda && \ RUN if [ -n "$GPU_TYPE" ] && [ -n "$GPU_TARBALL" ]; then \
export PATH="/opt/conda/bin:${PATH}" && \ VERSION=$(echo "$GPU_TARBALL" | sed -nE 's/.*([0-9]+\.[0-9]+\.[0-9]+).*/\1/p'); \
conda config --set always_yes yes --set changeps1 no && \ if [ -z "$VERSION" ]; then \
conda update -c defaults -n base conda && \ echo "Error: Could not extract version from GPU_TARBALL ('$GPU_TARBALL')." >&2; \
for i in ${PYTHON_VERSIONS}; do conda create -n py3.${i} -c defaults -c conda-forge python=3.${i} pip numpy; done && \ exit 1; \
for i in ${PYTHON_VERSIONS}; do /opt/conda/envs/py3.${i}/bin/python -m pip install numpy pandas dataclasses; done && \ fi; \
conda clean -a -y && \ python3 -m pip install -U awscli; \
cd /tmp && \ aws s3 cp "s3://therock-nightly-tarball/${GPU_TARBALL}" rocm-${VERSION}-${GPU_TYPE}.tar.gz --no-sign-request; \
shopt -s dotglob extglob && \ mv rocm-${VERSION}-${GPU_TYPE}.tar.gz /opt/rocm-${VERSION}-${GPU_TYPE}.tar.gz; \
rm -rf * fi
WORKDIR /home WORKDIR /home
SHELL [ "/bin/bash", "--login", "-c" ] SHELL [ "/bin/bash", "--login", "-c" ]
@@ -1,48 +1,52 @@
ARG DISTRO=ubuntu
ARG DISTRO ARG VERSION=22.04
ARG VERSION
FROM ${DISTRO}:${VERSION} FROM ${DISTRO}:${VERSION}
ENV HOME /root ENV HOME=/root
ENV LANG C.UTF-8 ENV LANG=C.UTF-8
ENV SHELL /bin/bash ENV SHELL=/bin/bash
ENV BASH_ENV /etc/bash.bashrc ENV BASH_ENV=/etc/bash.bashrc
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND=noninteractive
WORKDIR /tmp WORKDIR /tmp
SHELL [ "/bin/bash", "-c" ] SHELL [ "/bin/bash", "-c" ]
ARG EXTRA_PACKAGES="" ARG EXTRA_PACKAGES=""
# ARG ELFUTILS_DOWNLOAD_VERSION="0.186"
# ARG BOOST_DOWNLOAD_VERSION="1.79.0"
# ARG NJOBS="12"
ARG PYTHON_VERSIONS="6 7 8 9 10 11 12"
ENV PATH /usr/local/bin:${PATH}
ENV LIBRARY_PATH /usr/local/lib:/usr/local/lib64:${LIBRARY_PATH}
ENV LD_LIBRARY_PATH /usr/local/lib:/usr/local/lib64:${LD_LIBRARY_PATH}
ENV CMAKE_PREFIX_PATH /usr/local:${CMAKE_PREFIX_PATH}
ENV PATH="/usr/local/bin:${PATH}"
ENV LIBRARY_PATH="/usr/local/lib:/usr/local/lib64"
ENV LD_LIBRARY_PATH="/usr/local/lib:/usr/local/lib64"
ENV CMAKE_PREFIX_PATH="/usr/local"
RUN apt-get update && \ RUN apt-get update && \
apt-get dist-upgrade -y && \ apt-get dist-upgrade -y && \
apt-get install -y autoconf autotools-dev bash-completion build-essential bzip2 cmake curl environment-modules git-core gnupg2 gzip libtool locales lsb-release m4 python3-pip unzip wget zip zlib1g-dev && \ apt-get install -y autoconf autotools-dev bash-completion build-essential bzip2 cmake curl environment-modules git-core gnupg2 gzip libtool locales lsb-release m4 python3-pip unzip wget zip zlib1g-dev && \
python3 -m pip install 'cmake==3.28.4' && \
apt-get autoclean && \ apt-get autoclean && \
locale -a && \ locale -a
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh && \
bash miniconda.sh -b -p /opt/conda && \
export PATH="/opt/conda/bin:${PATH}" && \
conda config --set always_yes yes --set changeps1 no && \
conda update -c defaults -n base conda && \
for i in ${PYTHON_VERSIONS}; do conda create -n py3.${i} -c defaults -c conda-forge python=3.${i} pip numpy; done && \
for i in ${PYTHON_VERSIONS}; do /opt/conda/envs/py3.${i}/bin/python -m pip install numpy pandas dataclasses; done && \
conda clean -a -y && \
cd /tmp && \
shopt -s dotglob extglob && \
rm -rf *
RUN OS_VERSION=$(grep '^VERSION_ID=' /etc/os-release | cut -d'=' -f2 | tr -d '"') && \
OS_ID=$(grep '^ID=' /etc/os-release | cut -d'=' -f2 | tr -d '"') && \
if [ "${OS_ID}" == "ubuntu" ] && [ "${OS_VERSION}" == "22.04" ]; then \
python3 -m pip install 'cmake==3.21'; \
else \
python3 -m pip install --break-system-packages 'cmake==3.21'; \
fi
ENV LC_ALL C.UTF-8 # The Rock Tarball
ARG GPU_TYPE=""
ARG GPU_TARBALL=""
RUN if [ -n "$GPU_TYPE" ] && [ -n "$GPU_TARBALL" ]; then \
VERSION=$(echo "$GPU_TARBALL" | sed -nE 's/.*([0-9]+\.[0-9]+\.[0-9]+).*/\1/p'); \
if [ -z "$VERSION" ]; then \
echo "Error: Could not extract version from GPU_TARBALL ('$GPU_TARBALL')." >&2; \
exit 1; \
fi; \
pip install --upgrade pip; \
pip install awscli --break-system-packages; \
aws s3 cp "s3://therock-nightly-tarball/${GPU_TARBALL}" rocm-${VERSION}-${GPU_TYPE}.tar.gz --no-sign-request; \
mv rocm-${VERSION}-${GPU_TYPE}.tar.gz /opt/rocm-${VERSION}-${GPU_TYPE}.tar.gz; \
fi
ENV LC_ALL=C.UTF-8
WORKDIR /home WORKDIR /home
SHELL [ "/bin/bash", "--login", "-c" ] SHELL [ "/bin/bash", "--login", "-c" ]
@@ -0,0 +1,17 @@
# Supported OS combinations for continuous integration
matrix:
# ubuntu
- distro: "ubuntu"
version: "22.04"
- distro: "ubuntu"
version: "24.04"
# opensuse
- distro: "opensuse"
version: "15.6"
# RHEL8
- distro: "rhel"
version: "8.10"
# RHEL9
- distro: "rhel"
version: "9"