Skip to content
Snippets Groups Projects
Forked from rc / hpc-factory
43 commits behind the upstream repository.
.gitlab-ci.yml 12.52 KiB
default:
  image: $CI_REGISTRY_IMAGE:latest

variables:
  CAMPUS_IP: 138.26.48.47
  CHEAHA_IP: 172.20.10.9
  TEST_IP: 138.26.49.134
  ANSIBLE_REMOTE_TMP: "/tmp"
  AWS_DEFAULT_REGION: "bhm"
  AWS_HOST: "s3.lts.rc.uab.edu"
  OS_AUTH_TYPE: "v3applicationcredential"
  OS_AUTH_URL: "https://keystone.cloud.rc.uab.edu:5000/v3"
  OS_IDENTITY_API_VERSION: "3"
  OS_INTERFACE: "public"
  OS_REGION_NAME: "bhm1"
  PROXY_NETWORK: "proxy-net"
  PKR_VAR_flavor: "m1.medium-ruffner"
  PKR_VAR_source_image: "CentOS-7-x86_64-GenericCloud-2009"
  PKR_VAR_floating_ip_network: "uab-campus"
  PKR_VAR_security_groups: '["allow-ssh"]'
  PKR_VAR_skip_create_image: "false"
  PKR_VAR_ssh_username: "centos"
  PKR_VAR_networks: '["8cf2f12e-905d-46d9-bc70-b0897c65f75a"]'
  GIT_AUTHOR_NAME: "Gitlab runner"
  GIT_AUTHOR_EMAIL: "gitlab@runner"
  INSTANCE_FLAVOR: "m1.medium-ruffner"
  HTTP_PROXY_INSTANCE_NAME: "http-proxy"
  SSH_PROXY_INSTANCE_NAME: "ssh-proxy"

stages:
  - build
  - deploy

workflow:
  rules:
    - if: $CI_PIPELINE_SOURCE == "web"
    - if: $CI_PIPELINE_SOURCE == "schedule"

.get_build_date: &get_build_date
  - export BUILD_DATE=$(TZ=America/Chicago date +%Y-%m-%dT%H%M%S)
  - echo BUILD_DATE=${BUILD_DATE}

.update_ansible_repo: &update_ansible_repo
  - *get_build_date
  - |
    export EXT_REPO_DIR=$(basename -s .git $EXT_PR_TARGET_REPO)
    if [ ! -d $CI_PROJECT_DIR/$EXT_REPO_DIR ]; then
      git clone ${EXT_PR_TARGET_REPO} ${EXT_REPO_DIR}
      cd ${EXT_REPO_DIR}
      git remote add upstream ${EXT_PR_SRC_REPO}
      cd ..
    fi
  - cd ${EXT_REPO_DIR}
  - git config user.name "${GIT_AUTHOR_NAME}"
  - git config user.email "${GIT_AUTHOR_EMAIL}"
  - git checkout ${EXT_PR_TARGET_BRANCH}
  - git fetch origin ${EXT_PR_TARGET_BRANCH}
  - git merge origin/${EXT_PR_TARGET_BRANCH}
  - git checkout -b integration
  - git fetch upstream ${EXT_PR_SRC_BRANCH}
  - git merge upstream/${EXT_PR_SRC_BRANCH}
  # export vars into job artifacts
  - export EXT_REPO_HEAD=$(git rev-parse --short HEAD)
  - export EXT_PR_SRC_BRANCH_SHA=$(git rev-parse --short upstream/${EXT_PR_SRC_BRANCH})
  - export EXT_PR_TARGET_BRANCH_SHA=$(git rev-parse --short origin/${EXT_PR_TARGET_BRANCH})
  - cd ..
  - export PACKER_IMAGE_HEAD=$(git rev-parse --short HEAD)
  - echo EXT_REPO_HEAD=${EXT_REPO_HEAD} | tee -a $CI_PROJECT_DIR/image.env
  - echo EXT_PR_SRC_BRANCH_SHA=${EXT_PR_SRC_BRANCH_SHA} | tee -a $CI_PROJECT_DIR/image.env
  - echo EXT_PR_TARGET_BRANCH_SHA=${EXT_PR_TARGET_BRANCH_SHA} | tee -a $CI_PROJECT_DIR/image.env