stages: - build - deploy before_script: - export NOW=$(date +"%Y%m%d-%H%M%S") - export TAR_NAME_POSTFIX=$NOW - export SYS=`uname -s` - if [ "$SYS" == "Linux" ];then export NPROC=`nproc`;else export NPROC=4;fi - echo "$SYS $CI_JOB_NAME Working directory:$PWD tag $CI_COMMIT_REF_NAME CPUS:$NPROC" - export ARCH=`uname -m` - eval export `cat /etc/*-release|grep -e "^VERSION_ID="|tr -d "\" "` - eval export `cat /etc/*-release|grep -e "^ID="|tr -d "\" "` - export REV_POSTFIX=$CI_COMMIT_REF_NAME-$ID-$VERSION_ID-$ARCH - export DISTRIB_NAME=chaos-distrib-$REV_POSTFIX - export DISTRIB_PREFIX=/usr/local/chaos/chaos-distrib - export INSTALL_DIR=$DISTRIB_PREFIX - export CHAOS_MDS=127.0.0.1:5000 - export CHAOS_INTEFACE=lo - export CHAOS_IP=127.0.0.1 - export PATH=/usr/local/chaos/qt-56/bin:$PATH - echo "Running on $ID $VERSION_ID $ARCH (distrib name '$DISTRIB_NAME')" - git config --global user.email andrea.michelotti@lnf.infn.it - git config --global user.name amichelo - git config --global color.ui true macosx_x86_64: tags: - macosx stage: build script: - curl http://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo - chmod +x ~/bin/repo - ~/bin/repo init -u git@baltig.infn.it:chaos-lnf-control/chaos_repo_bundle.git -b $CI_COMMIT_REF_NAME - mkdir chaos-osx10-distrib - ~/bin/repo sync - cmake -DCHAOS_WAN=ON . -DCMAKE_INSTALL_PREFIX=$PWD/chaos-osx10-distrib - make -j 4 install - /tmp/chaos_start.sh - cd $PWD/chaos-osx10-distrib - source chaos_env.sh - ./tools/chaos_test.sh . - tar cfz chaos-osx10-distrib.tar.gz chaos-osx10-distrib allow_failure: true artifacts: name: "chaos-osx10-distrib.tar.gz" paths: - ./chaos-osx10-distrib.tar.gz expire_in: 1 day ubuntu1604_x86_64: stage: build image: baltig.infn.it:4567/amichelo/chaos_bundle_compilation:1604 script: - mkdir -p $INSTALL_DIR - repo init -u git@baltig.infn.it:chaos-lnf-control/chaos_repo_bundle.git -b $CI_COMMIT_REF_NAME - repo sync - cmake -DCHAOS_WAN=ON -DCHAOS_CCS=ON -DCERN_ROOT=$INSTALL_DIR -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR -DCMAKE_BUILD_TYPE=PROFILE . |& tee $DISTRIB_PREFIX/bundle.configuration.log - make -j 4 install - /tmp/chaos_start.sh - source $INSTALL_DIR/chaos_env.sh - $INSTALL_DIR/tools/chaos_test.sh -d $INSTALL_DIR/tools/test - cd chaosframework/ccs;qmake;echo "* compiling CCS";make -j 4 >& $DISTRIB_PREFIX/ccs.compilation.log ;cp ccs $INSTALL_DIR/bin;cd ../../ - scripts/strip_symbols.sh $INSTALL_DIR - tar cfz $DISTRIB_NAME.tar.gz -C / $DISTRIB_PREFIX artifacts: name: "$DISTRIB_NAME.tar.gz" paths: - ./*.tar.gz expire_in: 1 day after_script: - tar cvfz test-log.$CI_JOB_NAME.tar.gz -C /usr/local/chaos/chaos-distrib log - scp test-log.$CI_JOB_NAME.tar.gz chaosweb@opensource.lnf.infn.it:/var/www/html/binary/chaos/$ARCH/ ubuntu1604_static_x86_64: tags: - chaos stage: build image: baltig.infn.it:4567/amichelo/chaos_bundle_compilation:1404 script: - mkdir -p $INSTALL_DIR - repo init -u git@baltig.infn.it:chaos-lnf-control/chaos_repo_bundle.git -b $CI_COMMIT_REF_NAME - repo sync - cmake -DCHAOS_STATIC=ON -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR . |& tee $DISTRIB_PREFIX/bundle.configuration.log - make -j 4 install |& tee $DISTRIB_PREFIX/bundle.compilation.log - /tmp/chaos_start.sh - source $INSTALL_DIR/chaos_env.sh - $INSTALL_DIR/tools/chaos_test.sh -d $INSTALL_DIR/tools/test - scripts/strip_symbols.sh $INSTALL_DIR - tar cfz $DISTRIB_NAME.static.tar.gz -C / $DISTRIB_PREFIX artifacts: name: "$DISTRIB_NAME.static.tar.gz" paths: - ./*.tar.gz expire_in: 1 day ubuntu1404_x86_64: stage: build image: baltig.infn.it:4567/amichelo/chaos_bundle_compilation:1404 script: - mkdir -p $INSTALL_DIR - repo init -u git@baltig.infn.it:chaos-lnf-control/chaos_repo_bundle.git -b $CI_COMMIT_REF_NAME - repo sync - cmake -DCHAOS_WAN=ON -DCHAOS_CCS=ON -DCERN_ROOT=$INSTALL_DIR -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR . - make -j 4 install - /tmp/chaos_start.sh - source $INSTALL_DIR/chaos_env.sh - $INSTALL_DIR/tools/chaos_test.sh -d $INSTALL_DIR/tools/test - cd chaosframework/ccs;qmake;echo "* compiling CCS";make -j 4 >& $DISTRIB_PREFIX/ccs.compilation.log;cp ccs $INSTALL_DIR/bin;cd ../../ - scripts/strip_symbols.sh $INSTALL_DIR - tar cfz $DISTRIB_NAME.tar.gz -C / $DISTRIB_PREFIX artifacts: name: "$DISTRIB_NAME.tar.gz" paths: - ./*.tar.gz expire_in: 1 day after_script: - tar cvfz test-log.$CI_JOB_NAME.tar.gz -C /usr/local/chaos/chaos-distrib log - scp test-log.$CI_JOB_NAME.tar.gz chaosweb@opensource.lnf.infn.it:/var/www/html/binary/chaos/$ARCH/ # ubuntu1604_test_x86_64: # stage: test # # tags: # # - chaos # image: baltig.infn.it:4567/amichelo/chaos_bundle_compilation:1604 # script: # - /tmp/chaos_start.sh # - tar xfz $DISTRIB_NAME.tar.gz -C / # - source $DISTRIB_PREFIX/chaos_env.sh # - $DISTRIB_PREFIX/tools/chaos_test.sh # - $DISTRIB_PREFIX/tools/chaos_service.sh start devel # - git clone ssh://git@baltig.infn.it/chaos-lnf-control/chaos-common-test.git # - cd chaos-common-test;git checkout $CI_COMMIT_REF_NAME # - cd js # - ln -sf /usr/bin/nodejs /usr/bin/node # - ./node_modules/mocha/bin/mocha # artifacts: # name: "Logs-$CI_JOB_NAME" # when: always # paths: # - ./test-log.tar.gz # expire_in: 7 day # ubuntu1404_test_x86_64: # stage: test # # tags: # # - chaos # image: baltig.infn.it:4567/amichelo/chaos_bundle_compilation:1404 # script: # - /tmp/chaos_start.sh # - tar xfz $DISTRIB_NAME.tar.gz -C / # - source $DISTRIB_PREFIX/chaos_env.sh # - $DISTRIB_PREFIX/tools/chaos_test.sh # - $DISTRIB_PREFIX/tools/chaos_service.sh start devel # - git clone ssh://git@baltig.infn.it/chaos-lnf-control/chaos-common-test.git # - cd chaos-common-test;git checkout $CI_COMMIT_REF_NAME # - cd js # - ln -sf /usr/bin/nodejs /usr/bin/node # - ./node_modules/mocha/bin/mocha # after_script: # - tar cvfz test-log.tar.gz -C /usr/local/chaos/chaos-distrib log # # - scp test-log.tar.gz chaosweb@opensource.lnf.infn.it:/var/www/html/binary/chaos/$ARCH/ # artifacts: # name: "Logs-$CI_JOB_NAME" # when: always # paths: # - test-log.tar.gz # expire_in: 7 day build_arm_linux26: stage: build image: baltig.infn.it:4567/amichelo/chaos_bundle_compilation:lite script: - export PATH=/usr/local/chaos/i686-nptl-linux-gnu/bin/:$PATH - export DISTRIB_NAME=chaos-distrib-$CI_COMMIT_REF_NAME-$CI_JOB_NAME - export INSTALL_DIR=/builds/amichelo/chaos_bundle_compilation/distrib/$DISTRIB_NAME - mkdir -p $INSTALL_DIR - repo init -u git@baltig.infn.it:chaos-lnf-control/chaos_repo_bundle.git -b $CI_COMMIT_REF_NAME - repo sync - export PATH=/usr/local/chaos/gcc-arm-infn-linux26/bin/:$PATH - cmake . -DCHAOS_STATIC=ON -DCHAOS_TARGET=arm-linux-2.6 -DCHAOS_CDS=OFF -DCHAOS_MDS=OFF -DCHAOS_WAN=OFF -DCHAOS_EXAMPLES=OFF -DCHAOS_ENABLE_C11=OFF -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR - make -j 4 install |& tee $INSTALL_DIR/bundle.compilation.log - arm-infn-linux-gnueabi-strip `find $INSTALL_DIR/bin/ -type f` - arm-infn-linux-gnueabi-strip `find $INSTALL_DIR/lib/ -name "*.a" -type f` - tar cfz $DISTRIB_NAME.tar.gz -C $INSTALL_DIR/.. $DISTRIB_NAME artifacts: name: "$DISTRIB_NAME.tar.gz" paths: - ./*.tar.gz expire_in: 1 day build_i686_static_linux26: tags: - chaos stage: build image: baltig.infn.it:4567/amichelo/chaos_bundle_compilation:lite script: - repo init -u git@baltig.infn.it:chaos-lnf-control/chaos_repo_bundle.git -b $CI_COMMIT_REF_NAME - repo sync - export PATH=/usr/local/chaos/i686-nptl-linux-gnu/bin/:$PATH - export DISTRIB_NAME=chaos-distrib-$CI_COMMIT_REF_NAME-$CI_JOB_NAME - export INSTALL_DIR=/builds/amichelo/chaos_bundle_compilation/distrib/$DISTRIB_NAME - mkdir -p $INSTALL_DIR - cmake . -DCHAOS_STATIC=ON -DCHAOS_TARGET=i686-linux26 -DCHAOS_CDS=OFF -DCHAOS_MDS=OFF -DCHAOS_WAN=OFF -DCHAOS_EXAMPLES=OFF -DCHAOS_ENABLE_C11=OFF -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR |& tee $INSTALL_DIR/bundle.configuration.log - make -j 4 install |& tee $INSTALL_DIR/bundle.compilation.log - i686-nptl-linux-gnu-strip `find $INSTALL_DIR/bin/ -type f` - i686-nptl-linux-gnu-strip `find $INSTALL_DIR/lib/ -name "*.a" -type f` - tar cfz $DISTRIB_NAME.tar.gz -C $INSTALL_DIR/.. $DISTRIB_NAME artifacts: name: "$DISTRIB_NAME.tar.gz" paths: - ./*.tar.gz expire_in: 1 day build_i686_dynamic_linux26: stage: build image: baltig.infn.it:4567/amichelo/chaos_bundle_compilation:lite script: - export DISTRIB_NAME=chaos-distrib-$CI_COMMIT_REF_NAME-$CI_JOB_NAME - export INSTALL_DIR=/builds/amichelo/chaos_bundle_compilation/distrib/$DISTRIB_NAME - mkdir -p $INSTALL_DIR - repo init -u git@baltig.infn.it:chaos-lnf-control/chaos_repo_bundle.git -b $CI_COMMIT_REF_NAME - repo sync - export PATH=/usr/local/chaos/i686-nptl-linux-gnu/bin/:$PATH - cmake . -DCHAOS_TARGET=i686-linux26 -DCHAOS_CDS=OFF -DCHAOS_MDS=OFF -DCHAOS_WAN=OFF -DCHAOS_EXAMPLES=OFF -DCHAOS_ENABLE_C11=OFF -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR |& tee $INSTALL_DIR/bundle.configuration.log - make -j 4 install|& tee $INSTALL_DIR/bundle.compilation.log - tar cfz $DISTRIB_NAME.tar.gz -C $INSTALL_DIR/.. $DISTRIB_NAME artifacts: name: "$DISTRIB_NAME.tar.gz" paths: - ./*.tar.gz expire_in: 1 day deploy_stage: tags: - chaos stage: deploy image: baltig.infn.it:4567/amichelo/chaos_bundle_compilation:lite script: - scripts/accept_merge_request.sh $CI_COMMIT_REF_NAME - if [ -e chaos-osx10-distrib.tar.gz ];then scp chaos-osx10-distrib.tar.gz chaosweb@opensource.lnf.infn.it:/var/www/html/binary/chaos/$ARCH/osx/;fi - scp chaos-distrib-$CI_COMMIT_REF_NAME-ubuntu-16.04-x86_64.tar.gz chaosweb@opensource.lnf.infn.it:/var/www/html/binary/chaos/$ARCH/ubuntu1604 - scp chaos-distrib-$CI_COMMIT_REF_NAME-ubuntu-16.04-x86_64.static.tar.gz chaosweb@opensource.lnf.infn.it:/var/www/html/binary/chaos/$ARCH/ubuntu1604 - scp chaos-distrib-$CI_COMMIT_REF_NAME-ubuntu-14.04-x86_64.tar.gz chaosweb@opensource.lnf.infn.it:/var/www/html/binary/chaos/$ARCH/ubuntu1404 - scp chaos-distrib-$CI_COMMIT_REF_NAME-build_arm_linux26.tar.gz chaosweb@opensource.lnf.infn.it:/var/www/html/binary/chaos/arm/ - scp chaos-distrib-$CI_COMMIT_REF_NAME-build_i686_static_linux26.tar.gz chaosweb@opensource.lnf.infn.it:/var/www/html/binary/chaos/i686/ - scp chaos-distrib-$CI_COMMIT_REF_NAME-build_i686_dynamic_linux26.tar.gz chaosweb@opensource.lnf.infn.it:/var/www/html/binary/chaos/i686/ - if [ $CI_COMMIT_REF_NAME == "development" ];then echo "deploying in LNF development infrastructure"; tar xfz $DISTRIB_NAME.tar.gz -C /;cd $DISTRIB_PREFIX;source chaos_env.sh;./tools/chaos_deploy.sh tools/config/lnf/test/chaos-infrastructure.txt;fi allow_failure: true