-
Notifications
You must be signed in to change notification settings - Fork 34
/
.travis.yml
139 lines (126 loc) · 6.17 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
language: cpp
sudo: required
services:
- docker
branches:
only:
- "1"
- "1.4"
cache:
ccache: true
stages:
- name: canary
if: type = pull_request
- name: coverage
- name: test
if: type != pull_request
jobs:
fast_finish: true
include:
- stage: canary
env: DISTRO=fedora30 MPI_PACKAGE=openmpi RUNTIME=legion BUILD_TYPE=Release
compiler: gcc
- env: DISTRO=fedora30 MPI_PACKAGE=openmpi RUNTIME=mpi BUILD_TYPE=Release
compiler: gcc
- env: DISTRO=fedora30 MPI_PACKAGE=openmpi RUNTIME=hpx BUILD_TYPE=Release
compiler: gcc
- stage: coverage
env: DISTRO=ubuntu18 MPI_PACKAGE=mpich RUNTIME=legion COVERAGE=ON BUILD_TYPE=Release CLANG_FORMAT=yes
compiler: clang
- env: DISTRO=ubuntu18 MPI_PACKAGE=mpich RUNTIME=mpi COVERAGE=ON BUILD_TYPE=Release CLANG_FORMAT=yes
compiler: clang
- env: DISTRO=ubuntu18 MPI_PACKAGE=mpich RUNTIME=hpx COVERAGE=ON BUILD_TYPE=Release CLANG_FORMAT=yes
compiler: clang
allow_failures:
- env: DISTRO=fedora30 MPI_PACKAGE=openmpi RUNTIME=hpx BUILD_TYPE=Release
compiler: gcc
- env: DISTRO=ubuntu18 MPI_PACKAGE=mpich RUNTIME=hpx COVERAGE=ON BUILD_TYPE=Release CLANG_FORMAT=yes
compiler: clang
- env: DISTRO=fedora30 MPI_PACKAGE=openmpi RUNTIME=hpx BUILD_TYPE=Release
compiler: gcc
- env: DISTRO=fedora30 MPI_PACKAGE=openmpi RUNTIME=hpx BUILD_TYPE=Release
compiler: clang
- env: DISTRO=ubuntu18 MPI_PACKAGE=mpich RUNTIME=hpx BUILD_TYPE=Release
compiler: gcc
- env: DISTRO=ubuntu18 MPI_PACKAGE=mpich RUNTIME=hpx BUILD_TYPE=Release
compiler: clang
compiler:
- gcc
- clang
env:
matrix:
- DISTRO=fedora30 MPI_PACKAGE=openmpi RUNTIME=legion BUILD_TYPE=Release DEPLOY=yes
- DISTRO=fedora30 MPI_PACKAGE=openmpi RUNTIME=mpi BUILD_TYPE=Release DEPLOY=yes
- DISTRO=fedora30 MPI_PACKAGE=openmpi RUNTIME=hpx BUILD_TYPE=Release
- DISTRO=ubuntu18 MPI_PACKAGE=mpich RUNTIME=legion BUILD_TYPE=Release DEPLOY=yes
- DISTRO=ubuntu18 MPI_PACKAGE=mpich RUNTIME=mpi BUILD_TYPE=Release DEPLOY=yes
- DISTRO=ubuntu18 MPI_PACKAGE=mpich RUNTIME=hpx BUILD_TYPE=Release
before_install:
- git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
#- git fetch --unshallow && git fetch --tags #for versioning
- git show-ref --tags
script:
- cp -vr docker ${HOME}/docker
- sed -i "1s/fedora30/${DISTRO}/" ${HOME}/docker/Dockerfile
- cd ../../
- mv -v ${TRAVIS_REPO_SLUG} $HOME/docker
- cp -r $HOME/.ccache ${HOME}/docker/ccache
- if [[ ${CC} != gcc ]]; then TAG="_${CC}"; fi
- if [[ ${TRAVIS_BRANCH} != "1.4" ]]; then TAG="${TAG}_${TRAVIS_BRANCH//[^a-zA-Z0-9]/_}"; fi
- travis_retry timeout 540 docker pull $(sed -n '1s/FROM //p' ${HOME}/docker/Dockerfile)
- travis_wait 60 docker build
--build-arg DISTRO=${DISTRO}
--build-arg MPI_PACKAGE=${MPI_PACKAGE}
--build-arg BUILD_TYPE=${BUILD_TYPE}
--build-arg RUNTIME=${RUNTIME}
--build-arg CXXFLAGS="${WERROR:+-Werror} -Wno-deprecated-declarations"
--build-arg COVERAGE=${COVERAGE}
--build-arg CLANG_FORMAT=${CLANG_FORMAT}
--build-arg CC=${CC} --build-arg CXX=${CXX}
--build-arg CI=${CI} --build-arg TRAVIS=${TRAVIS} --build-arg TRAVIS_OS_NAME=${DISTRO}
--build-arg IGNORE_NOCI=${IGNORE_NOCI}
--build-arg TRAVIS_BRANCH=${TRAVIS_BRANCH} --build-arg TRAVIS_JOB_NUMBER=${TRAVIS_JOB_NUMBER}
--build-arg TRAVIS_PULL_REQUEST=${TRAVIS_PULL_REQUEST} --build-arg TRAVIS_JOB_ID=${TRAVIS_JOB_ID}
--build-arg TRAVIS_TAG=${TRAVIS_TAG} --build-arg TRAVIS_REPO_SLUG=${TRAVIS_REPO_SLUG}
--build-arg TRAVIS_COMMIT=${TRAVIS_COMMIT}
-t ${TRAVIS_REPO_SLUG}:${DISTRO}_${MPI_PACKAGE}_${RUNTIME}${TAG} ${HOME}/docker/ &&
rm -rf ${HOME}/.ccache &&
CON=$(docker run -d ${TRAVIS_REPO_SLUG}:${DISTRO}_${MPI_PACKAGE}_${RUNTIME}${TAG} /bin/bash) &&
docker cp ${CON}:/home/laristra/.ccache ${HOME}/
after_success:
- shopt -s extglob && [[ ${TRAVIS_BRANCH} = @(master|stable|1.4) ]] && DEPLOY=yes
- if [[ ${TRAVIS_BUILD_STAGE_NAME} = test && ${DEPLOY} = yes && ${DOCKER_USERNAME} && ${DOCKER_PASSWORD} && ${TRAVIS_PULL_REQUEST} == false ]]; then
docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD";
docker push "${TRAVIS_REPO_SLUG}:${DISTRO}_${MPI_PACKAGE}_${RUNTIME}${TAG}";
fi
- if [[ ${TRAVIS_BRANCH} = master && ${TRAVIS_PULL_REQUEST} == false && ${TRAVIS_JOB_NUMBER} = *.1 ]]; then
cd $HOME/docker/flecsi;
rm -rf cinch;
git fetch origin gh-pages && git checkout -b gh-pages FETCH_HEAD;
if [[ ${encrypted_5669a181ba27_key} && ${encrypted_5669a181ba27_iv} ]]; then
git config --global user.name "Automatic Cleanup (Travis CI)";
git config --global user.email "flecsi-commit@lanl.gov";
git commit -m "PR Branches Cleanup";
openssl aes-256-cbc -K $encrypted_5669a181ba27_key -iv $encrypted_5669a181ba27_iv -in deploy.enc -out ~/.ssh/id_rsa -d;
chmod 600 ~/.ssh/id_rsa;
for k in $(git branch | sed /\*/d); do
if [ -z "$(git log -1 --since='1 year ago' -s $k)" ]; then
if [ ${k%_*} == "PR" ]; then
git push --delete origin $k;
git branch -d $k;
fi;
fi;
done;
else
git status;
git diff --cached --no-color | head -n 500;
fi;
fi
notifications:
branches:
only:
- "1"
- "1.4"
email:
recipients:
secure: OzppTS3kOkp5+052T8DMtXiNmUO5OttAY01kC1lDqwdPVAQiFvrnR3iqz/AJIJk5bNsI0vbmRtCBL4PnH3aUm7CUpXN3RF7vF0vpl0PxPMc/Ms4Trsrv96jqPyoJoACRqgk6W7/pdr8OXbYTh+7u2bO9/sUaZTDT/PbH9RQdKrDa2u+uebL9s0FTo/ObZSNXRAoXmSY46gDXzWbEVO2co6ETu4eXy/Bu0wvhB4jXneA+0sv8dXAmRmvL1tsxTeAEcV2MxLlaiVPAyvpCLzt3ZRvkohAjCeQaVTTo8hP0S7YdAMwUmAcMI8NASWVh8fcaFV72IsFkg7nD2Jiv7mRt52vwqDiJLw65LN9/+ltrK142F/nFUSeB9ynPBjbpXyEMl4nsBbO9hk5io4lKYQ/EJ2WJyCPaFtuy1fR9Gzrjj/LwKPw2WrxAlrlNYlIFdMDvltTXGegheVNePDHSOc6AS/32VW4A8fZh5gUAfB96XveRj0fGegCyFdIzErZg4fiZxOEDkqeB8sxuPnX+ylKr2gWsjpfs+etjnANVsgfPMOWaIsW8K2FqVIiTEoGGELoQHEe5uzOcXgtRQSbji2U28c5pRhNHdoitODwlTMVE/3WEiQksFGztR675LlPfF15+HyjWnAS/gN5vLIqmrQoZcp1+Pbr4ebxwTcL4JSGUaPs=