From 13070ca7c0b00c3a93e287f7d4105270b293d7bd Mon Sep 17 00:00:00 2001 From: Tom Williams Date: Sun, 16 Jul 2017 00:49:36 +0100 Subject: [PATCH 1/7] CI : Update output directories for doxygen and build jobs; refs issue #51 --- .gitlab-ci.yml | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 465ed2fb3..30c109612 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,7 +8,7 @@ stages: variables: GITHUB_REPO_API_URL: "https://api.github.com/repos/ipbus/ipbus-software" - BUILD_OUTPUT_ROOT_DIR: "/afs/cern.ch/user/i/ipbusci/public/sw-gitlab-ci/commits" + BUILD_OUTPUT_ROOT_DIR: "/eos/user/i/ipbusci/sw-gitlab-ci/commits" BUILD_OUTPUT_ROOT_URL: "http://www.cern.ch/ipbus/sw/ci/commits" @@ -81,8 +81,9 @@ doxygen_job: - ls -al /tmp - echo "${KRB_PASSWORD}" | kinit ${KRB_USERNAME}@CERN.CH - klist - - ssh ${KRB_USERNAME}@lxplus "mkdir -p ${BUILD_OUTPUT_ROOT_DIR}/${CI_PIPELINE_ID}_${CI_BUILD_REF}" - - scp -r /tmp/api_uhal ${KRB_USERNAME}@lxplus:${BUILD_OUTPUT_ROOT_DIR}/${CI_PIPELINE_ID}_${CI_BUILD_REF}/ + - ssh ${KRB_USERNAME}@lxplus "mkdir -p ${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/${CI_PIPELINE_ID}" + - ssh ${KRB_USERNAME}@lxplus "ln -sfn ${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/${CI_PIPELINE_ID} ${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/latest" + - rsync -av /tmp/api_uhal ${KRB_USERNAME}@lxplus:${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/${CI_PIPELINE_ID}/ artifacts: untracked: true when: always @@ -119,8 +120,9 @@ build:centos7: - createrepo -vg yumgroups-centos7.xml cc7_rpms/ - echo "${KRB_PASSWORD}" | kinit ${KRB_USERNAME}@CERN.CH - klist - - ssh ${KRB_USERNAME}@lxplus "mkdir -p ${BUILD_OUTPUT_ROOT_DIR}/${CI_PIPELINE_ID}_${CI_BUILD_REF}" - - scp -r cc7_rpms ${KRB_USERNAME}@lxplus:${BUILD_OUTPUT_ROOT_DIR}/${CI_PIPELINE_ID}_${CI_BUILD_REF}/centos7_x86_64 + - ssh ${KRB_USERNAME}@lxplus "mkdir -p ${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/${CI_PIPELINE_ID}" + - ssh ${KRB_USERNAME}@lxplus "ln -sfn ${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/${CI_PIPELINE_ID} ${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/latest" + - rsync -av cc7_rpms/ ${KRB_USERNAME}@lxplus:${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/${CI_PIPELINE_ID}/centos7_x86_64 build:slc6: @@ -150,8 +152,9 @@ build:slc6: - createrepo -vg yumgroups-slc6.xml slc6_rpms - echo "${KRB_PASSWORD}" | kinit ${KRB_USERNAME}@CERN.CH - klist - - ssh ${KRB_USERNAME}@lxplus "mkdir -p ${BUILD_OUTPUT_ROOT_DIR}/${CI_PIPELINE_ID}_${CI_BUILD_REF}" - - scp -r slc6_rpms ${KRB_USERNAME}@lxplus:${BUILD_OUTPUT_ROOT_DIR}/${CI_PIPELINE_ID}_${CI_BUILD_REF}/slc6_x86_64 + - ssh ${KRB_USERNAME}@lxplus "mkdir -p ${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/${CI_PIPELINE_ID}" + - ssh ${KRB_USERNAME}@lxplus "ln -sfn ${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/${CI_PIPELINE_ID} ${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/latest" + - rsync -av slc6_rpms/ ${KRB_USERNAME}@lxplus:${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/${CI_PIPELINE_ID}/slc6_x86_64 @@ -165,7 +168,7 @@ build:slc6: before_script: - echo "[ipbus-sw-ci]" | sudo tee /etc/yum.repos.d/ipbus-sw.repo - echo "name=CACTUS Project Software Repository" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - - echo "baseurl=${BUILD_OUTPUT_ROOT_URL}/${CI_PIPELINE_ID}_${CI_BUILD_REF}/slc6_x86_64" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo + - echo "baseurl=${BUILD_OUTPUT_ROOT_URL}/${CI_BUILD_REF}/${CI_PIPELINE_ID}/slc6_x86_64" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - echo "enabled=1" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - echo "gpgcheck=0" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - sudo yum clean all @@ -183,7 +186,7 @@ build:slc6: before_script: - echo "[ipbus-sw-ci]" | sudo tee /etc/yum.repos.d/ipbus-sw.repo - echo "name=CACTUS Project Software Repository" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - - echo "baseurl=${BUILD_OUTPUT_ROOT_URL}/${CI_PIPELINE_ID}_${CI_BUILD_REF}/centos7_x86_64" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo + - echo "baseurl=${BUILD_OUTPUT_ROOT_URL}/${CI_BUILD_REF}/${CI_PIPELINE_ID}/centos7_x86_64" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - echo "enabled=1" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - echo "gpgcheck=0" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - sudo yum clean all From f58a88cdcb40b35f7ff3db20a076e22eead3e343 Mon Sep 17 00:00:00 2001 From: Tom Williams Date: Sun, 16 Jul 2017 22:54:53 +0100 Subject: [PATCH 2/7] CI : Enable main jobs to run on tags as well as commits, storing output in separate directories; refs issue #51 --- .gitlab-ci.yml | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 30c109612..1692f7ae5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,8 +8,8 @@ stages: variables: GITHUB_REPO_API_URL: "https://api.github.com/repos/ipbus/ipbus-software" - BUILD_OUTPUT_ROOT_DIR: "/eos/user/i/ipbusci/sw-gitlab-ci/commits" - BUILD_OUTPUT_ROOT_URL: "http://www.cern.ch/ipbus/sw/ci/commits" + OUTPUT_ROOT_DIR: "/eos/user/i/ipbusci/sw-gitlab-ci" + OUTPUT_ROOT_URL: "http://www.cern.ch/ipbus/sw/ci" @@ -57,7 +57,6 @@ doxygen_job: tags: - docker except: - - tags - triggers before_script: - sudo yum -y install graphviz @@ -75,15 +74,17 @@ doxygen_job: - echo " GSSAPITrustDns yes" >> ~/.ssh/config - echo " GSSAPIAuthentication yes" >> ~/.ssh/config - echo " GSSAPIDelegateCredentials yes" >> ~/.ssh/config + - export OUTPUT_PIPELINE_DIR=${OUTPUT_ROOT_DIR}/commits/${CI_COMMIT_TAG:-${CI_COMMIT_SHA}}/pipeline${CI_PIPELINE_ID} + - if [ -n "${CI_COMMIT_TAG}" ]; then export OUTPUT_PIPELINE_DIR=${OUTPUT_PIPELINE_DIR/commits/tags} ; fi script: - env | grep -v PASSWORD | grep -v TOKEN - - ./scripts/doxygen/api_uhal.sh "(commit ${CI_COMMIT_SHA})" + - ./scripts/doxygen/api_uhal.sh "(${CI_COMMIT_TAG:-commit ${CI_COMMIT_SHA}})" - ls -al /tmp - echo "${KRB_PASSWORD}" | kinit ${KRB_USERNAME}@CERN.CH - klist - - ssh ${KRB_USERNAME}@lxplus "mkdir -p ${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/${CI_PIPELINE_ID}" - - ssh ${KRB_USERNAME}@lxplus "ln -sfn ${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/${CI_PIPELINE_ID} ${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/latest" - - rsync -av /tmp/api_uhal ${KRB_USERNAME}@lxplus:${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/${CI_PIPELINE_ID}/ + - ssh ${KRB_USERNAME}@lxplus "mkdir -p ${OUTPUT_PIPELINE_DIR}" + - ssh ${KRB_USERNAME}@lxplus "ln -sfn ${OUTPUT_PIPELINE_DIR} `dirname ${OUTPUT_PIPELINE_DIR}`/latest" + - rsync -av /tmp/api_uhal ${KRB_USERNAME}@lxplus:${OUTPUT_PIPELINE_DIR}/ artifacts: untracked: true when: always @@ -98,7 +99,6 @@ build:centos7: tags: - docker except: - - tags - triggers before_script: - sudo yum -y install boost-devel pugixml-devel @@ -109,6 +109,8 @@ build:centos7: - echo " GSSAPITrustDns yes" >> ~/.ssh/config - echo " GSSAPIAuthentication yes" >> ~/.ssh/config - echo " GSSAPIDelegateCredentials yes" >> ~/.ssh/config + - export OUTPUT_PIPELINE_DIR=${OUTPUT_ROOT_DIR}/commits/${CI_COMMIT_TAG:-${CI_COMMIT_SHA}}/pipeline${CI_PIPELINE_ID} + - if [ -n "${CI_COMMIT_TAG}" ]; then export OUTPUT_PIPELINE_DIR=${OUTPUT_PIPELINE_DIR/commits/tags} ; fi script: - env | grep -v PASSWORD | grep -v TOKEN - make -k Set=all @@ -120,9 +122,9 @@ build:centos7: - createrepo -vg yumgroups-centos7.xml cc7_rpms/ - echo "${KRB_PASSWORD}" | kinit ${KRB_USERNAME}@CERN.CH - klist - - ssh ${KRB_USERNAME}@lxplus "mkdir -p ${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/${CI_PIPELINE_ID}" - - ssh ${KRB_USERNAME}@lxplus "ln -sfn ${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/${CI_PIPELINE_ID} ${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/latest" - - rsync -av cc7_rpms/ ${KRB_USERNAME}@lxplus:${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/${CI_PIPELINE_ID}/centos7_x86_64 + - ssh ${KRB_USERNAME}@lxplus "mkdir -p ${OUTPUT_PIPELINE_DIR}" + - ssh ${KRB_USERNAME}@lxplus "ln -sfn ${OUTPUT_PIPELINE_DIR} `dirname ${OUTPUT_PIPELINE_DIR}`/latest" + - rsync -av cc7_rpms/ ${KRB_USERNAME}@lxplus:${OUTPUT_PIPELINE_DIR}/centos7_x86_64 build:slc6: @@ -131,7 +133,6 @@ build:slc6: tags: - docker except: - - tags - triggers before_script: - sudo yum -y install createrepo krb5-workstation openssh-clients @@ -141,6 +142,8 @@ build:slc6: - echo " GSSAPITrustDns yes" >> ~/.ssh/config - echo " GSSAPIAuthentication yes" >> ~/.ssh/config - echo " GSSAPIDelegateCredentials yes" >> ~/.ssh/config + - export OUTPUT_PIPELINE_DIR=${OUTPUT_ROOT_DIR}/commits/${CI_COMMIT_TAG:-${CI_COMMIT_SHA}}/pipeline${CI_PIPELINE_ID} + - if [ -n "${CI_COMMIT_TAG}" ]; then export OUTPUT_PIPELINE_DIR=${OUTPUT_PIPELINE_DIR/commits/tags} ; fi script: - env | grep -v PASSWORD | grep -v TOKEN - make -k Set=all @@ -152,9 +155,9 @@ build:slc6: - createrepo -vg yumgroups-slc6.xml slc6_rpms - echo "${KRB_PASSWORD}" | kinit ${KRB_USERNAME}@CERN.CH - klist - - ssh ${KRB_USERNAME}@lxplus "mkdir -p ${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/${CI_PIPELINE_ID}" - - ssh ${KRB_USERNAME}@lxplus "ln -sfn ${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/${CI_PIPELINE_ID} ${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/latest" - - rsync -av slc6_rpms/ ${KRB_USERNAME}@lxplus:${BUILD_OUTPUT_ROOT_DIR}/${CI_BUILD_REF}/${CI_PIPELINE_ID}/slc6_x86_64 + - ssh ${KRB_USERNAME}@lxplus "mkdir -p ${OUTPUT_PIPELINE_DIR}" + - ssh ${KRB_USERNAME}@lxplus "ln -sfn ${OUTPUT_PIPELINE_DIR} `dirname ${OUTPUT_PIPELINE_DIR}`/latest" + - rsync -av slc6_rpms/ ${KRB_USERNAME}@lxplus:${OUTPUT_PIPELINE_DIR}/slc6_x86_64 @@ -162,13 +165,14 @@ build:slc6: stage: test image: tswilliams/ipbus-sw-dev-slc6:latest except: - - tags - triggers dependencies: [] before_script: + - export OUTPUT_PIPELINE_URL=${OUTPUT_ROOT_URL}/commits/${CI_COMMIT_TAG:-${CI_COMMIT_SHA}}/pipeline${CI_PIPELINE_ID} + - if [ -n "${CI_COMMIT_TAG}" ]; then export OUTPUT_PIPELINE_URL=${OUTPUT_PIPELINE_URL/commits/tags} ; fi - echo "[ipbus-sw-ci]" | sudo tee /etc/yum.repos.d/ipbus-sw.repo - echo "name=CACTUS Project Software Repository" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - - echo "baseurl=${BUILD_OUTPUT_ROOT_URL}/${CI_BUILD_REF}/${CI_PIPELINE_ID}/slc6_x86_64" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo + - echo "baseurl=${OUTPUT_PIPELINE_URL}/slc6_x86_64" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - echo "enabled=1" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - echo "gpgcheck=0" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - sudo yum clean all @@ -180,18 +184,18 @@ build:slc6: stage: test image: tswilliams/ipbus-sw-test-cc7:latest except: - - tags - triggers dependencies: [] before_script: + - export OUTPUT_PIPELINE_URL=${OUTPUT_ROOT_URL}/commits/${CI_COMMIT_TAG:-${CI_COMMIT_SHA}}/pipeline${CI_PIPELINE_ID} + - if [ -n "${CI_COMMIT_TAG}" ]; then export OUTPUT_PIPELINE_URL=${OUTPUT_PIPELINE_URL/commits/tags} ; fi - echo "[ipbus-sw-ci]" | sudo tee /etc/yum.repos.d/ipbus-sw.repo - echo "name=CACTUS Project Software Repository" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - - echo "baseurl=${BUILD_OUTPUT_ROOT_URL}/${CI_BUILD_REF}/${CI_PIPELINE_ID}/centos7_x86_64" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo + - echo "baseurl=${OUTPUT_PIPELINE_URL}/centos7_x86_64" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - echo "enabled=1" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - echo "gpgcheck=0" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - sudo yum clean all - sudo yum -y groupinstall uhal - - sudo yum -y install boost-python - sudo yum -y install which - rpm -qa | grep cactus | sort From 277f54dd5900df63e2ca9c51154e22e6876a3e41 Mon Sep 17 00:00:00 2001 From: Tom Williams Date: Mon, 17 Jul 2017 22:34:13 +0100 Subject: [PATCH 3/7] CI : Copy ssh config from file (to simplify CI config); refs issue #51 --- .gitlab-ci.yml | 22 +++------------------- ci/ssh_config | 5 +++++ 2 files changed, 8 insertions(+), 19 deletions(-) create mode 100644 ci/ssh_config diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1692f7ae5..7e5dd2d32 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -67,13 +67,7 @@ doxygen_job: - cd doxygen-1.8.6 - ./configure --prefix /usr --docdir /usr/share/doc/doxygen-1.8.6 && make - sudo make MAN1DIR=share/man/man1 install - - cd .. - - mkdir -p ~/.ssh - - echo "HOST lxplus" > ~/.ssh/config - - echo " StrictHostKeyChecking no" >> ~/.ssh/config - - echo " GSSAPITrustDns yes" >> ~/.ssh/config - - echo " GSSAPIAuthentication yes" >> ~/.ssh/config - - echo " GSSAPIDelegateCredentials yes" >> ~/.ssh/config + - mkdir -p ~/.ssh && cp ci/ssh_config ~/.ssh/config - export OUTPUT_PIPELINE_DIR=${OUTPUT_ROOT_DIR}/commits/${CI_COMMIT_TAG:-${CI_COMMIT_SHA}}/pipeline${CI_PIPELINE_ID} - if [ -n "${CI_COMMIT_TAG}" ]; then export OUTPUT_PIPELINE_DIR=${OUTPUT_PIPELINE_DIR/commits/tags} ; fi script: @@ -103,12 +97,7 @@ build:centos7: before_script: - sudo yum -y install boost-devel pugixml-devel - sudo yum -y install createrepo krb5-workstation openssh-clients - - mkdir -p ~/.ssh - - echo "HOST lxplus" > ~/.ssh/config - - echo " StrictHostKeyChecking no" >> ~/.ssh/config - - echo " GSSAPITrustDns yes" >> ~/.ssh/config - - echo " GSSAPIAuthentication yes" >> ~/.ssh/config - - echo " GSSAPIDelegateCredentials yes" >> ~/.ssh/config + - mkdir -p ~/.ssh && cp ci/ssh_config ~/.ssh/config - export OUTPUT_PIPELINE_DIR=${OUTPUT_ROOT_DIR}/commits/${CI_COMMIT_TAG:-${CI_COMMIT_SHA}}/pipeline${CI_PIPELINE_ID} - if [ -n "${CI_COMMIT_TAG}" ]; then export OUTPUT_PIPELINE_DIR=${OUTPUT_PIPELINE_DIR/commits/tags} ; fi script: @@ -136,12 +125,7 @@ build:slc6: - triggers before_script: - sudo yum -y install createrepo krb5-workstation openssh-clients - - mkdir -p ~/.ssh - - echo "HOST lxplus" > ~/.ssh/config - - echo " StrictHostKeyChecking no" >> ~/.ssh/config - - echo " GSSAPITrustDns yes" >> ~/.ssh/config - - echo " GSSAPIAuthentication yes" >> ~/.ssh/config - - echo " GSSAPIDelegateCredentials yes" >> ~/.ssh/config + - mkdir -p ~/.ssh && cp ci/ssh_config ~/.ssh/config - export OUTPUT_PIPELINE_DIR=${OUTPUT_ROOT_DIR}/commits/${CI_COMMIT_TAG:-${CI_COMMIT_SHA}}/pipeline${CI_PIPELINE_ID} - if [ -n "${CI_COMMIT_TAG}" ]; then export OUTPUT_PIPELINE_DIR=${OUTPUT_PIPELINE_DIR/commits/tags} ; fi script: diff --git a/ci/ssh_config b/ci/ssh_config new file mode 100644 index 000000000..efaaaebc6 --- /dev/null +++ b/ci/ssh_config @@ -0,0 +1,5 @@ +HOST lxplus + StrictHostKeyChecking no + GSSAPITrustDns yes + GSSAPIAuthentication yes + GSSAPIDelegateCredentials yes From 02bf0667feb9be62961aede13faa19c2f5a0e367 Mon Sep 17 00:00:00 2001 From: Tom Williams Date: Mon, 17 Jul 2017 22:40:32 +0100 Subject: [PATCH 4/7] CI : Copy repo config from file (to simplify CI config); refs issue #51 --- .gitlab-ci.yml | 14 ++++---------- ci/ipbus-sw-ci.repo | 5 +++++ 2 files changed, 9 insertions(+), 10 deletions(-) create mode 100644 ci/ipbus-sw-ci.repo diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7e5dd2d32..558b8f6f8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -154,11 +154,8 @@ build:slc6: before_script: - export OUTPUT_PIPELINE_URL=${OUTPUT_ROOT_URL}/commits/${CI_COMMIT_TAG:-${CI_COMMIT_SHA}}/pipeline${CI_PIPELINE_ID} - if [ -n "${CI_COMMIT_TAG}" ]; then export OUTPUT_PIPELINE_URL=${OUTPUT_PIPELINE_URL/commits/tags} ; fi - - echo "[ipbus-sw-ci]" | sudo tee /etc/yum.repos.d/ipbus-sw.repo - - echo "name=CACTUS Project Software Repository" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - - echo "baseurl=${OUTPUT_PIPELINE_URL}/slc6_x86_64" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - - echo "enabled=1" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - - echo "gpgcheck=0" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo + - sudo cp ci/ipbus-sw-ci.repo /etc/yum.repos.d/ipbus-sw-ci.repo + - sudo sed -i -re "s|^baseurl=.*|baseurl=${OUTPUT_PIPELINE_URL}/slc6_x86_64|g" /etc/yum.repos.d/ipbus-sw-ci.repo - sudo yum clean all - sudo yum -y groupinstall uhal - rpm -qa | grep cactus | sort @@ -173,11 +170,8 @@ build:slc6: before_script: - export OUTPUT_PIPELINE_URL=${OUTPUT_ROOT_URL}/commits/${CI_COMMIT_TAG:-${CI_COMMIT_SHA}}/pipeline${CI_PIPELINE_ID} - if [ -n "${CI_COMMIT_TAG}" ]; then export OUTPUT_PIPELINE_URL=${OUTPUT_PIPELINE_URL/commits/tags} ; fi - - echo "[ipbus-sw-ci]" | sudo tee /etc/yum.repos.d/ipbus-sw.repo - - echo "name=CACTUS Project Software Repository" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - - echo "baseurl=${OUTPUT_PIPELINE_URL}/centos7_x86_64" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - - echo "enabled=1" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo - - echo "gpgcheck=0" | sudo tee -a /etc/yum.repos.d/ipbus-sw.repo + - sudo cp ci/ipbus-sw-ci.repo /etc/yum.repos.d/ipbus-sw-ci.repo + - sudo sed -i -re "s|^baseurl=.*|baseurl=${OUTPUT_PIPELINE_URL}/centos7_x86_64|g" /etc/yum.repos.d/ipbus-sw-ci.repo - sudo yum clean all - sudo yum -y groupinstall uhal - sudo yum -y install which diff --git a/ci/ipbus-sw-ci.repo b/ci/ipbus-sw-ci.repo new file mode 100644 index 000000000..f8f3afa5a --- /dev/null +++ b/ci/ipbus-sw-ci.repo @@ -0,0 +1,5 @@ +[ipbus-sw-ci] +name=IPbus software repository for automated build +baseurl= +enabled=1 +gpgcheck=0 From fe3988edb9089736bb14d6fae69fea101aa1f8b5 Mon Sep 17 00:00:00 2001 From: Tom Williams Date: Thu, 27 Jul 2017 10:11:53 +0100 Subject: [PATCH 5/7] CI : Fix ssh config copy command in doxygen job; refs issue #51 --- .gitlab-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 558b8f6f8..3db4bf303 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -67,11 +67,12 @@ doxygen_job: - cd doxygen-1.8.6 - ./configure --prefix /usr --docdir /usr/share/doc/doxygen-1.8.6 && make - sudo make MAN1DIR=share/man/man1 install - - mkdir -p ~/.ssh && cp ci/ssh_config ~/.ssh/config + - mkdir -p ~/.ssh && cp ${CI_PROJECT_DIR}/ci/ssh_config ~/.ssh/config - export OUTPUT_PIPELINE_DIR=${OUTPUT_ROOT_DIR}/commits/${CI_COMMIT_TAG:-${CI_COMMIT_SHA}}/pipeline${CI_PIPELINE_ID} - if [ -n "${CI_COMMIT_TAG}" ]; then export OUTPUT_PIPELINE_DIR=${OUTPUT_PIPELINE_DIR/commits/tags} ; fi script: - env | grep -v PASSWORD | grep -v TOKEN + - cd ${CI_PROJECT_DIR} - ./scripts/doxygen/api_uhal.sh "(${CI_COMMIT_TAG:-commit ${CI_COMMIT_SHA}})" - ls -al /tmp - echo "${KRB_PASSWORD}" | kinit ${KRB_USERNAME}@CERN.CH From c39bbed226939f6faef4d16d851ff9c661f77bfc Mon Sep 17 00:00:00 2001 From: Tom Williams Date: Sat, 29 Jul 2017 20:20:10 +0100 Subject: [PATCH 6/7] CI : Remove duplication accross SLC6 and CentOS7 build job configs; refs issue #51 --- .gitlab-ci.yml | 64 +++++++++++++++++++++----------------------------- 1 file changed, 27 insertions(+), 37 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3db4bf303..cad187963 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -88,16 +88,15 @@ doxygen_job: -build:centos7: + +.job_template: &build_job stage: build - image: tswilliams/ipbus-sw-dev-cc7:latest tags: - docker except: - triggers before_script: - - sudo yum -y install boost-devel pugixml-devel - - sudo yum -y install createrepo krb5-workstation openssh-clients + - sudo yum -y install createrepo krb5-workstation openssh-clients ${ADDITIONAL_RPMS_TO_INSTALL} - mkdir -p ~/.ssh && cp ci/ssh_config ~/.ssh/config - export OUTPUT_PIPELINE_DIR=${OUTPUT_ROOT_DIR}/commits/${CI_COMMIT_TAG:-${CI_COMMIT_SHA}}/pipeline${CI_PIPELINE_ID} - if [ -n "${CI_COMMIT_TAG}" ]; then export OUTPUT_PIPELINE_DIR=${OUTPUT_PIPELINE_DIR/commits/tags} ; fi @@ -105,44 +104,35 @@ build:centos7: - env | grep -v PASSWORD | grep -v TOKEN - make -k Set=all - make -k Set=all rpm - - mkdir -p cc7_rpms - - cp `find . -iname "*.rpm"` cc7_rpms - - cp yumgroups-centos7.xml cc7_rpms/ - - ls cc7_rpms - - createrepo -vg yumgroups-centos7.xml cc7_rpms/ + - mkdir -p yumrepo + - cp `find . -iname "*.rpm"` yumrepo + - cp ${YUMGROUPS_FILE} yumrepo/yumgroups.xml + - ls yumrepo + - createrepo -vg yumgroups.xml yumrepo - echo "${KRB_PASSWORD}" | kinit ${KRB_USERNAME}@CERN.CH - klist - - ssh ${KRB_USERNAME}@lxplus "mkdir -p ${OUTPUT_PIPELINE_DIR}" + - ssh ${KRB_USERNAME}@lxplus "mkdir -p ${OUTPUT_PIPELINE_DIR}/repos" - ssh ${KRB_USERNAME}@lxplus "ln -sfn ${OUTPUT_PIPELINE_DIR} `dirname ${OUTPUT_PIPELINE_DIR}`/latest" - - rsync -av cc7_rpms/ ${KRB_USERNAME}@lxplus:${OUTPUT_PIPELINE_DIR}/centos7_x86_64 + - rsync -av yumrepo/ ${KRB_USERNAME}@lxplus:${OUTPUT_PIPELINE_DIR}/repos/${OUTPUT_REPO_SUBDIR} build:slc6: - stage: build + <<: *build_job image: tswilliams/ipbus-sw-dev-slc6:latest - tags: - - docker - except: - - triggers - before_script: - - sudo yum -y install createrepo krb5-workstation openssh-clients - - mkdir -p ~/.ssh && cp ci/ssh_config ~/.ssh/config - - export OUTPUT_PIPELINE_DIR=${OUTPUT_ROOT_DIR}/commits/${CI_COMMIT_TAG:-${CI_COMMIT_SHA}}/pipeline${CI_PIPELINE_ID} - - if [ -n "${CI_COMMIT_TAG}" ]; then export OUTPUT_PIPELINE_DIR=${OUTPUT_PIPELINE_DIR/commits/tags} ; fi - script: - - env | grep -v PASSWORD | grep -v TOKEN - - make -k Set=all - - make -k Set=all rpm - - mkdir -p slc6_rpms - - cp `find . -iname "*.rpm"` slc6_rpms - - cp yumgroups-slc6.xml slc6_rpms/ - - ls slc6_rpms - - createrepo -vg yumgroups-slc6.xml slc6_rpms - - echo "${KRB_PASSWORD}" | kinit ${KRB_USERNAME}@CERN.CH - - klist - - ssh ${KRB_USERNAME}@lxplus "mkdir -p ${OUTPUT_PIPELINE_DIR}" - - ssh ${KRB_USERNAME}@lxplus "ln -sfn ${OUTPUT_PIPELINE_DIR} `dirname ${OUTPUT_PIPELINE_DIR}`/latest" - - rsync -av slc6_rpms/ ${KRB_USERNAME}@lxplus:${OUTPUT_PIPELINE_DIR}/slc6_x86_64 + variables: + ADDITIONAL_RPMS_TO_INSTALL: "" + YUMGROUPS_FILE: "yumgroups-slc6.xml" + OUTPUT_REPO_SUBDIR: "slc6_x86_64" + + +build:centos7: + <<: *build_job + image: tswilliams/ipbus-sw-dev-cc7:latest + variables: + ADDITIONAL_RPMS_TO_INSTALL: "boost-devel pugixml-devel" + YUMGROUPS_FILE: "yumgroups-centos7.xml" + OUTPUT_REPO_SUBDIR: "centos7_x86_64" + @@ -156,7 +146,7 @@ build:slc6: - export OUTPUT_PIPELINE_URL=${OUTPUT_ROOT_URL}/commits/${CI_COMMIT_TAG:-${CI_COMMIT_SHA}}/pipeline${CI_PIPELINE_ID} - if [ -n "${CI_COMMIT_TAG}" ]; then export OUTPUT_PIPELINE_URL=${OUTPUT_PIPELINE_URL/commits/tags} ; fi - sudo cp ci/ipbus-sw-ci.repo /etc/yum.repos.d/ipbus-sw-ci.repo - - sudo sed -i -re "s|^baseurl=.*|baseurl=${OUTPUT_PIPELINE_URL}/slc6_x86_64|g" /etc/yum.repos.d/ipbus-sw-ci.repo + - sudo sed -i -re "s|^baseurl=.*|baseurl=${OUTPUT_PIPELINE_URL}/repos/slc6_x86_64|g" /etc/yum.repos.d/ipbus-sw-ci.repo - sudo yum clean all - sudo yum -y groupinstall uhal - rpm -qa | grep cactus | sort @@ -172,7 +162,7 @@ build:slc6: - export OUTPUT_PIPELINE_URL=${OUTPUT_ROOT_URL}/commits/${CI_COMMIT_TAG:-${CI_COMMIT_SHA}}/pipeline${CI_PIPELINE_ID} - if [ -n "${CI_COMMIT_TAG}" ]; then export OUTPUT_PIPELINE_URL=${OUTPUT_PIPELINE_URL/commits/tags} ; fi - sudo cp ci/ipbus-sw-ci.repo /etc/yum.repos.d/ipbus-sw-ci.repo - - sudo sed -i -re "s|^baseurl=.*|baseurl=${OUTPUT_PIPELINE_URL}/centos7_x86_64|g" /etc/yum.repos.d/ipbus-sw-ci.repo + - sudo sed -i -re "s|^baseurl=.*|baseurl=${OUTPUT_PIPELINE_URL}/repos/centos7_x86_64|g" /etc/yum.repos.d/ipbus-sw-ci.repo - sudo yum clean all - sudo yum -y groupinstall uhal - sudo yum -y install which From d52da2bcd633dcf29fa225dd3b4c127e72328d01 Mon Sep 17 00:00:00 2001 From: Tom Williams Date: Tue, 1 Aug 2017 12:30:12 +0100 Subject: [PATCH 7/7] CI : Move yumgroups files under ci directory; refs issue #51 --- .gitlab-ci.yml | 4 ++-- yumgroups-centos7.xml => ci/yumgroups-centos7.xml | 2 +- yumgroups-slc6.xml => ci/yumgroups-slc6.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) rename yumgroups-centos7.xml => ci/yumgroups-centos7.xml (97%) rename yumgroups-slc6.xml => ci/yumgroups-slc6.xml (98%) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cad187963..84dac3810 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -121,7 +121,7 @@ build:slc6: image: tswilliams/ipbus-sw-dev-slc6:latest variables: ADDITIONAL_RPMS_TO_INSTALL: "" - YUMGROUPS_FILE: "yumgroups-slc6.xml" + YUMGROUPS_FILE: "ci/yumgroups-slc6.xml" OUTPUT_REPO_SUBDIR: "slc6_x86_64" @@ -130,7 +130,7 @@ build:centos7: image: tswilliams/ipbus-sw-dev-cc7:latest variables: ADDITIONAL_RPMS_TO_INSTALL: "boost-devel pugixml-devel" - YUMGROUPS_FILE: "yumgroups-centos7.xml" + YUMGROUPS_FILE: "ci/yumgroups-centos7.xml" OUTPUT_REPO_SUBDIR: "centos7_x86_64" diff --git a/yumgroups-centos7.xml b/ci/yumgroups-centos7.xml similarity index 97% rename from yumgroups-centos7.xml rename to ci/yumgroups-centos7.xml index caaf3af4c..01f132ee0 100755 --- a/yumgroups-centos7.xml +++ b/ci/yumgroups-centos7.xml @@ -1,7 +1,7 @@ - cactus + ipbus-sw uhal true uHAL packages of the CACTUS YUM repository diff --git a/yumgroups-slc6.xml b/ci/yumgroups-slc6.xml similarity index 98% rename from yumgroups-slc6.xml rename to ci/yumgroups-slc6.xml index f28cb2ec8..68ed6310a 100755 --- a/yumgroups-slc6.xml +++ b/ci/yumgroups-slc6.xml @@ -1,7 +1,7 @@ - cactus + ipbus-sw uhal true uHAL packages of the CACTUS YUM repository