# This file is a template, and might need editing before it works on your project. image: openshift/origin-cli default: tags: - okd timeout: 1h 00m stages: - test - staging - production - cleanup variables: OPENSHIFT_SERVER: https://${OPENSHIFT_IP}:${OPENSHIFT_PORT}/ OPENSHIFT_DOMAIN: apps.okd.aip.de # Configure this variable in Secure Variables: #OPENSHIFT_TOKEN: #OPENSHIFT_PROJECT: python test1: stage: test before_script: [] script: - echo run tests test2: stage: test before_script: [] script: - echo run tests .deploy: &deploy before_script: - oc login "$OPENSHIFT_SERVER" --token="$OPENSHIFT_TOKEN" --insecure-skip-tls-verify - oc project "$CI_PROJECT_NAME-$CI_PROJECT_ID" 2> /dev/null || oc new-project "$CI_PROJECT_NAME-$CI_PROJECT_ID" script: - "oc get services $APP 2> /dev/null || oc new-app . --name=$APP --strategy=docker" - "oc start-build $APP --from-dir=. --follow || sleep 3s && oc start-build $APP --from-dir=. --follow" - "oc get routes $APP 2> /dev/null || oc create route edge $APP --service $APP --insecure-policy Redirect" staging: <<: *deploy stage: staging variables: APP: staging APP_HOST: $CI_PROJECT_NAME-staging.$OPENSHIFT_DOMAIN environment: name: staging url: https://$CI_PROJECT_NAME-staging.$OPENSHIFT_DOMAIN only: - master production: <<: *deploy stage: production when: manual variables: APP: production APP_HOST: $CI_PROJECT_NAME.$OPENSHIFT_DOMAIN environment: name: production url: https://$CI_PROJECT_NAME.$OPENSHIFT_DOMAIN only: - master stop-project: <<: *deploy stage: cleanup script: - oc delete all -l "app=$APP" when: manual variables: APP: production environment: name: production action: stop only: - master stop-staging: <<: *deploy stage: cleanup script: - oc delete all -l "app=$APP" when: manual variables: APP: staging environment: name: staging action: stop only: - master