diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 5f164c796d..29d7eaab78 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -57,6 +57,73 @@ jobs: - name: Test run: scripts/ci/gh-actions/run.sh test + linux_emu: + runs-on: ubuntu-latest + env: + GH_YML_JOBNAME: ${{ matrix.jobname }} + GH_YML_OS: Linux + + strategy: + fail-fast: false + matrix: + jobname: [ + power8-el7-xl] + include: + - jobname: power8-el7-xl + container: ornladios/adios2:power8-el7-xl + + steps: + - name: EmuSetup + run: | + docker run --rm --privileged multiarch/qemu-user-static:register --reset + bash -c "env | grep '^GITHUB'" > ${RUNNER_WORKSPACE}/github.env + echo "GH_YML_JOBNAME=${GH_YML_JOBNAME}" >> ${RUNNER_WORKSPACE}/github.env + echo "GH_YML_OS=${GH_YML_OS}" >> ${RUNNER_WORKSPACE}/github.env + cat ${RUNNER_WORKSPACE}/github.env + - uses: actions/checkout@v2 + with: + ref: ${{ github.event.pull_request.head.sha }} + - name: Setup + run: + docker run + -v ${RUNNER_WORKSPACE}:${RUNNER_WORKSPACE} + -w ${GITHUB_WORKSPACE} + --env-file ${RUNNER_WORKSPACE}/github.env + ${{ matrix.container }} + scripts/ci/gh-actions/linux-setup.sh + - name: Update + run: + docker run + -v ${RUNNER_WORKSPACE}:${RUNNER_WORKSPACE} + -w ${GITHUB_WORKSPACE} + --env-file ${RUNNER_WORKSPACE}/github.env + ${{ matrix.container }} + scripts/ci/gh-actions/run.sh update + - name: Configure + run: + docker run + -v ${RUNNER_WORKSPACE}:${RUNNER_WORKSPACE} + -w ${GITHUB_WORKSPACE} + --env-file ${RUNNER_WORKSPACE}/github.env + ${{ matrix.container }} + scripts/ci/gh-actions/run.sh configure + - name: Build + run: + docker run + -v ${RUNNER_WORKSPACE}:${RUNNER_WORKSPACE} + -w ${GITHUB_WORKSPACE} + --env-file ${RUNNER_WORKSPACE}/github.env + ${{ matrix.container }} + scripts/ci/gh-actions/run.sh build + - name: Test + run: + docker run + -v ${RUNNER_WORKSPACE}:${RUNNER_WORKSPACE} + -w ${GITHUB_WORKSPACE} + --env-file ${RUNNER_WORKSPACE}/github.env + ${{ matrix.container }} + scripts/ci/gh-actions/run.sh test + macos: runs-on: ${{ matrix.os }} env: diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 6da6c5fad9..1776d2570f 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -76,6 +76,9 @@ jobs: containerResource: el7-intel-ohpc el7_intel_openmpi_ohpc: containerResource: el7-intel-openmpi-ohpc + power8-el7-xl: + containerResource: power8-el7-xl + container: $[ variables['containerResource'] ] steps: - bash: scripts/ci/azure/linux-setup.sh diff --git a/scripts/ci/cmake/ci-power8-el7-xl.cmake b/scripts/ci/cmake/ci-power8-el7-xl.cmake new file mode 100644 index 0000000000..ab32d91874 --- /dev/null +++ b/scripts/ci/cmake/ci-power8-el7-xl.cmake @@ -0,0 +1,22 @@ +# Client maintainer: chuck.atkins@kitware.com + +set(ENV{CC} xlc) +set(ENV{CXX} xlc++) +set(ENV{FC} xlf) + +set(dashboard_cache " +#ADIOS2_USE_BZip2:BOOL=ON +#ADIOS2_USE_Blosc:BOOL=OFF +#ADIOS2_USE_DataMan:BOOL=ON +#ADIOS2_USE_Fortran:BOOL=ON +ADIOS2_USE_HDF5:BOOL=ON +ADIOS2_USE_MPI:BOOL=OFF +#ADIOS2_USE_Python:BOOL=OFF +#ADIOS2_USE_SZ:BOOL=ON +#ADIOS2_USE_ZeroMQ:STRING=ON +#ADIOS2_USE_ZFP:BOOL=ON +") + +set(CTEST_CMAKE_GENERATOR "Unix Makefiles") +list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}") +include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake) diff --git a/scripts/ci/images/cross-el7-base/Dockerfile b/scripts/ci/images/cross-el7-base/Dockerfile index d1e8147d01..4428eab4cc 100644 --- a/scripts/ci/images/cross-el7-base/Dockerfile +++ b/scripts/ci/images/cross-el7-base/Dockerfile @@ -1,11 +1,18 @@ -ARG SYSTEM_ARCH_FROM=x86_64 -ARG SYSTEM_ARCH_TO=ppc64le -ARG DOCKER_ARCH_TO=ppc64le -FROM multiarch/qemu-user-static:${SYSTEM_ARCH_FROM}-${SYSTEM_ARCH_TO} as qemu -FROM ${DOCKER_ARCH_TO}/centos:centos7 +# Start from the correct base image. This needs to be a separate argument +# from SYSTEM_ARCH_TARGET since the arch names used by dockerhub are sometimes +# different, i.e. arm64v8 vs aarch64 +ARG DOCKER_ARCH_TARGET=ppc64le +ARG SYSTEM_ARCH_HOST=x86_64 +ARG SYSTEM_ARCH_TARGET=ppc64le +FROM multiarch/qemu-user-static:${SYSTEM_ARCH_HOST}-${SYSTEM_ARCH_TARGET} as qemu +FROM ${DOCKER_ARCH_TARGET}/centos:centos7 -ARG SYSTEM_ARCH_TO=ppc64le -COPY --from=qemu /usr/bin/qemu-${SYSTEM_ARCH_TO}-static /usr/bin +ARG SYSTEM_ARCH_TARGET=ppc64le +COPY --from=qemu /usr/bin/qemu-${SYSTEM_ARCH_TARGET}-static /usr/bin/qemu-${SYSTEM_ARCH_TARGET}-static + +# Bake in the CPU setting +ARG SYSTEM_TARGET_CPU +ENV QEMU_CPU=${SYSTEM_TARGET_CPU} # Install core dev packages RUN yum upgrade -y && \