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
Este cometimento está contido em:
cometido por
GitHub
ascendente
71856ec239
cometimento
1255ba2bcc
@@ -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:
|
||||
push:
|
||||
branches:
|
||||
@@ -32,8 +29,6 @@ on:
|
||||
- '!**/.wordlist.txt'
|
||||
- '!projects/rocprofiler-compute/docs/**'
|
||||
- '!projects/rocprofiler-compute/docker/**'
|
||||
|
||||
# Allows you to run this workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
@@ -43,9 +38,8 @@ concurrency:
|
||||
env:
|
||||
ROCM_VERSION: "7.2.0"
|
||||
|
||||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||
jobs:
|
||||
build:
|
||||
build-rhel:
|
||||
# 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.
|
||||
runs-on: ubuntu-latest
|
||||
@@ -56,6 +50,7 @@ jobs:
|
||||
matrix:
|
||||
os-release: [ '8.10', '9.4' ]
|
||||
build-type: ['Release']
|
||||
|
||||
# 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
|
||||
steps:
|
||||
@@ -75,6 +70,7 @@ jobs:
|
||||
yum -y install cmake3
|
||||
yum -y install which
|
||||
yum -y install glibc-langpack-en
|
||||
|
||||
- name: Install ROCm Packages
|
||||
timeout-minutes: 30
|
||||
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
|
||||
fi
|
||||
yum install -y rocm-dev
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
sparse-checkout: projects/rocprofiler-compute
|
||||
|
||||
- name: Install Python prereqs
|
||||
working-directory: projects/rocprofiler-compute
|
||||
run: |
|
||||
@@ -109,11 +107,13 @@ jobs:
|
||||
cd build
|
||||
cmake -DCMAKE_INSTALL_PREFIX=/opt/rocprofiler-compute -DPYTEST_NUMPROCS=4 ..
|
||||
make install
|
||||
|
||||
- name: CTest- Analyze Commands
|
||||
working-directory: projects/rocprofiler-compute
|
||||
run: |
|
||||
cd build
|
||||
ctest --verbose -R test_analyze_commands
|
||||
|
||||
- name: CTest- Analyze Workloads
|
||||
working-directory: projects/rocprofiler-compute
|
||||
run: |
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
# This is a basic workflow to help you get started with Actions
|
||||
|
||||
name: rocprofiler-compute Ubuntu 22.04
|
||||
|
||||
on:
|
||||
@@ -31,8 +29,6 @@ on:
|
||||
- '!**/.wordlist.txt'
|
||||
- '!projects/rocprofiler-compute/docs/**'
|
||||
- '!projects/rocprofiler-compute/docker/**'
|
||||
|
||||
# Allows you to run this workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
@@ -40,7 +36,7 @@ concurrency:
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
build-ubuntu-jammy:
|
||||
# The type of runner that the job will run on
|
||||
# https://hub.docker.com/r/rocm/dev-ubuntu-22.04/tags
|
||||
runs-on: ubuntu-latest
|
||||
@@ -54,15 +50,18 @@ jobs:
|
||||
apt-get install -y git
|
||||
apt-get install -y python3-pip
|
||||
apt-get install -y cmake
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
sparse-checkout: projects/rocprofiler-compute
|
||||
|
||||
- name: Install Python prereqs
|
||||
working-directory: projects/rocprofiler-compute
|
||||
run: |
|
||||
python3 -m pip install -r requirements.txt
|
||||
python3 -m pip install -r requirements-test.txt
|
||||
|
||||
- name: Configure and install
|
||||
working-directory: projects/rocprofiler-compute
|
||||
run: |
|
||||
@@ -70,11 +69,13 @@ jobs:
|
||||
cd build
|
||||
cmake -DCMAKE_INSTALL_PREFIX=/opt/rocprofiler-compute -DPYTEST_NUMPROCS=4 ..
|
||||
make install
|
||||
|
||||
- name: CTest- Analyze Commands
|
||||
working-directory: projects/rocprofiler-compute
|
||||
run: |
|
||||
cd build
|
||||
ctest --verbose -R test_analyze_commands
|
||||
|
||||
- name: CTest- Analyze Workloads
|
||||
working-directory: projects/rocprofiler-compute
|
||||
run: |
|
||||
|
||||
@@ -2,19 +2,17 @@ ARG DISTRO=opensuse/leap
|
||||
ARG VERSION=15.3
|
||||
FROM ${DISTRO}:${VERSION}
|
||||
|
||||
ENV HOME /root
|
||||
ENV SHELL /bin/bash
|
||||
ENV BASH_ENV /etc/bash.bashrc
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
ENV HOME=/root
|
||||
ENV SHELL=/bin/bash
|
||||
ENV BASH_ENV=/etc/bash.bashrc
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
WORKDIR /tmp
|
||||
SHELL [ "/bin/bash", "-c" ]
|
||||
|
||||
ENV PATH /usr/local/bin:${PATH}
|
||||
ENV PATH=/usr/local/bin:${PATH}
|
||||
|
||||
ARG EXTRA_PACKAGES=""
|
||||
# ARG ELFUTILS_DOWNLOAD_VERSION="0.186"
|
||||
# ARG NJOBS="12"
|
||||
|
||||
RUN set +e; \
|
||||
zypper --non-interactive -i --gpg-auto-import-keys refresh; \
|
||||
@@ -26,23 +24,23 @@ RUN set +e; \
|
||||
RUN zypper --non-interactive update -y && \
|
||||
zypper --non-interactive dist-upgrade -y && \
|
||||
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 && \
|
||||
python3 -m pip install 'cmake==3.28.4' && \
|
||||
zypper --non-interactive install -y python3-pip gcc-c++ git dpkg-devel rpm-build curl wget && \
|
||||
python3 -m pip install 'cmake==3.21' && \
|
||||
zypper --non-interactive clean --all
|
||||
|
||||
ARG PYTHON_VERSIONS="6 7 8 9 10 11 12"
|
||||
|
||||
RUN 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 *
|
||||
# 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; \
|
||||
python3 -m pip install -U awscli; \
|
||||
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
|
||||
|
||||
WORKDIR /home
|
||||
SHELL [ "/bin/bash", "--login", "-c" ]
|
||||
|
||||
@@ -1,42 +1,39 @@
|
||||
|
||||
ARG DISTRO=rockylinux
|
||||
ARG VERSION=8
|
||||
FROM ${DISTRO}:${VERSION}
|
||||
|
||||
ENV HOME /root
|
||||
ENV SHELL /bin/bash
|
||||
ENV BASH_ENV /etc/bash.bashrc
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
ENV HOME=/root
|
||||
ENV SHELL=/bin/bash
|
||||
ENV BASH_ENV=/etc/bash.bashrc
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
WORKDIR /tmp
|
||||
SHELL [ "/bin/bash", "-c" ]
|
||||
|
||||
ENV PATH /usr/local/bin:${PATH}
|
||||
ENV PATH=/usr/local/bin:${PATH}
|
||||
|
||||
ARG EXTRA_PACKAGES=""
|
||||
# ARG ELFUTILS_DOWNLOAD_VERSION="0.186"
|
||||
# ARG NJOBS="12"
|
||||
|
||||
RUN yum groupinstall -y "Development Tools" && \
|
||||
yum install -y epel-release && \
|
||||
yum install -y --allowerasing curl dpkg-devel python3-pip wget zlib-devel which git && \
|
||||
yum clean all && \
|
||||
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"
|
||||
|
||||
RUN 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 *
|
||||
# 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; \
|
||||
python3 -m pip install -U awscli; \
|
||||
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
|
||||
|
||||
WORKDIR /home
|
||||
SHELL [ "/bin/bash", "--login", "-c" ]
|
||||
|
||||
@@ -1,48 +1,52 @@
|
||||
|
||||
ARG DISTRO
|
||||
ARG VERSION
|
||||
ARG DISTRO=ubuntu
|
||||
ARG VERSION=22.04
|
||||
FROM ${DISTRO}:${VERSION}
|
||||
|
||||
ENV HOME /root
|
||||
ENV LANG C.UTF-8
|
||||
ENV SHELL /bin/bash
|
||||
ENV BASH_ENV /etc/bash.bashrc
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
ENV HOME=/root
|
||||
ENV LANG=C.UTF-8
|
||||
ENV SHELL=/bin/bash
|
||||
ENV BASH_ENV=/etc/bash.bashrc
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
WORKDIR /tmp
|
||||
SHELL [ "/bin/bash", "-c" ]
|
||||
|
||||
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 && \
|
||||
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 && \
|
||||
python3 -m pip install 'cmake==3.28.4' && \
|
||||
apt-get autoclean && \
|
||||
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 *
|
||||
locale -a
|
||||
|
||||
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
|
||||
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"
|
||||
Criar uma nova questão referindo esta
Bloquear um utilizador