From bc7c4031cc40d98e8817b115a1ef34f205ec1d37 Mon Sep 17 00:00:00 2001 From: Josepablo C Date: Mon, 8 Sep 2025 21:39:40 -0600 Subject: [PATCH] feat: removing apiConfig.json adding it to CICD variables - fix(ci_functions.sh/cicd): Using SH safe vars style --- .gitignore | 4 ++- .gitlab-ci.yml | 38 +++++++++++++------------ v1/scripts/ci_functions.sh | 19 ++++++++----- v1/src/config/.gitkeep | 0 v1/src/config/apiConfig.json | 54 ------------------------------------ 5 files changed, 36 insertions(+), 79 deletions(-) create mode 100644 v1/src/config/.gitkeep delete mode 100644 v1/src/config/apiConfig.json diff --git a/.gitignore b/.gitignore index 7198e04..ffc83f1 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,6 @@ **/.env **/package-lock.json **/migrate.js -**/scripts/migrate/* \ No newline at end of file +**/scripts/migrate/* +v1/src/config/*.json +**/apiConfig.json \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 13f0d1f..357143f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,18 +6,20 @@ stages: 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 + - cd ${PIPELINE_WORK_DIR} - . ./scripts/ci_functions.sh - - build_docker $CONTAINER_NAME + - build_docker ${CONTAINER_NAME} ${CICD_APICONFIG} .generic_upload_job: &generic_upload_job script: - - cd $PIPELINE_WORK_DIR + - cd ${PIPELINE_WORK_DIR} - . ./scripts/ci_functions.sh - upload_image @@ -25,8 +27,9 @@ build-prod-job: stage: build needs: [] variables: - PIPELINE_WORK_DIR: "$PIPELINE_WORK_DIR_PROD" - CONTAINER_NAME: "$CONTAINER_NAME_PROD" + PIPELINE_WORK_DIR: "${PIPELINE_WORK_DIR_PROD}" + CONTAINER_NAME: "${CONTAINER_NAME_PROD}" + CICD_APICONFIG: "${APICONFIG_BASE64_PROD}" only: - master <<: *generic_build_job @@ -35,8 +38,8 @@ upload-prod-job: stage: upload needs: ["build-prod-job"] variables: - PIPELINE_WORK_DIR: "$PIPELINE_WORK_DIR_PROD" - CONTAINER_NAME: "$CONTAINER_NAME_PROD" + PIPELINE_WORK_DIR: "${PIPELINE_WORK_DIR_PROD}" + CONTAINER_NAME: "${CONTAINER_NAME_PROD}" only: - master <<: *generic_upload_job @@ -45,12 +48,12 @@ deploy-prod-job: stage: deploy needs: ["upload-prod-job"] variables: - PIPELINE_WORK_DIR: "$PIPELINE_WORK_DIR_PROD" - CONTAINER_NAME: "$CONTAINER_NAME_PROD" + PIPELINE_WORK_DIR: "${PIPELINE_WORK_DIR_PROD}" + CONTAINER_NAME: "${CONTAINER_NAME_PROD}" only: - master script: - - cd $PIPELINE_WORK_DIR + - cd ${PIPELINE_WORK_DIR} - . ./scripts/ci_functions.sh - deploy_prod @@ -58,8 +61,9 @@ build-dev-job: stage: build needs: [] variables: - PIPELINE_WORK_DIR: "$PIPELINE_WORK_DIR_DEV" - CONTAINER_NAME: "$CONTAINER_NAME_DEV" + PIPELINE_WORK_DIR: "${PIPELINE_WORK_DIR_DEV}" + CONTAINER_NAME: "${CONTAINER_NAME_DEV}" + CICD_APICONFIG: "${APICONFIG_BASE64_DEV}" only: - develop <<: *generic_build_job @@ -68,8 +72,8 @@ upload-dev-job: stage: upload needs: ["build-dev-job"] variables: - PIPELINE_WORK_DIR: "$PIPELINE_WORK_DIR_DEV" - CONTAINER_NAME: "$CONTAINER_NAME_DEV" + PIPELINE_WORK_DIR: "${PIPELINE_WORK_DIR_DEV}" + CONTAINER_NAME: "${CONTAINER_NAME_DEV}" only: - develop <<: *generic_upload_job @@ -78,11 +82,11 @@ deploy-dev-job: stage: deploy needs: ["upload-dev-job"] variables: - PIPELINE_WORK_DIR: "$PIPELINE_WORK_DIR_DEV" - CONTAINER_NAME: "$CONTAINER_NAME_DEV" + PIPELINE_WORK_DIR: "${PIPELINE_WORK_DIR_DEV}" + CONTAINER_NAME: "${CONTAINER_NAME_DEV}" only: - develop script: - - cd $PIPELINE_WORK_DIR + - cd ${PIPELINE_WORK_DIR} - . ./scripts/ci_functions.sh - deploy_dev diff --git a/v1/scripts/ci_functions.sh b/v1/scripts/ci_functions.sh index d550b68..652be31 100644 --- a/v1/scripts/ci_functions.sh +++ b/v1/scripts/ci_functions.sh @@ -10,16 +10,21 @@ CONTAINER_VERSION="latest" function build_docker(){ #Global ENV VAR: REGISTRY_NAME #Global ENV VAR: CONTAINER_NAME - if [[ $# -lt 1 ]]; then - echo $0 "[conatiner name]" + #Global ENV VAR: CICD_APICONFIG + if [[ $# -lt 2 ]]; then + echo $0 "[conatiner name] [apiconfig in base64]" return -1 fi CONTAINER_NAME=$1 - cat src/config/apiConfig.json > src/config/apiConfig_local.json + APICONFIG_BASE64=$2 + + echo ${APICONFIG_BASE64} > config.tmp + base64 -d config.tmp > src/config/apiConfig_local.json + rm config.tmp set -x - docker rmi -f "$REGISTRY_NAME/$CONTAINER_NAME" - docker buildx build --no-cache -t $REGISTRY_NAME/$CONTAINER_NAME ./ + docker rmi -f "${REGISTRY_NAME}/${CONTAINER_NAME}" + docker buildx build --no-cache -t ${REGISTRY_NAME}/${CONTAINER_NAME} ./ set +x } @@ -27,9 +32,9 @@ function upload_image(){ #Global ENV VAR: REGISTRY_NAME #Global ENV VAR: CICD_REGISTRY_TOKEN #Global ENV VAR: CONTAINER_NAME - docker login $REGISTRY_SERVER -u "$REGISTRY_USER" -p "$CICD_REGISTRY_TOKEN" + docker login ${REGISTRY_SERVER} -u "${REGISTRY_USER}" -p "${CICD_REGISTRY_TOKEN}" set -x - docker push "$REGISTRY_NAME/$CONTAINER_NAME":$CONTAINER_VERSION + docker push "${REGISTRY_NAME}/${CONTAINER_NAME}":${CONTAINER_VERSION} set +x } diff --git a/v1/src/config/.gitkeep b/v1/src/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/v1/src/config/apiConfig.json b/v1/src/config/apiConfig.json deleted file mode 100644 index 17ee68f..0000000 --- a/v1/src/config/apiConfig.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "authentication": { - "pwdSecret":"Nx2g_IWo2Zt_LS$+", - "jwtSecret":"9o3BBz0EsrwXliwEJ/SFuywZoN8=", - "jwtTimeout":24, - "jwtRenewalTimeout":720, - "tokenSecret":"9Z'jMt|(h_f(&/S+zv.K", - "jwtOptions": { - "header": { - "typ": "access" - }, - "audience": "https://www.etaviaporte.com", - "issuer": "etaviaporte", - "algorithm": "HS256", - "expiresIn": "1d" - } - }, - "version" : { - "version" : "1.5.11", - "name": "ETA Beta", - "date":"22/07/2025" - }, - "S3" : { - "bucket": "etaviaporte", - "load_attachments_key":"loadattachments", - "news_key":"news", - "driver":{ - "minio":{ - "endPoint": "api.minio.cloud.etaviaporte.com", - "port": 443, - "useSSL": true, - "accessKey": "Ygw68RydX2mvktAwjFEj", - "secretKey": "FERMPPXAu68YWgu4enWUeZPINRcjIrhw8BaQM6ur" - } - } - }, - "sendgrid" : { - "HOST": "smtp.sendgrid.net", - "PORT": "465", - "username": "apikey", - "API_KEY": "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", - "FROM": "noreply@etaviaporte.com" - }, - "email_standalone" : { - "host": "smtp.hostinger.com", - "port": "465", - "secure": true, - "auth": { - "user": "noreply@etaviaporte.com", - "pass": "-)WJt[oP~P$`76Q4" - } - }, - "mongodb": "mongodb+srv://enruta_admin:NeptFx4RUZG8OsfA@enruta.vwofshy.mongodb.net/enrutaviaporte?retryWrites=true&w=majority" -}