Skip to content
Snippets Groups Projects
Commit 63521144 authored by Atkins, Charles Vernon's avatar Atkins, Charles Vernon Committed by GitHub
Browse files

Merge pull request #253 from scottwittenburg/finish-image-buildout

Finish image buildout
parents 2743e2fa 0ddd4421
No related branches found
No related tags found
No related merge requests found
defaults: &defaults defaults: &defaults
working_directory: /home/adios2/hidecirclesource working_directory: /home/adios2
steps: steps:
- checkout - checkout:
path: /home/adios2/source
- run: - run:
name: Configure name: Configure
command: bash --login $CIRCLE_WORKING_DIRECTORY/scripts/circle/runOnCircle.sh configure command: bash --login source/scripts/circle/runOnCircle.sh configure
- run: - run:
name: Build name: Build
command: bash --login $CIRCLE_WORKING_DIRECTORY/scripts/circle/runOnCircle.sh build command: bash --login source/scripts/circle/runOnCircle.sh build
- run: - run:
name: Test name: Test
command: bash --login $CIRCLE_WORKING_DIRECTORY/scripts/circle/runOnCircle.sh test command: bash --login source/scripts/circle/runOnCircle.sh test
version: 2 version: 2
......
...@@ -23,3 +23,5 @@ ...@@ -23,3 +23,5 @@
*.bp.dir *.bp.dir
build/ build/
# Mac OSX finder-related files
.DS_Store
runOnCircle.sh runOnCircle.sh
postComment.sh postComment.sh
*.cmake
FROM centos:centos7.3.1611 FROM centos:centos7
RUN yum -y update && \
yum -y install \
bzip2-devel.x86_64 \
curl \
git \
gcc \
gcc-c++ \
gcc-gfortran \
gmake \
hdf5-devel.x86_64 \
numpy.x86_64 \
python-devel.x86_64 \
https://github.com/openhpc/ohpc/releases/download/v1.3.GA/ohpc-release-1.3-1.el7.x86_64.rpm
RUN yum -y update && \
yum -y install \
ohpc-base \
openmpi-gnu7-ohpc \
phdf5-gnu7-openmpi-ohpc \
netcdf-gnu7-openmpi-ohpc
WORKDIR /home/adios2 # Install extra repos
RUN yum -y install epel-release https://github.com/openhpc/ohpc/releases/download/v1.3.GA/ohpc-release-1.3-1.el7.x86_64.rpm
# Install core dev packages
RUN yum -y install \
curl file \
gcc gcc-c++ gcc-gfortran \
git make autoconf automake libtool\
bzip2-devel zeromq-devel hdf5-devel \
python-devel numpy
# Install gcc7 OpenHPC packages
RUN yum -y install \
lmod-ohpc gnu7-compilers-ohpc openmpi-gnu7-ohpc phdf5-gnu7-openmpi-ohpc \
python-numpy-gnu7-ohpc
# Cleanup headers and packages
RUN yum clean all
# Install the CMake binary
WORKDIR /opt/cmake/3.6.0
RUN curl -L https://cmake.org/files/v3.6/cmake-3.6.0-Linux-x86_64.tar.gz | \
tar --strip-components=1 -xzv
# ZFP
WORKDIR /opt/zfp
RUN mkdir build install && \
git clone https://github.com/LLNL/zfp.git src && \
cd build && \
/opt/cmake/3.6.0/bin/cmake \
-DCMAKE_INSTALL_PREFIX=/opt/zfp/install \
../src && \
make -j8 install && \
cd ../ && \
rm -rf build src
# ADIOS1
# Source setup
WORKDIR /opt/adios1/1.12.0
RUN mkdir source && \
curl -L https://github.com/ornladios/ADIOS/archive/v1.12.0.tar.gz | \
tar -C source --strip-components=1 -xzv && \
cd source && ./autogen.sh
# GCC 4.8
RUN cd source && \
CFLAGS="-O2 -fPIC" CXXFLAGS="-O2 -fPIC" FCFLAGS="-O2 -fPIC" \
./configure --prefix=/opt/adios1/1.12.0/gnu48 --without-mpi && \
make -j8 install && \
make distclean
# GCC 7
RUN cd source && \
. /etc/profile && \
module load gnu7 openmpi phdf5 && \
CFLAGS="-O2 -fPIC" CXXFLAGS="-O2 -fPIC" FCFLAGS="-O2 -fPIC" \
./configure --prefix=/opt/adios1/1.12.0/gnu7_openmpi && \
make -j8 install
# Cleanup
RUN rm -rf /opt/adios1/1.12.0/source
RUN curl -O https://cmake.org/files/v3.6/cmake-3.6.0-Linux-x86_64.tar.gz && \ # Create a non-root user to run the builds/tests
mkdir -p /opt/cmake && \ RUN export uid=1001 gid=1001 && \
cd /opt/cmake && \ mkdir -p /home/adios2 && \
tar -zxvf /home/adios2/cmake-3.6.0-Linux-x86_64.tar.gz && \ echo "adios2:x:${uid}:${gid}:adios2,,,:/home/adios2:/bin/bash" >> /etc/passwd && \
rm -rf /home/adios2/cmake-3.6.0-Linux-x86_64.tar.gz && \ echo "adios2:x:${uid}:" >> /etc/group && \
ln -s /opt/cmake/cmake-3.6.0-Linux-x86_64/bin/cmake /usr/local/bin/cmake && \ mkdir -p /etc/sudoers.d && \
ln -s /opt/cmake/cmake-3.6.0-Linux-x86_64/bin/cpack /usr/local/bin/cpack && \ echo "adios2 ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/adios2 && \
ln -s /opt/cmake/cmake-3.6.0-Linux-x86_64/bin/ctest /usr/local/bin/ctest && \ chmod 0440 /etc/sudoers.d/adios2 && \
mkdir -p /home/adios2/hidecirclesource chown ${uid}:${gid} -R /home/adios2
USER adios2
ENV HOME /home/adios2
WORKDIR /home/adios2 WORKDIR /home/adios2
CMD /bin/bash
...@@ -9,7 +9,7 @@ set(CTEST_TEST_ARGS PARALLEL_LEVEL 4) ...@@ -9,7 +9,7 @@ set(CTEST_TEST_ARGS PARALLEL_LEVEL 4)
set(dashboard_model Experimental) set(dashboard_model Experimental)
set(dashboard_binary_name "build-$ENV{CIRCLE_JOB}") set(dashboard_binary_name "build-$ENV{CIRCLE_JOB}")
set(CTEST_SOURCE_DIRECTORY "$ENV{CIRCLE_WORKING_DIRECTORY}") set(CTEST_SOURCE_DIRECTORY "$ENV{CIRCLE_WORKING_DIRECTORY}/source")
set(CTEST_DASHBOARD_ROOT "$ENV{HOME}") set(CTEST_DASHBOARD_ROOT "$ENV{HOME}")
include(${CMAKE_CURRENT_LIST_DIR}/EnvironmentModules.cmake) include(${CMAKE_CURRENT_LIST_DIR}/EnvironmentModules.cmake)
...@@ -29,6 +29,8 @@ ADIOS2_USE_MPI:STRING=OFF ...@@ -29,6 +29,8 @@ ADIOS2_USE_MPI:STRING=OFF
ADIOS2_USE_Python:STRING=ON ADIOS2_USE_Python:STRING=ON
ADIOS2_USE_ZFP:STRING=ON ADIOS2_USE_ZFP:STRING=ON
ADIOS2_USE_ZeroMQ:STRING=ON ADIOS2_USE_ZeroMQ:STRING=ON
ZFP_ROOT_DIR:PATH=/opt/zfp/install
ADIOS1_ROOT:PATH=/opt/adios1/1.12.0/gnu48
") ")
include(${CMAKE_CURRENT_LIST_DIR}/../dashboard/adios_common.cmake) include(${CMAKE_CURRENT_LIST_DIR}/../dashboard/adios_common.cmake)
...@@ -9,7 +9,7 @@ set(CTEST_TEST_ARGS PARALLEL_LEVEL 4) ...@@ -9,7 +9,7 @@ set(CTEST_TEST_ARGS PARALLEL_LEVEL 4)
set(dashboard_model Experimental) set(dashboard_model Experimental)
set(dashboard_binary_name "build_$ENV{CIRCLE_JOB}") set(dashboard_binary_name "build_$ENV{CIRCLE_JOB}")
set(CTEST_SOURCE_DIRECTORY "$ENV{CIRCLE_WORKING_DIRECTORY}") set(CTEST_SOURCE_DIRECTORY "$ENV{CIRCLE_WORKING_DIRECTORY}/source")
set(CTEST_DASHBOARD_ROOT "$ENV{HOME}") set(CTEST_DASHBOARD_ROOT "$ENV{HOME}")
include(${CMAKE_CURRENT_LIST_DIR}/EnvironmentModules.cmake) include(${CMAKE_CURRENT_LIST_DIR}/EnvironmentModules.cmake)
...@@ -17,7 +17,7 @@ module(purge) ...@@ -17,7 +17,7 @@ module(purge)
module(load gnu7) module(load gnu7)
module(load openmpi) module(load openmpi)
module(load phdf5) module(load phdf5)
module(load netcdf) module(load python)
set(ENV{CC} gcc) set(ENV{CC} gcc)
set(ENV{CXX} g++) set(ENV{CXX} g++)
...@@ -30,9 +30,11 @@ ADIOS2_USE_DataMan:STRING=ON ...@@ -30,9 +30,11 @@ ADIOS2_USE_DataMan:STRING=ON
ADIOS2_USE_Fortran:STRING=ON ADIOS2_USE_Fortran:STRING=ON
ADIOS2_USE_HDF5:STRING=ON ADIOS2_USE_HDF5:STRING=ON
ADIOS2_USE_MPI:STRING=ON ADIOS2_USE_MPI:STRING=ON
ADIOS2_USE_Python:STRING=ON ADIOS2_USE_Python:STRING=OFF
ADIOS2_USE_ZFP:STRING=ON ADIOS2_USE_ZFP:STRING=ON
ADIOS2_USE_ZeroMQ:STRING=ON ADIOS2_USE_ZeroMQ:STRING=ON
ZFP_ROOT_DIR:PATH=/opt/zfp/install
ADIOS1_ROOT:PATH=/opt/adios1/1.12.0/gnu7_openmpi
") ")
include(${CMAKE_CURRENT_LIST_DIR}/../dashboard/adios_common.cmake) include(${CMAKE_CURRENT_LIST_DIR}/../dashboard/adios_common.cmake)
...@@ -12,7 +12,8 @@ check_var CIRCLE_WORKING_DIRECTORY ...@@ -12,7 +12,8 @@ check_var CIRCLE_WORKING_DIRECTORY
check_var CIRCLE_BRANCH check_var CIRCLE_BRANCH
check_var CIRCLE_JOB check_var CIRCLE_JOB
CTEST_SCRIPT="${CIRCLE_WORKING_DIRECTORY}/scripts/circle/circle_${CIRCLE_JOB}.cmake" SOURCE_DIR=${CIRCLE_WORKING_DIRECTORY}/source
CTEST_SCRIPT="${SOURCE_DIR}/scripts/circle/circle_${CIRCLE_JOB}.cmake"
if [ ! -f "${CTEST_SCRIPT}" ] if [ ! -f "${CTEST_SCRIPT}" ]
then then
...@@ -30,4 +31,4 @@ case "$1" in ...@@ -30,4 +31,4 @@ case "$1" in
;; ;;
esac esac
ctest -VV -S ${CTEST_SCRIPT} -Ddashboard_full=OFF -Ddashboard_do_${STEP}=TRUE /opt/cmake/3.6.0/bin/ctest -VV -S ${CTEST_SCRIPT} -Ddashboard_full=OFF -Ddashboard_do_${STEP}=TRUE
...@@ -393,7 +393,12 @@ if(dashboard_do_test) ...@@ -393,7 +393,12 @@ if(dashboard_do_test)
dashboard_hook_test() dashboard_hook_test()
endif() endif()
message("Calling ctest_test") message("Calling ctest_test")
ctest_test(${CTEST_TEST_ARGS}) ctest_test(${CTEST_TEST_ARGS} RETURN_VALUE TEST_RESULTS)
if(${TEST_RESULTS} EQUAL 0)
message("ctest test results return value: ${TEST_RESULTS}")
else()
message(SEND_ERROR "Some tests failed")
endif()
ctest_submit(PARTS Test) ctest_submit(PARTS Test)
endif() endif()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment