Skip to content
Snippets Groups Projects
.gitlab-ci.yml 9.97 KiB
Newer Older
Mattias Ellert's avatar
Mattias Ellert committed
## Please do not change this file.
## Doing so will unfortunately create unnesseccary merge conflicts between branches and the fork, and nordugrid/arc version of this file.
Maiken's avatar
Maiken committed
## To have the automatic builds work on your fork, check that the runner is enabled in your fork: Settings->CI/CD->Runner settings
Maiken's avatar
Maiken committed

Maiken's avatar
Maiken committed
stages:
Maiken's avatar
Maiken committed
  - build
  - deploy
  - check_deploy_centos
  - check_deploy_debian
  - check_deploy_ubuntu
variables:
  OS_V: ''
  ARC_IMAGE: ''
  BUILD_VOL: ''
  BROWSER: ''
  BUILD_IMAGE: ''


#############################################################
##                  FORK BUILDS                            ## 
#############################################################

.template_build_rhel: &template_build_rhel
Mattias Ellert's avatar
Mattias Ellert committed
  script:
    - echo "$(date +%Y%m%d%H%M%S)" > VERSION
Mattias Ellert's avatar
Mattias Ellert committed
    - ./configure
    - yum-builddep nordugrid-arc.spec -y
    - echo "Preparing and running rpmbuild"
Mattias Ellert's avatar
Mattias Ellert committed
    - mkdir -p rpmbuild/{SOURCES,BUILD,RPMS,SRPMS}
Mattias Ellert's avatar
Mattias Ellert committed
    - VERSION=`cat VERSION`
    - mv nordugrid-arc-${VERSION}.tar.gz rpmbuild/SOURCES
    - rpmbuild -D "_topdir $CI_PROJECT_DIR/rpmbuild" -ba nordugrid-arc.spec
  artifacts:
    when: on_success
    expire_in: 3 days
    paths:
    - $CI_PROJECT_DIR/rpmbuild/SRPMS/
    - $CI_PROJECT_DIR/rpmbuild/RPMS/noarch/
    - $CI_PROJECT_DIR/rpmbuild/RPMS/x86_64/
  allow_failure: false
Maiken's avatar
Maiken committed
  allow_failure: false
    
.template_build_deb: &template_build_deb
Mattias Ellert's avatar
Mattias Ellert committed
  script:
    - apt-get update -y
    - echo "6.99.9" > VERSION
