Skip to content

Commit

Permalink
Test emulated ppc64le in CI
Browse files Browse the repository at this point in the history
  • Loading branch information
Chuck Atkins committed Apr 10, 2020
1 parent 6df06e8 commit 3b33248
Show file tree
Hide file tree
Showing 4 changed files with 106 additions and 7 deletions.
67 changes: 67 additions & 0 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
3 changes: 3 additions & 0 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
22 changes: 22 additions & 0 deletions scripts/ci/cmake/ci-power8-el7-xl.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Client maintainer: [email protected]

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)
21 changes: 14 additions & 7 deletions scripts/ci/images/cross-el7-base/Dockerfile
Original file line number Diff line number Diff line change
@@ -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 && \
Expand Down

0 comments on commit 3b33248

Please sign in to comment.