Skip to content

Commit

Permalink
Merge pull request #361 from JeffersonLab/v2.3.x
Browse files Browse the repository at this point in the history
Release v2.3.x
  • Loading branch information
wdconinc committed Jun 24, 2020
2 parents 701c7e8 + 4bb6624 commit 2a31f1c
Show file tree
Hide file tree
Showing 237 changed files with 74,467 additions and 35,882 deletions.
20 changes: 18 additions & 2 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
build
map_directory
# install destinations
bin/*
lib/*
share/*

# develop directories
.git/*
build/*

# large content
rootfiles/*

# large directory
# but cheaper to copy than download
#map_directory/*

# large content
*.root

22 changes: 21 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,19 @@
images

# random seed files
G4Master_run*.rndm
G4Worker?_run*.rndm
G4Worker?_run*evt*.rndm
run*evt*.rndm
currentEvent.rndm
currentRun.rndm

# output from createHTML
_remoll_*.html

# Jupyter checkpoints
.ipynb_checkpoints

# backups etc
*~
*.swp
Expand All @@ -11,7 +22,7 @@ _remoll_*.html
*.DS_Store

#ignore doxygen files for now
doc
Doxygen

#ignore libraries and helper files
*.so
Expand Down Expand Up @@ -49,6 +60,7 @@ log
#ignore project files for eclipse
.cproject
.project
.settings

#ignore build type file
.buildtype
Expand All @@ -62,3 +74,11 @@ sample_gdml.*
#ignore log files
*.log
callgrind.*

# jekyll
_site
.sass-cache
.jekyll-cache
.jekyll-metadata
vendor
Gemfile.lock
90 changes: 53 additions & 37 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,52 +2,68 @@ sudo: required
services:
- docker

script:
- docker build -t jeffersonlab/remoll .
- for suite in load validate overlap ; do
docker run --rm -t jeffersonlab/remoll scripts/tests/test_geometries.sh ${suite} ;
done
- for suite in unit ; do
docker run --rm -t jeffersonlab/remoll scripts/tests/test_macros.sh ${suite} ;
done
- for suite in commit release ; do
docker run -t jeffersonlab/remoll sh -c "
scripts/tests/test_macros.sh ${suite} &&
scripts/tests/targz_macros.sh ${suite} &&
scripts/tests/watermark.sh ${suite}
" || exit 1 ;
docker cp $(docker ps -l -q):"/jlab/remoll/remolltest.*.*.log.tar.gz" . ;
docker cp $(docker ps -l -q):"/jlab/remoll/remolltest.*.*.root.tar.gz" . ;
docker cp $(docker ps -l -q):"/jlab/remoll/remolltest.*.*.analysis.log.tar.gz" . ;
docker cp $(docker ps -l -q):"/jlab/remoll/remolltest.*.*.analysis.pdf.tar.gz" . ;
docker cp $(docker ps -l -q):"/jlab/remoll/remolltest.*.*.analysis.root.tar.gz" . ;
docker cp $(docker ps -l -q):"/jlab/remoll/rootfiles_tests_*_*_analysis.pdf" . ;
docker rm $(docker ps -l -q) ;
done

after_success:
- docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD";
- if [ "$TRAVIS_BRANCH" == "master" ]; then
docker tag jeffersonlab/remoll jeffersonlab/remoll:latest && docker push jeffersonlab/remoll:latest ;
else
docker tag jeffersonlab/remoll jeffersonlab/remoll:$TRAVIS_BRANCH && docker push jeffersonlab/remoll:$TRAVIS_BRANCH ;
fi
jobs:
include:
- stage: build docker image
script:
- docker build -t jeffersonlab/remoll:$TRAVIS_BRANCH .
- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin ;
if [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then
if [ "$TRAVIS_BRANCH" == "master" ]; then
docker tag jeffersonlab/remoll:$TRAVIS_BRANCH jeffersonlab/remoll:latest ;
docker push jeffersonlab/remoll:latest ;
docker tag jeffersonlab/remoll:latest jeffersonlab/remoll:$TRAVIS_BRANCH ;
else
docker push jeffersonlab/remoll:$TRAVIS_BRANCH ;
fi
fi
- stage: tests
script:
- for suite in load validate overlap ; do
echo "=== scripts/tests/test_geometries.sh ${suite} ===" ;
mkdir -p ${PWD}/logfiles ${PWD}/rootfiles ;
time docker run --rm -v ${PWD}/rootfiles:/jlab/remoll/rootfiles -v ${PWD}/logfiles:/jlab/remoll/logfiles -t jeffersonlab/remoll:$TRAVIS_BRANCH sh -c "
scripts/tests/test_geometries.sh ${suite}
" ;
done ;
ls -al ${PWD}/logfiles ${PWD}/rootfiles
- script:
- for suite in unit ; do
echo "=== scripts/tests/test_macros.sh ${suite} ===" ;
mkdir -p ${PWD}/logfiles ${PWD}/rootfiles ;
time docker run --rm -v ${PWD}/rootfiles:/jlab/remoll/rootfiles -v ${PWD}/logfiles:/jlab/remoll/logfiles -t jeffersonlab/remoll:$TRAVIS_BRANCH sh -c "
scripts/tests/test_macros.sh ${suite}
" ;
done ;
ls -al ${PWD}/logfiles ${PWD}/rootfiles
- script:
- for suite in commit ; do
echo "=== scripts/tests/test_macros.sh ${suite} ===" ;
mkdir -p ${PWD}/logfiles ${PWD}/rootfiles ;
time docker run --rm -v ${PWD}/rootfiles:/jlab/remoll/rootfiles -v ${PWD}/logfiles:/jlab/remoll/logfiles -t jeffersonlab/remoll:$TRAVIS_BRANCH sh -c "
scripts/tests/test_macros.sh ${suite} &&
scripts/tests/targz_macros.sh ${suite} &&
scripts/tests/watermark.sh ${suite}
" ;
done ;
ls -al ${PWD}/logfiles ${PWD}/rootfiles
notifications:
slack: jlab12gev:PVp0QYADLTXmFdicK6WXkTGN
slack:
secure: MLIeBG8iFcmiqrUknT3KId+w/ufa93ybUhm9BaYv0OhopdqF7bTW5sPY/8ZKfe7VKkw5UqICloRHkfi9BGza3IJSUi13gSDtVyN5KPb95jRUJuU5yVLrF1cTC77HuuDar1z8RXBwfGE8noVS5ztJM1Svke+U8Ilz2c5aKE9cHyvG5c8ZixKnMyWPRsPLl8gnHwgJRoPMCz1IMcs20Fhtf6K3KcpCQ2X8T7gVGUBf+GOawsmAsF40EvhDtJNh5ZJkqAzzAUFagFVixTJQ1FeCnuiyBDR9oEkrBwc+/tmxI1QvFtDmWi9VTQX0FFLmt9BtwZ4ZZuuBY8TEhAZiqjKwkaN4qduYGxGEQHdm7qFN5Ncmh347W9PPQHfRW/+e0/EF2QiwaTuzD1ElQaG8QCGS9NcM573KfdyVH9+yUbnO/D6r4CudfH3dFBZq3Mx0rQqvY8stHdl2xkjOfocz1cymXUwMbnBMcUFvPrfvEpiTr9d1+VVl36G0MtJMW0FEbb7cL6c7kwo69oCLv7+16z9phd93u0wfdisGfR4/AZgQQ3pK/0eMjHV2f1sRe2AyJzgT9TwrrKmDnvPMjYMU3lBtUuN6i9i/6exVmEMszyELh0qqgHz3Amxlx3EsfkzFodPK8DirBCE0ydEBkpWh753zJI0+G9KWHAdFTupki49Qdfw=
deploy:
provider: releases
api_key:
secure: MzvvPA8KxYjEVa8C9rNtAQbtD+mDx2Wn3Em02JKMtwv953Htnv3zRcyGPfF++sLV80RvZ8NZ8pN3WfiAPTBHatUSgWh9w+GRv0G366wxKrAS4O+9BVy96U7A0gFkaXRwXirJWo4u2lJscQ1hC2IDbI2dGAS/VF5Lt1TLjWcPUL8LPcKgF80FG8+9+BUH1cRiW8mULT36EeVAB1K+vwO6Qob5k4ef66eHjkbdpuUktDr6wrehoyGXtFiBfl+XWotvcrer/51J6wn85UqCc/A+KYrVshBH/gKCD7/w6D2akNM2/sJcFdLzv5WkaQOwplsAYuzLn1cNRUKbWay5ClCSm6rsoHGfaagW4/wXk9TxqJhcdmNZ+eeAvNXAxJIeRvb82pwANlSJ658FBw2ov75p3Y6rjvc8CUPsxBXZkw3dzOgwTdjmJI9q+aD4GuVeGiq9MdyJDgXUjxlP2qEtcLJfvvF9q5Bnzy+hoAV+A5yHg0lR0VjsUem2+CdexuHb/LJLx4YVkSrCSyEELAsfyJTCYNLaMKrWKujelqtKwXy4H/rwzaja6IBP77gkisNI82bvnrzn/QsvnueGyWSu/Z2HC2M/d6WAQAl3Et9W6kOb7MK+NAmEMOTW7tzaxjD+lq8aOiLJYndrOYaymin5GLNk3F2iqZMkhMCRC2YcstNr61w=
file_glob: true
file:
- "remolltest.*.*.log.tar.gz"
- "remolltest.*.*.root.tar.gz"
- "remolltest.*.*.analysis.log.tar.gz"
- "remolltest.*.*.analysis.pdf.tar.gz"
- "remolltest.*.*.analysis.root.tar.gz"
- "rootfiles_tests_*_*_analysis.pdf"
- "logfiles/remoll.*.*.log.tar.gz"
- "logfiles/remoll.*.*.analysis.log.tar.gz"
- "rootfiles/remoll.*.*.root.tar.gz"
- "rootfiles/remoll.*.*.analysis.root.tar.gz"
- "rootfiles/remoll.*.*.analysis.pdf.tar.gz"
- "rootfiles/remoll_*_*_analysis_book.pdf"
skip_cleanup: true
on:
repo: JeffersonLab/remoll
Expand Down
63 changes: 50 additions & 13 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Setup the project
#
cmake_minimum_required(VERSION 3.5)
project(remoll VERSION 0.1 LANGUAGES CXX)
project(remoll VERSION 0.1 LANGUAGES CXX C)

# Disallow in-source builds
if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
Expand Down Expand Up @@ -305,33 +305,70 @@ set(REMOLL_LOCATION /group/halla/www/hallaweb/html/12GeV/Moller/downloads/remoll
set(REMOLL_DOWNLOADS http://hallaweb.jlab.org/12GeV/Moller/downloads/remoll/)
set(REMOLL_MAP_DIR ${PROJECT_SOURCE_DIR}/map_directory)
if(EXISTS ${REMOLL_LOCATION})
message(STATUS "Copying files directly from directory...")
set(REMOLL_DOWNLOADS file://${REMOLL_LOCATION})
else()
message(STATUS "Fieldmaps will be downloaded from web...")
endif()
file(DOWNLOAD
${REMOLL_DOWNLOADS}/blockyUpstream_rm_1.1.txt
${REMOLL_MAP_DIR}/blockyUpstream_rm_1.1.txt
EXPECTED_MD5 3e2338e1ba74b03da37545e98931f5f3)
${REMOLL_DOWNLOADS}/hybridJLAB.txt
${REMOLL_MAP_DIR}/hybridJLAB.txt
EXPECTED_MD5 c2da18fd7ab80cc4abe7eafc487963dc
)
file(DOWNLOAD
${REMOLL_DOWNLOADS}/blockyHybrid_rm_3.0.txt
${REMOLL_MAP_DIR}/blockyHybrid_rm_3.0.txt
EXPECTED_MD5 b4bfef8f362e0df66f166b4e76a6847e)
${REMOLL_DOWNLOADS}/upstreamJLAB_1.25.txt
${REMOLL_MAP_DIR}/upstreamJLAB_1.25.txt
EXPECTED_MD5 af06ed35516c17640e89ba3aa0f5b200
)
file(DOWNLOAD
${REMOLL_DOWNLOADS}/hybridJLAB_v2.txt
${REMOLL_MAP_DIR}/hybridJLAB_v2.txt
EXPECTED_MD5 4a0d1abc9b80cf5f2c3dd495a1133e26
)
file(DOWNLOAD
${REMOLL_DOWNLOADS}/segmentedJLAB_v2.txt
${REMOLL_MAP_DIR}/segmentedJLAB_v2.txt
EXPECTED_MD5 2a21b540f6496e3f554302f369646bbb
)
file(DOWNLOAD
${REMOLL_DOWNLOADS}/upstreamJLAB_v2.txt
${REMOLL_MAP_DIR}/upstreamJLAB_v2.txt
EXPECTED_MD5 bed73f2ea44135c52222bc8e767e1954
)
install(FILES
${REMOLL_MAP_DIR}/blockyHybrid_rm_3.0.txt
${REMOLL_MAP_DIR}/blockyUpstream_rm_1.1.txt
${REMOLL_MAP_DIR}/hybridJLAB.txt
${REMOLL_MAP_DIR}/upstreamJLAB_1.25.txt
${REMOLL_MAP_DIR}/hybridJLAB_v2.txt
${REMOLL_MAP_DIR}/segmentedJLAB_v2.txt
${REMOLL_MAP_DIR}/upstreamJLAB_v2.txt
DESTINATION ${CMAKE_INSTALL_DATADIR}/remoll)
if(ADDITIONAL_FIELDS)
message(STATUS "Ensuring additional fields are available")
file(DOWNLOAD
${REMOLL_DOWNLOADS}/blockyUpstream_rm_1.1.txt
${REMOLL_MAP_DIR}/blockyUpstream_rm_1.1.txt
EXPECTED_MD5 3e2338e1ba74b03da37545e98931f5f3
)
file(DOWNLOAD
${REMOLL_DOWNLOADS}/blockyHybrid_rm_3.0.txt
${REMOLL_MAP_DIR}/blockyHybrid_rm_3.0.txt
EXPECTED_MD5 b4bfef8f362e0df66f166b4e76a6847e
)
file(DOWNLOAD
${REMOLL_DOWNLOADS}/upstreamSymmetric_sensR_0.1.txt
${REMOLL_MAP_DIR}/upstreamSymmetric_sensR_0.1.txt
EXPECTED_MD5 849d9dc5abab0842fc13fef7f4918648)
EXPECTED_MD5 849d9dc5abab0842fc13fef7f4918648
)
file(DOWNLOAD
${REMOLL_DOWNLOADS}/hybridSymmetric_sensR_0.1.txt
${REMOLL_MAP_DIR}/hybridSymmetric_sensR_0.1.txt
EXPECTED_MD5 78fad2ffa5b5ae129df11bdf0ce25333)
EXPECTED_MD5 78fad2ffa5b5ae129df11bdf0ce25333
)
install(FILES
${REMOLL_MAP_DIR}/upstreamSymmetric_sensR_0.0.txt
${REMOLL_MAP_DIR}/hybridSymmetric_sensR_0.0.txt
${REMOLL_MAP_DIR}/blockyHybrid_rm_3.0.txt
${REMOLL_MAP_DIR}/blockyUpstream_rm_1.1.txt
${REMOLL_MAP_DIR}/upstreamSymmetric_sensR_0.1.txt
${REMOLL_MAP_DIR}/hybridSymmetric_sensR_0.1.txt
DESTINATION ${CMAKE_INSTALL_DATADIR}/remoll)
else()
message(STATUS "Download additional fields with '-DADDITIONAL_FIELDS=ON'.")
Expand Down
65 changes: 45 additions & 20 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,36 +1,61 @@
FROM jeffersonlab/jlabce:2.3
# Instructions for building remoll, a Docker image for the MOLLER experiment.
#
# Instructions for building the remoll image:
# docker build -t jeffersonlab/remoll:latest .
# Instructions for building the remoll image without cache:
# docker build --no-cache -t jeffersonlab/remoll:latest .
# Sharing the remoll image on DockerHub:
# docker push jeffersonlab/remoll:latest
#
# Running the container with docker:
# docker run --rm -it jeffersonlab/remoll:latest remoll macros/runexample.mac
#
# Running the container with singularity:
# singularity build --disable-cache --fix-perms --sandbox remoll:latest docker-daemon://jeffersonlab/remoll:latest
# singularity run remoll:latest remoll macros/runexample.mac
# Note: building a sandbox image may not work on all filesystem or on
# hyperlinked directories. Make sure you are in an actual directory with:
# cd `readlink -f .`
#

FROM jeffersonlab/jlabce:2.3-mt

# Install libgcj and pdftk
RUN wget https://copr.fedorainfracloud.org/coprs/robert/gcj/repo/epel-7/robert-gcj-epel-7.repo -P /etc/yum.repos.d && \
wget https://copr.fedorainfracloud.org/coprs/robert/pdftk/repo/epel-7/robert-pdftk-epel-7.repo -P /etc/yum.repos.d && \
yum install -y pdftk ghostscript
RUN wget -q https://copr.fedorainfracloud.org/coprs/robert/gcj/repo/epel-7/robert-gcj-epel-7.repo -P /etc/yum.repos.d && \
wget -q https://copr.fedorainfracloud.org/coprs/robert/pdftk/repo/epel-7/robert-pdftk-epel-7.repo -P /etc/yum.repos.d && \
yum install -q -y pdftk ghostscript

# Add Tini entry point
ENV TINI_VERSION v0.19.0
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini
RUN chmod +x /tini

# Set JLab CE version
ENV JLAB_VERSION=2.3
ENV JLAB_ROOT=/jlab
ENV JLAB_SOFTWARE=/jlab/2.3/Linux_CentOS7.2.1511-x86_64-gcc4.8.5

# Set remoll location
ENV REMOLL=/jlab/remoll

WORKDIR $REMOLL

# Compile remoll
ADD . .
RUN source $JLAB_ROOT/$JLAB_VERSION/ce/jlab.sh && \
WORKDIR $REMOLL
COPY . .
RUN source /etc/profile && \
mkdir -p $REMOLL/build && \
pushd $REMOLL/build && \
cmake .. && \
make -j$(nproc) && \
make install
make install && \
make clean

# Environment through /etc/profile
RUN ln -sf $REMOLL/bin/remoll.csh /etc/profile.d/remoll.csh
RUN ln -sf $REMOLL/bin/remoll.sh /etc/profile.d/remoll.sh

# Create environment point bash script
RUN echo '#!/bin/bash' > /entrypoint.sh && \
echo 'unset OSRELEASE' >> /entrypoint.sh && \
echo 'source $JLAB_ROOT/$JLAB_VERSION/ce/jlab.sh' >> /entrypoint.sh && \
echo 'export PATH=${REMOLL}/bin:${PATH}' >> /entrypoint.sh && \
echo 'export REMOLL=${REMOLL}' >> /entrypoint.sh && \
echo 'cd $REMOLL && exec "$@"' >> /entrypoint.sh && \
chmod +x /entrypoint.sh
# Override JLab CE environment for container use
COPY docker/jlab.sh /jlab/${JLAB_VERSION}/ce/jlab.sh

ENTRYPOINT ["/entrypoint.sh"]
# Entry point loads the environment
ENTRYPOINT ["/tini", "--", "bash", "-c", "source /etc/profile && \"$@\"", "-s"]

CMD ["build/remoll","-h"]
CMD ["remoll"]
Loading

0 comments on commit 2a31f1c

Please sign in to comment.