Files
ETAApi/.gitlab-ci.yml
Josepablo C bc7c4031cc feat: removing apiConfig.json adding it to CICD variables
- fix(ci_functions.sh/cicd): Using SH safe vars style
2025-09-08 21:39:46 -06:00

93 lines
2.0 KiB
YAML

stages:
- build
- upload
- deploy
variables:
PIPELINE_WORK_DIR_PROD: "./v1"
PIPELINE_WORK_DIR_DEV: "./v1"
APICONFIG_BASE64_PROD: ${CICD_APICONFIG_PROD}
APICONFIG_BASE64_DEV: ${CICD_APICONFIG_DEV}
CONTAINER_NAME_PROD: "etaapi_prod"
CONTAINER_NAME_DEV: "etaapi_dev"
.generic_build_job: &generic_build_job
script:
- cd ${PIPELINE_WORK_DIR}
- . ./scripts/ci_functions.sh
- build_docker ${CONTAINER_NAME} ${CICD_APICONFIG}
.generic_upload_job: &generic_upload_job
script:
- cd ${PIPELINE_WORK_DIR}
- . ./scripts/ci_functions.sh
- upload_image
build-prod-job:
stage: build
needs: []
variables:
PIPELINE_WORK_DIR: "${PIPELINE_WORK_DIR_PROD}"
CONTAINER_NAME: "${CONTAINER_NAME_PROD}"
CICD_APICONFIG: "${APICONFIG_BASE64_PROD}"
only:
- master
<<: *generic_build_job
upload-prod-job:
stage: upload
needs: ["build-prod-job"]
variables:
PIPELINE_WORK_DIR: "${PIPELINE_WORK_DIR_PROD}"
CONTAINER_NAME: "${CONTAINER_NAME_PROD}"
only:
- master
<<: *generic_upload_job
deploy-prod-job:
stage: deploy
needs: ["upload-prod-job"]
variables:
PIPELINE_WORK_DIR: "${PIPELINE_WORK_DIR_PROD}"
CONTAINER_NAME: "${CONTAINER_NAME_PROD}"
only:
- master
script:
- cd ${PIPELINE_WORK_DIR}
- . ./scripts/ci_functions.sh
- deploy_prod
build-dev-job:
stage: build
needs: []
variables:
PIPELINE_WORK_DIR: "${PIPELINE_WORK_DIR_DEV}"
CONTAINER_NAME: "${CONTAINER_NAME_DEV}"
CICD_APICONFIG: "${APICONFIG_BASE64_DEV}"
only:
- develop
<<: *generic_build_job
upload-dev-job:
stage: upload
needs: ["build-dev-job"]
variables:
PIPELINE_WORK_DIR: "${PIPELINE_WORK_DIR_DEV}"
CONTAINER_NAME: "${CONTAINER_NAME_DEV}"
only:
- develop
<<: *generic_upload_job
deploy-dev-job:
stage: deploy
needs: ["upload-dev-job"]
variables:
PIPELINE_WORK_DIR: "${PIPELINE_WORK_DIR_DEV}"
CONTAINER_NAME: "${CONTAINER_NAME_DEV}"
only:
- develop
script:
- cd ${PIPELINE_WORK_DIR}
- . ./scripts/ci_functions.sh
- deploy_dev