Mattias Ellert's avatar
Mattias Ellert committed
    - ./autogen.sh
    - ./configure
    - make dist
    - VERSION=`cat VERSION`
    - mv nordugrid-arc-${VERSION}.tar.gz nordugrid-arc_${VERSION}.orig.tar.gz
    - tar -z -x -f nordugrid-arc_${VERSION}.orig.tar.gz
    - cd nordugrid-arc-${VERSION}
    - dpkg-buildpackage -S -us -uc -d
    - apt-get build-dep ../nordugrid-arc_${VERSION}-1.dsc -y
    - dpkg-buildpackage -b -us -uc
    - echo Delete dbgsym debs to save space
    - rm -f ../*-dbgsym_*.deb
  artifacts:
    when: on_success
    expire_in: 3 days
    paths:
    - $CI_PROJECT_DIR/*.orig.tar.gz
    - $CI_PROJECT_DIR/*.debian.tar.*
    - $CI_PROJECT_DIR/*.dsc
    - $CI_PROJECT_DIR/*.deb
###############
build_el7:
    extends: .template_build_rhel
    variables:
        BUILD_IMAGE: maikenp/arc-build-centos7
    
###############
###############
build_el8:
    extends: .template_build_rhel
    variables:
        BUILD_IMAGE: maikenp/arc-build-centos8
###############
build_deb9:
    extends: .template_build_deb
    variables:
        BUILD_IMAGE: maikenp/arc-build-debian9
###############
build_deb10:
    extends: .template_build_deb
    variables:
        BUILD_IMAGE: maikenp/arc-build-debian10
##################
#    UBUNTU 18.04
##################
Maiken Pedersen's avatar
Maiken Pedersen committed
    extends: .template_build_deb
    variables:
        BUILD_IMAGE: maikenp/arc-build-ubuntu1804


#############################################################
##             MAIN REPO DEPLOY                            ## 
#############################################################

Maiken Pedersen's avatar
Maiken Pedersen committed
  stage: deploy
    - DEPLOY_CONTAINER=$OS_V_`date +%Y%m%dT%H%M`
    - docker pull $ARC_IMAGE
    - GITLAB_CONTAINER=$(docker ps  | awk 'FNR==2' | awk '{print $NF}')
    - echo '***************  Should be nothing at this point in /arc-logs - ls shows:'
    - echo 'Just removing files just in case'
    - rm -rf /arc-testlogs/*
  script:
    - echo "*************>>  Starting - inner container"
    - docker run  
      --name=$DEPLOY_CONTAINER
      --volumes-from $GITLAB_CONTAINER 
      -v "/$BUILD_VOL:/$BUILD_VOL:rw"  
      -v "/arc-testlogs:/arc-testlogs:rw" 
      -v "/arc-logs:/arc-logs:rw"
      --publish  443  
      --publish 2811 
      --publish 9000-9002 
      --publish 9000-9002/udp 
      --rm  $ARC_IMAGE
    - echo "*************>>  Done - back from inner container - starting cleanup and artifcats copying"
    - cat /arc-testlogs/testresults.txt
    - cp -r /arc-logs $CI_PROJECT_DIR
    - ls -lhrt $CI_PROJECT_DIR/arc-logs
    - rm -rf /arc-logs/*
    - rm -rf /arc-testlogs/*
    - rm -rf $BUILD_VOL/*
      - $CI_PROJECT_DIR/arc-logs/
      - $CI_PROJECT_DIR/arc-testlogs/
  allow_failure: true
  only:
    - branches@nordugrid/arc
    - tags@nordugrid/arc

deploy_el7:
  extends: .deploy
  variables: 
    OS_V: el7
    ARC_IMAGE: maikenp/arc-deploy-centos7
    BUILD_VOL: /rpmbuild
Maiken's avatar
Maiken committed
  tags:
  dependencies:
    - build_el7
##################
#    CENTOS 8
##################
deploy_el8:
  extends: .deploy
  variables:
    OS_V: el8
    ARC_IMAGE: maikenp/arc-deploy-centos8
    BUILD_VOL: /rpmbuild
  tags:
    - 158.39.201.179
    - deploy
  dependencies:
    - build_el8
Maiken's avatar
Maiken committed

deploy_deb9:
  extends: .deploy
  variables:
    OS_V: deb9
    ARC_IMAGE: maikenp/arc-deploy-debian9
    BUILD_VOL: /build
  dependencies:
    - build_deb9
deploy_deb10:
  extends: .deploy
  variables:
    OS_V: deb10
    ARC_IMAGE: maikenp/arc-deploy-debian10
    BUILD_VOL: /build 
  dependencies:
    - build_deb10
##################
#    UBUNTU 18.04
##################
deploy_ubuntu1804:
  extends: .deploy
  variables:
    OS_V: ubuntu1804
    ARC_IMAGE: maikenp/arc-deploy-ubuntu1804
    BUILD_VOL: /build
  dependencies:
    - build_ubuntu1804

#############################################################
##             CHECK DEPLOY                                ## 
#############################################################
.job_template_assert:
  image: python:3.7.6-alpine
  variables:
    TESTTYPE: ''
  script:
    - ls $CI_PROJECT_DIR/arc-testlogs/
    - cp $CI_PROJECT_DIR/arc-testlogs/testresults.txt /
    - cat /testresults.txt
    - python3 asserttest.py $TESTTYPE
  tags:
    - generic

############################
##### EL7 DEPLOY CHECK
############################
gridftp_el7_deploytest:
  extends: .job_template_assert
  variables:
    TESTTYPE: 'gridftp'
  stage:  check_deploy_centos
  needs: ["deploy_el7"]

emies_el7_deploytest:
  extends: .job_template_assert
  variables:
    TESTTYPE: 'emies'
  stage:  check_deploy_centos
  needs: ["deploy_el7"]

arcrest_el7_deploytest:
  extends: .job_template_assert
  variables:
    TESTTYPE: 'arcrest'
  stage:  check_deploy_centos
  needs: ["deploy_el7"]

arcconf_el7_deploytest:
  extends: .job_template_assert
  variables:
    TESTTYPE: 'arcconf'
  stage:  check_deploy_centos
  needs: ["deploy_el7"]

############################
##### EL8 DEPLOY CHECK
############################
gridftp_el8_deploytest:
  extends: .job_template_assert
  variables:
    TESTTYPE: 'gridftp'
  stage:  check_deploy_centos
  needs: ["deploy_el8"]

emies_el8_deploytest:
  extends: .job_template_assert
  variables:
    TESTTYPE: 'emies'
  stage:  check_deploy_centos
  needs: ["deploy_el8"]

arcrest_el8_deploytest:
  extends: .job_template_assert
  variables:
    TESTTYPE: 'arcrest'
  stage:  check_deploy_centos
  needs: ["deploy_el8"]

arcconf_el8_deploytest:
  extends: .job_template_assert
  variables:
    TESTTYPE: 'arcconf'
  stage:  check_deploy_centos
  needs: ["deploy_el8"]

############################
##### DEB9 DEPLOY CHECK
############################
gridftp_deb9_deploytest:
  extends: .job_template_assert
  variables:
    TESTTYPE: 'gridftp'
  stage:  check_deploy_debian
  needs: ["deploy_deb9"]

emies_deb9_deploytest:
  extends: .job_template_assert
  variables:
    TESTTYPE: 'emies'
  stage:  check_deploy_debian
  needs: ["deploy_deb9"]

arcrest_deb9_deploytest:
  extends: .job_template_assert
  variables:
    TESTTYPE: 'arcrest'
  stage:  check_deploy_debian
  needs: ["deploy_deb9"]

arcconf_deb9_deploytest:
  extends: .job_template_assert
  variables:
    TESTTYPE: 'arcconf'
  stage:  check_deploy_debian
  needs: ["deploy_deb9"]


############################
##### DEB10 DEPLOY CHECK
############################
gridftp_deb10_deploytest:
  extends: .job_template_assert
  variables:
    TESTTYPE: 'gridftp'
  stage:  check_deploy_debian
  needs: ["deploy_deb10"]

emies_deb10_deploytest:
  extends: .job_template_assert
  variables:
    TESTTYPE: 'emies'
  stage:  check_deploy_debian
  needs: ["deploy_deb10"]

arcrest_deb10_deploytest:
  extends: .job_template_assert
  variables:
    TESTTYPE: 'arcrest'
  stage:  check_deploy_debian
  needs: ["deploy_deb10"]

arcconf_deb10_deploytest:
  extends: .job_template_assert
  variables:
    TESTTYPE: 'arcconf'
  stage:  check_deploy_debian
  needs: ["deploy_deb10"]


############################
##### UBUNTU DEPLOY CHECK
############################
gridftp_ubuntu1804_deploytest:
  extends: .job_template_assert
  variables:
    TESTTYPE: 'gridftp'
  stage:  check_deploy_ubuntu
  needs: ["deploy_ubuntu1804"]

emies_ubuntu1804_deploytest:
  extends: .job_template_assert
  variables:
    TESTTYPE: 'emies'
  stage:  check_deploy_ubuntu
  needs: ["deploy_ubuntu1804"]

arcrest_ubuntu1804_deploytest:
  extends: .job_template_assert
  variables:
    TESTTYPE: 'arcrest'
  stage:  check_deploy_ubuntu
  needs: ["deploy_ubuntu1804"]

arcconf_ubuntu1804_deploytest:
  extends: .job_template_assert
  variables:
    TESTTYPE: 'arcconf'
  stage:  check_deploy_ubuntu
  needs: ["deploy_ubuntu1804"]



    
## note-to-self: can also download the rpms from latest job with (example for el7):
## wget 'https://source.coderefinery.org/nordugrid/arc/-/jobs/artifacts/master/download?job=packages_el7' -O artifacts.zip