-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy path.gitlab-ci.yml
88 lines (85 loc) · 3.23 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
variables:
APP_VERSION: "2.2.0"
APPS_PROJECT_BRANCH_NAME: "${CI_COMMIT_REF_NAME}"
BUILD_NUMBER: "${CI_COMMIT_REF_NAME}-${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}"
IMAGE_TAG: "${APP_VERSION}-${CI_COMMIT_REF_NAME}"
IMAGE_NAME: "${CI_REGISTRY_IMAGE}:${IMAGE_TAG}"
IMAGE_LATEST_TAG: "${CI_COMMIT_REF_NAME}-latest"
LATEST_IMAGE_NAME: "${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_NAME}-latest"
workflow:
rules:
- if: $CI_COMMIT_BRANCH == "test" || $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "development"
stages:
- build
- deploy
configuration_parameters:
stage: build
script:
- id
- echo "CI_BUILDS_DIR $CI_BUILDS_DIR"
- echo "CI_REGISTRY_USER $CI_REGISTRY_USER"
- echo "CI_REGISTRY $CI_REGISTRY"
- echo "BRANCH $CI_COMMIT_REF_NAME"
- echo "CI_PIPELINE_ID $CI_PIPELINE_ID"
- echo "CI_COMMIT_SHORT_SHA $CI_COMMIT_SHORT_SHA"
- echo "CI_REGISTRY_IMAGE $CI_REGISTRY_IMAGE"
- echo "APP_VERSION $APP_VERSION"
- echo "IMAGE_TAG $IMAGE_TAG"
- echo "IMAGE NAME $IMAGE_NAME"
- echo "IMAGE NAME (with latest tag) $LATEST_IMAGE_NAME"
- echo "APPS_ROOT_PATH $APPS_ROOT_PATH"
- echo "DEPLOYMENTS_FOLDER $DEPLOYMENTS_FOLDER"
- echo "APPS_PROJECT_URL $APPS_PROJECT_URL"
- echo "APPS_PROJECT_BRANCH_NAME $APPS_PROJECT_BRANCH_NAME"
build_docker:
stage: build
script:
- docker image prune -f
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" "$CI_REGISTRY" --password-stdin
- echo "${BUILD_NUMBER}" > build_number
- echo "$APP_VERSION" | xargs > app_version
- gradle build -x test
- echo "docker build -t $IMAGE_NAME ."
- docker build -t $IMAGE_NAME .
- echo "docker docker build -t $LATEST_IMAGE_NAME ."
- docker build -t $LATEST_IMAGE_NAME .
- docker push $IMAGE_NAME
- docker push $LATEST_IMAGE_NAME
deploy_metabolights_web:
stage: deploy
variables:
CHART_NAME: metabolights-web
rules:
- if: $CI_COMMIT_BRANCH == "test" || $CI_COMMIT_BRANCH == "staging" || $CI_COMMIT_BRANCH == "development"
when: on_success
- if: $CI_COMMIT_BRANCH == "main"
when: manual
allow_failure: true
script:
- BUILD_PATH=$(realpath tmp)
- echo "BUILD_PATH $BUILD_PATH"
- mkdir -p $BUILD_PATH
- cd $BUILD_PATH
- APPS_ROOT_PATH="$BUILD_PATH/apps"
- rm -rf $APPS_ROOT_PATH
- echo git clone https://$CI_REGISTRY_USER:$CI_REGISTRY_PASSWORD@${APPS_PROJECT_URL}
- git clone https://$CI_REGISTRY_USER:$CI_REGISTRY_PASSWORD@${APPS_PROJECT_URL}
- cd $APPS_ROOT_PATH
- git switch $APPS_PROJECT_BRANCH_NAME
- git status
- git pull
- DEPLOYMENTS_FOLDER_SCRIPTS="$APPS_ROOT_PATH/$DEPLOYMENTS_FOLDER/scripts"
- echo "DEPLOYMENTS_FOLDER_SCRIPTS $DEPLOYMENTS_FOLDER_SCRIPTS"
- cd $DEPLOYMENTS_FOLDER_SCRIPTS
- cat initial_setup.sh
- bash initial_setup.sh
- DEPLOYMENTS_CHART_PATH="$APPS_ROOT_PATH/$DEPLOYMENTS_FOLDER/charts/$CHART_NAME"
- echo "DEPLOYMENTS_CHART_PATH $DEPLOYMENTS_CHART_PATH"
- cd $DEPLOYMENTS_CHART_PATH
- cat template.sh
- echo template.sh "image.repository=$CI_REGISTRY_IMAGE,image.tag=$IMAGE_TAG"
- bash template.sh "image.repository=$CI_REGISTRY_IMAGE,image.tag=$IMAGE_TAG"
- cat install.sh
- echo install.sh "image.repository=$CI_REGISTRY_IMAGE,image.tag=$IMAGE_TAG"
- bash install.sh "image.repository=$CI_REGISTRY_IMAGE,image.tag=$IMAGE_TAG"
- rm -rf $BUILD_PATH