feat: Adding dev/prod ci/cd with deploy using Dokploy registry

This commit is contained in:
Josepablo C
2025-09-08 20:31:16 -06:00
parent 0cc27afa0d
commit 7efec5e4dd
2 changed files with 70 additions and 65 deletions

View File

@@ -1,58 +1,88 @@
stages:
- build
- upload
- deploy
variables:
PIPELINE_WORK_DIR_V1: "./v1"
CONTAINER_NAME_V1: "etaapi"
PIPELINE_WORK_DIR_V2: "./v2"
CONTAINER_NAME_V2: "etaapi"
PUBLIC_PORT_V1: 7001
PRIVATE_PORT_V1: 3000
PUBLIC_PORT_V2: 7002
PRIVATE_PORT_V2: 3000
PIPELINE_WORK_DIR_PROD: "./v1"
PIPELINE_WORK_DIR_DEV: "./v1"
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
only:
- master
.generic_upload_job: &generic_upload_job
script:
- cd $PIPELINE_WORK_DIR
- . ./scripts/ci_functions.sh
- upload_image
only:
- master
.generic_deploy_job: &generic_deploy_job
script:
- cd $PIPELINE_WORK_DIR
- . ./scripts/ci_functions.sh
- deploy
only:
- master
build-v1-job:
build-prod-job:
stage: build
needs: []
variables:
PIPELINE_WORK_DIR: "$PIPELINE_WORK_DIR_V1"
CONTAINER_NAME: "$CONTAINER_NAME_V1"
PUBLIC_PORT: "$PUBLIC_PORT_V1"
PRIVATE_PORT: "$PRIVATE_PORT_V1"
PIPELINE_WORK_DIR: "$PIPELINE_WORK_DIR_PROD"
CONTAINER_NAME: "$CONTAINER_NAME_PROD"
only:
- master
<<: *generic_build_job
upload-v1-job:
upload-prod-job:
stage: upload
needs: ["build-v1-job"]
needs: ["build-prod-job"]
variables:
PIPELINE_WORK_DIR: "$PIPELINE_WORK_DIR_V1"
CONTAINER_NAME: "$CONTAINER_NAME_V1"
PUBLIC_PORT: "$PUBLIC_PORT_V1"
PRIVATE_PORT: "$PRIVATE_PORT_V1"
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"
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