forked from laristra/flecsi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
145 lines (132 loc) · 6.13 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
140
141
142
143
144
145
language: cpp
sudo: required
services:
- docker
branches:
only:
- master
- /^stable\/.*$/
cache:
ccache: true
stages:
- name: canary
- name: coverage
if: type = pull_request
- name: test
if: type != pull_request
jobs:
fast_finish: true
include:
- stage: canary
env: DISTRO=ubuntu RUNTIME=legion BUILD_TYPE=Release
compiler: gcc
- env: DISTRO=ubuntu RUNTIME=mpi BUILD_TYPE=Release
compiler: gcc
- stage: coverage
env: DISTRO=fedora_mpich RUNTIME=legion COVERAGE=ON BUILD_TYPE=Release
compiler: gcc
- env: DISTRO=fedora_mpich RUNTIME=mpi COVERAGE=ON BUILD_TYPE=Release
compiler: gcc
- env: DISTRO=fedora_mpich RUNTIME=hpx COVERAGE=ON BUILD_TYPE=Release
compiler: gcc
- env: DISTRO=fedora_mpich RUNTIME=legion COVERAGE=ON BUILD_TYPE=Release CLANG_FORMAT=yes
compiler: clang
- env: DISTRO=fedora_mpich RUNTIME=mpi COVERAGE=ON BUILD_TYPE=Release CLANG_FORMAT=yes
compiler: clang
- env: DISTRO=fedora_mpich RUNTIME=hpx COVERAGE=ON BUILD_TYPE=Release
compiler: clang
allow_failures:
- env: DISTRO=fedora_mpich RUNTIME=hpx COVERAGE=ON BUILD_TYPE=Release
compiler: gcc
- env: DISTRO=fedora_mpich RUNTIME=hpx COVERAGE=ON BUILD_TYPE=Release
compiler: clang
- env: DISTRO=fedora_mpich RUNTIME=hpx BUILD_TYPE=Release
compiler: gcc
- env: DISTRO=fedora_mpich RUNTIME=hpx BUILD_TYPE=Release
compiler: clang
- env: DISTRO=ubuntu_mpich RUNTIME=legion BUILD_TYPE=Release
compiler: gcc
- env: DISTRO=ubuntu_mpich RUNTIME=legion BUILD_TYPE=Release
compiler: clang
compiler:
- gcc
- clang
env:
matrix:
- DISTRO=ubuntu RUNTIME=legion BUILD_TYPE=Release
- DISTRO=ubuntu RUNTIME=mpi BUILD_TYPE=Release
- DISTRO=ubuntu_mpich RUNTIME=legion BUILD_TYPE=Release
- DISTRO=ubuntu_mpich RUNTIME=mpi BUILD_TYPE=Release
- DISTRO=fedora RUNTIME=legion BUILD_TYPE=Release
- DISTRO=fedora RUNTIME=mpi BUILD_TYPE=Release
- DISTRO=fedora_mpich RUNTIME=legion BUILD_TYPE=Release
- DISTRO=fedora_mpich RUNTIME=mpi BUILD_TYPE=Release
- DISTRO=fedora_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
script:
- cp -vr docker ${HOME}/docker
- sed -i "1s/fedora/${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} != stable ]]; then TAG="${TAG}_${TRAVIS_BRANCH//[^a-zA-Z0-9]/_}"; fi
- travis_retry timeout 540 docker pull $(sed -n '1s/FROM //p' ${HOME}/docker/Dockerfile)
- docker build
--build-arg DISTRO=${DISTRO}
--build-arg LEGION=${LEGION}
--build-arg BUILD_TYPE=${BUILD_TYPE}
--build-arg RUNTIME=${RUNTIME}
--build-arg CXXFLAGS="${WERROR:+-Werror} -Wno-deprecated-declarations"
--build-arg COVERAGE=${COVERAGE}
--build-arg MINIMAL=${MINIMAL}
--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}_${RUNTIME}${TAG} ${HOME}/docker/ &&
rm -rf ${HOME}/.ccache &&
CON=$(docker run -d ${TRAVIS_REPO_SLUG}:${DISTRO}_${RUNTIME}${TAG} /bin/bash) &&
docker cp ${CON}:/home/flecsi/.ccache ${HOME}/
after_success:
- shopt -s extglob && [[ ${TRAVIS_BRANCH} = @(master|stable) ]] && 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}_${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:
- master
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=