From 2e581e2a10ab42596890649d665ae16d5566c0bb Mon Sep 17 00:00:00 2001 From: "Jonathan R. Madsen" Date: Mon, 16 Oct 2023 10:39:18 -0500 Subject: [PATCH] Installers for ROCm 5.7, Python 3.12 + Remove DEB and RPM installers (#313) * Dockerfile update - Python 3.12 support * Bump version to 1.10.4 * Update docker scripts - Support Python 3.12 - Set RETRY to 1 if less than 1 - Support ROCm 5.7 * Update scripts/build-release.sh - Default to python 3.6-3.12 (i.e. add Python 3.12) * Update cpack workflow - Packaging for ROCm 5.7 - Ubuntu 20.04 - Ubuntu 22.04 - OpenSUSE 15.4 - RHEL 8.7 - RHEL 9.1 - Packaging for older ROCms (by request) - RHEL 8.7 + ROCm 5.3 - OpenSUSE 15.3 + ROCm 5.2 - OpenSUSE 15.4 + ROCm 5.2 - OpenSUSE 15.4 + ROCm 5.3 - Remove DEB and RPM installers - Only generate STGZ installers * Update cpack workflow - disable uploading DEB and RPM artifacts --- .github/workflows/cpack.yml | 149 ++++++++++++++++++++------------- VERSION | 2 +- docker/Dockerfile.opensuse | 2 +- docker/Dockerfile.opensuse.ci | 2 +- docker/Dockerfile.rhel | 2 +- docker/Dockerfile.rhel.ci | 2 +- docker/Dockerfile.ubuntu | 2 +- docker/Dockerfile.ubuntu.ci | 2 +- docker/build-docker-ci.sh | 2 +- docker/build-docker-release.sh | 6 +- docker/build-docker.sh | 12 ++- scripts/build-release.sh | 2 +- 12 files changed, 112 insertions(+), 73 deletions(-) diff --git a/.github/workflows/cpack.yml b/.github/workflows/cpack.yml index 59b07f70b..2b291cd31 100644 --- a/.github/workflows/cpack.yml +++ b/.github/workflows/cpack.yml @@ -48,6 +48,9 @@ jobs: - os-distro: "ubuntu" os-version: "20.04" rocm-version: "5.6" + - os-distro: "ubuntu" + os-version: "20.04" + rocm-version: "5.7" # ubuntu 22.04 - os-distro: "ubuntu" os-version: "22.04" @@ -61,10 +64,16 @@ jobs: - os-distro: "ubuntu" os-version: "22.04" rocm-version: "5.6" + - os-distro: "ubuntu" + os-version: "22.04" + rocm-version: "5.7" # opensuse 15.3 - os-distro: "opensuse" os-version: "15.3" rocm-version: "0.0" + - os-distro: "opensuse" + os-version: "15.3" + rocm-version: "5.2" - os-distro: "opensuse" os-version: "15.3" rocm-version: "5.3" @@ -78,6 +87,12 @@ jobs: - os-distro: "opensuse" os-version: "15.4" rocm-version: "0.0" + - os-distro: "opensuse" + os-version: "15.4" + rocm-version: "5.2" + - os-distro: "opensuse" + os-version: "15.4" + rocm-version: "5.3" - os-distro: "opensuse" os-version: "15.4" rocm-version: "5.4" @@ -87,10 +102,16 @@ jobs: - os-distro: "opensuse" os-version: "15.4" rocm-version: "5.6" + - os-distro: "opensuse" + os-version: "15.4" + rocm-version: "5.7" # RHEL 8.7 - os-distro: "rhel" os-version: "8.7" rocm-version: "0.0" + - os-distro: "rhel" + os-version: "8.7" + rocm-version: "5.3" - os-distro: "rhel" os-version: "8.7" rocm-version: "5.4" @@ -100,6 +121,9 @@ jobs: - os-distro: "rhel" os-version: "8.7" rocm-version: "5.6" + - os-distro: "rhel" + os-version: "8.7" + rocm-version: "5.7" # RHEL 9.1 - os-distro: "rhel" os-version: "9.1" @@ -113,6 +137,9 @@ jobs: - os-distro: "rhel" os-version: "9.1" rocm-version: "5.6" + - os-distro: "rhel" + os-version: "9.1" + rocm-version: "5.7" steps: - name: Free Disk Space @@ -139,20 +166,24 @@ jobs: run: | echo "CI_SCRIPT_ARGS=--rocm +python" >> $GITHUB_ENV - - name: Configure Ubuntu Generators - if: ${{ matrix.os-distro == 'ubuntu' }} + - name: Configure Generators run: | - echo "CI_GENERATOR_ARGS=--generators STGZ DEB" >> $GITHUB_ENV + echo "CI_GENERATOR_ARGS=--generators STGZ" >> $GITHUB_ENV - - name: Configure OpenSUSE Generators - if: ${{ matrix.os-distro == 'opensuse' }} - run: | - echo "CI_GENERATOR_ARGS=--generators STGZ RPM" >> $GITHUB_ENV + # - name: Configure Ubuntu Generators + # if: ${{ matrix.os-distro == 'ubuntu' }} + # run: | + # echo "CI_GENERATOR_ARGS=--generators STGZ DEB" >> $GITHUB_ENV - - name: Configure RedHat Generators - if: ${{ matrix.os-distro == 'rhel' }} - run: | - echo "CI_GENERATOR_ARGS=--generators STGZ" >> $GITHUB_ENV + # - name: Configure OpenSUSE Generators + # if: ${{ matrix.os-distro == 'opensuse' }} + # run: | + # echo "CI_GENERATOR_ARGS=--generators STGZ RPM" >> $GITHUB_ENV + + # - name: Configure RedHat Generators + # if: ${{ matrix.os-distro == 'rhel' }} + # run: | + # echo "CI_GENERATOR_ARGS=--generators STGZ" >> $GITHUB_ENV - name: Build Base Container timeout-minutes: 30 @@ -181,23 +212,23 @@ jobs: path: | build-release/stgz/*.sh - - name: DEB Artifacts - timeout-minutes: 10 - if: ${{ matrix.os-distro == 'ubuntu' }} - uses: actions/upload-artifact@v3 - with: - name: omnitrace-deb-${{ matrix.os-distro }}-${{ matrix.os-version }}-rocm-${{ matrix.rocm-version }}-installer - path: | - build-release/deb/*.deb + # - name: DEB Artifacts + # timeout-minutes: 10 + # if: ${{ matrix.os-distro == 'ubuntu' }} + # uses: actions/upload-artifact@v3 + # with: + # name: omnitrace-deb-${{ matrix.os-distro }}-${{ matrix.os-version }}-rocm-${{ matrix.rocm-version }}-installer + # path: | + # build-release/deb/*.deb - - name: RPM Artifacts - timeout-minutes: 10 - if: ${{ matrix.os-distro == 'opensuse' }} - uses: actions/upload-artifact@v3 - with: - name: omnitrace-rpm-${{ matrix.os-distro }}-${{ matrix.os-version }}-rocm-${{ matrix.rocm-version }}-installer - path: | - build-release/rpm/*.rpm + # - name: RPM Artifacts + # timeout-minutes: 10 + # if: ${{ matrix.os-distro == 'opensuse' }} + # uses: actions/upload-artifact@v3 + # with: + # name: omnitrace-rpm-${{ matrix.os-distro }}-${{ matrix.os-version }}-rocm-${{ matrix.rocm-version }}-installer + # path: | + # build-release/rpm/*.rpm # before testing remove any artifacts of the build - name: Remove Build @@ -225,38 +256,38 @@ jobs: files: | omnitrace-*.sh - - name: Test DEB Install - timeout-minutes: 20 - if: ${{ matrix.os-distro == 'ubuntu' }} - run: | - set -v - for i in omnitrace_*.deb - do - ./docker/test-docker-release.sh --distro ${{ matrix.os-distro }} --versions ${{ matrix.os-version }} --rocm-versions ${{ matrix.rocm-version }} -- --deb ${i} - done + # - name: Test DEB Install + # timeout-minutes: 20 + # if: ${{ matrix.os-distro == 'ubuntu' }} + # run: | + # set -v + # for i in omnitrace_*.deb + # do + # ./docker/test-docker-release.sh --distro ${{ matrix.os-distro }} --versions ${{ matrix.os-version }} --rocm-versions ${{ matrix.rocm-version }} -- --deb ${i} + # done - - name: Upload DEB Release Assets - uses: softprops/action-gh-release@v1 - if: matrix.os-distro == 'ubuntu' && startsWith(github.ref, 'refs/tags/') && github.repository == 'AMDResearch/omnitrace' - with: - fail_on_unmatched_files: True - files: | - omnitrace_*.deb + # - name: Upload DEB Release Assets + # uses: softprops/action-gh-release@v1 + # if: matrix.os-distro == 'ubuntu' && startsWith(github.ref, 'refs/tags/') && github.repository == 'AMDResearch/omnitrace' + # with: + # fail_on_unmatched_files: True + # files: | + # omnitrace_*.deb - - name: Test RPM Install - timeout-minutes: 20 - if: ${{ matrix.os-distro == 'opensuse' }} - run: | - set -v - for i in omnitrace-*.rpm - do - ./docker/test-docker-release.sh --distro opensuse --versions ${{ matrix.os-version }} --rocm-versions ${{ matrix.rocm-version }} -- --rpm ${i} - done + # - name: Test RPM Install + # timeout-minutes: 20 + # if: ${{ matrix.os-distro == 'opensuse' }} + # run: | + # set -v + # for i in omnitrace-*.rpm + # do + # ./docker/test-docker-release.sh --distro opensuse --versions ${{ matrix.os-version }} --rocm-versions ${{ matrix.rocm-version }} -- --rpm ${i} + # done - - name: Upload RPM Release Assets - uses: softprops/action-gh-release@v1 - if: matrix.os-distro == 'opensuse' && startsWith(github.ref, 'refs/tags/') && github.repository == 'AMDResearch/omnitrace' - with: - fail_on_unmatched_files: True - files: | - omnitrace-*.rpm + # - name: Upload RPM Release Assets + # uses: softprops/action-gh-release@v1 + # if: matrix.os-distro == 'opensuse' && startsWith(github.ref, 'refs/tags/') && github.repository == 'AMDResearch/omnitrace' + # with: + # fail_on_unmatched_files: True + # files: | + # omnitrace-*.rpm diff --git a/VERSION b/VERSION index 587c5f0c7..18b311420 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.10.3 +1.10.4 diff --git a/docker/Dockerfile.opensuse b/docker/Dockerfile.opensuse index eac1fe935..e3cdf92a3 100644 --- a/docker/Dockerfile.opensuse +++ b/docker/Dockerfile.opensuse @@ -31,7 +31,7 @@ RUN if [ "${ROCM_VERSION}" != "0.0" ]; then \ zypper clean --all; \ fi -ARG PYTHON_VERSIONS="6 7 8 9 10 11" +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 && \ diff --git a/docker/Dockerfile.opensuse.ci b/docker/Dockerfile.opensuse.ci index 0e6de38cf..888e88849 100644 --- a/docker/Dockerfile.opensuse.ci +++ b/docker/Dockerfile.opensuse.ci @@ -33,7 +33,7 @@ RUN cd /tmp/dyninst && \ shopt -s dotglob extglob && \ rm -rf * -ARG PYTHON_VERSIONS="6 7 8 9 10 11" +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 && \ diff --git a/docker/Dockerfile.rhel b/docker/Dockerfile.rhel index d46446319..fe6c6435e 100644 --- a/docker/Dockerfile.rhel +++ b/docker/Dockerfile.rhel @@ -31,7 +31,7 @@ RUN if [ "${ROCM_VERSION}" != "0.0" ]; then \ yum clean all; \ fi -ARG PYTHON_VERSIONS="6 7 8 9 10 11" +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 && \ diff --git a/docker/Dockerfile.rhel.ci b/docker/Dockerfile.rhel.ci index a3b41c752..1601eee05 100644 --- a/docker/Dockerfile.rhel.ci +++ b/docker/Dockerfile.rhel.ci @@ -32,7 +32,7 @@ RUN cd /tmp/dyninst && \ shopt -s dotglob extglob && \ rm -rf * -ARG PYTHON_VERSIONS="6 7 8 9 10 11" +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 && \ diff --git a/docker/Dockerfile.ubuntu b/docker/Dockerfile.ubuntu index 9d0412b5d..49a6b0a09 100644 --- a/docker/Dockerfile.ubuntu +++ b/docker/Dockerfile.ubuntu @@ -18,7 +18,7 @@ ARG EXTRA_PACKAGES="" ARG ROCM_REPO_VERSION="debian" ARG ROCM_VERSION="0.0" ARG ROCM_REPO_DIST="ubuntu" -ARG PYTHON_VERSIONS="6 7 8 9 10 11" +ARG PYTHON_VERSIONS="6 7 8 9 10 11 12" ENV PATH ${HOME}/.local/bin:${PATH} RUN apt-get update && \ diff --git a/docker/Dockerfile.ubuntu.ci b/docker/Dockerfile.ubuntu.ci index 6395d4fe4..ed472b7af 100644 --- a/docker/Dockerfile.ubuntu.ci +++ b/docker/Dockerfile.ubuntu.ci @@ -16,7 +16,7 @@ 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" +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} diff --git a/docker/build-docker-ci.sh b/docker/build-docker-ci.sh index 434bfb941..da33ea2f6 100755 --- a/docker/build-docker-ci.sh +++ b/docker/build-docker-ci.sh @@ -8,7 +8,7 @@ set -e : ${NJOBS=$(nproc)} : ${ELFUTILS_VERSION:=0.186} : ${BOOST_VERSION:=1.79.0} -: ${PYTHON_VERSIONS:="6 7 8 9 10 11"} +: ${PYTHON_VERSIONS:="6 7 8 9 10 11 12"} : ${PUSH:=0} : ${PULL:=--pull} diff --git a/docker/build-docker-release.sh b/docker/build-docker-release.sh index 3d99412f3..e44fa8e76 100755 --- a/docker/build-docker-release.sh +++ b/docker/build-docker-release.sh @@ -101,7 +101,7 @@ reset-last : ${VERSIONS:=20.04 18.04} : ${ROCM_VERSIONS:=5.0 4.5 4.3} : ${MPI:=0} -: ${PYTHON_VERSIONS:="6 7 8 9 10 11"} +: ${PYTHON_VERSIONS:="6 7 8 9 10 11 12"} : ${RETRY:=3} n=0 @@ -157,6 +157,10 @@ done CODE_VERSION=$(cat VERSION) +if [ "${RETRY}" -lt 1 ]; then + RETRY=1 +fi + if [ "${DISTRO}" = "rhel" ]; then SCRIPT_ARGS="${SCRIPT_ARGS} --static-libstdcxx off" fi diff --git a/docker/build-docker.sh b/docker/build-docker.sh index c49fabfff..715114ee8 100755 --- a/docker/build-docker.sh +++ b/docker/build-docker.sh @@ -4,7 +4,7 @@ : ${ROCM_VERSIONS:="5.0"} : ${DISTRO:=ubuntu} : ${VERSIONS:=20.04} -: ${PYTHON_VERSIONS:="6 7 8 9 10 11"} +: ${PYTHON_VERSIONS:="6 7 8 9 10 11 12"} : ${BUILD_CI:=""} : ${PUSH:=0} : ${PULL:=--pull} @@ -144,6 +144,10 @@ done DOCKER_FILE="Dockerfile.${DISTRO}" +if [ "${RETRY}" -lt 1 ]; then + RETRY=1 +fi + if [ -n "${BUILD_CI}" ]; then DOCKER_FILE="${DOCKER_FILE}.ci"; fi if [ ! -f ${DOCKER_FILE} ]; then cd docker; fi if [ ! -f ${DOCKER_FILE} ]; then send-error "File \"${DOCKER_FILE}\" not found"; fi @@ -173,7 +177,7 @@ do 4.1* | 4.0*) ROCM_REPO_DIST="xenial" ;; - 5.3* | 5.4* | 5.5* | 5.6*) + 5.3 | 5.3.* | 5.4 | 5.4.* | 5.5 | 5.5.* | 5.6 | 5.6.* | 5.7 | 5.7.*) case "${VERSION}" in 22.04) ROCM_REPO_DIST="jammy" @@ -204,7 +208,7 @@ do # set the sub-URL in https://repo.radeon.com/amdgpu-install/ case "${ROCM_VERSION}" in - 5.3 | 5.3.* | 5.4 | 5.4.* | 5.5 | 5.5.* | 5.6 | 5.6.*) + 5.3 | 5.3.* | 5.4 | 5.4.* | 5.5 | 5.5.* | 5.6 | 5.6.* | 5.7 | 5.7.*) ROCM_RPM=${ROCM_VERSION}/rhel/${RPM_PATH}/amdgpu-install-${ROCM_MAJOR}.${ROCM_MINOR}.${ROCM_VERSN}-1${RPM_TAG}.noarch.rpm ;; 5.2 | 5.2.* | 5.1 | 5.1.* | 5.0 | 5.0.* | 4.*) @@ -232,7 +236,7 @@ do ;; esac case "${ROCM_VERSION}" in - 5.3 | 5.3.* | 5.4 | 5.4.* | 5.5 | 5.5.* | 5.6 | 5.6.*) + 5.3 | 5.3.* | 5.4 | 5.4.* | 5.5 | 5.5.* | 5.6 | 5.6.* | 5.7 | 5.7.*) ROCM_RPM=${ROCM_VERSION}/sle/${VERSION}/amdgpu-install-${ROCM_MAJOR}.${ROCM_MINOR}.${ROCM_VERSN}-1.noarch.rpm ;; 5.2 | 5.2.*) diff --git a/scripts/build-release.sh b/scripts/build-release.sh index 39375a850..53c27c79f 100755 --- a/scripts/build-release.sh +++ b/scripts/build-release.sh @@ -15,7 +15,7 @@ : ${MAX_THREADS:=2048} : ${PERFETTO_TOOLS:="ON"} : ${HIDDEN_VIZ:="ON"} -: ${PYTHON_VERSIONS:="6 7 8 9 10 11"} +: ${PYTHON_VERSIONS:="6 7 8 9 10 11 12"} : ${GENERATORS:="STGZ DEB RPM"} : ${MPI_IMPL:="openmpi"} : ${CLEAN:=0}