mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-20 13:31:56 +00:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| febc228115 |
+32
-16
@@ -14,9 +14,10 @@ variables:
|
|||||||
|
|
||||||
workflow:
|
workflow:
|
||||||
rules:
|
rules:
|
||||||
# run untuk push & MR
|
# run untuk branch utama & MR
|
||||||
- if: '$CI_PIPELINE_SOURCE == "push"'
|
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "development"'
|
||||||
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "production"'
|
||||||
|
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "production"'
|
||||||
- when: never
|
- when: never
|
||||||
|
|
||||||
# =========================
|
# =========================
|
||||||
@@ -40,12 +41,9 @@ workflow:
|
|||||||
echo "$PASS" | docker login --username AWS --password-stdin "$ECR_REGISTRY"
|
echo "$PASS" | docker login --username AWS --password-stdin "$ECR_REGISTRY"
|
||||||
|
|
||||||
# =========================
|
# =========================
|
||||||
# PROD
|
# MR
|
||||||
# 1) MR ke target production: build (optional push)
|
|
||||||
# 2) Push ke production: build + push + update gitops
|
|
||||||
# =========================
|
# =========================
|
||||||
|
build_mr:
|
||||||
build_prod_mr:
|
|
||||||
stage: build
|
stage: build
|
||||||
image: public.ecr.aws/docker/library/docker:27
|
image: public.ecr.aws/docker/library/docker:27
|
||||||
tags: [self-hosted-dev]
|
tags: [self-hosted-dev]
|
||||||
@@ -53,8 +51,6 @@ build_prod_mr:
|
|||||||
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "production"'
|
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "production"'
|
||||||
variables:
|
variables:
|
||||||
IMAGE_TAG: "prod-mr-${CI_COMMIT_SHORT_SHA}"
|
IMAGE_TAG: "prod-mr-${CI_COMMIT_SHORT_SHA}"
|
||||||
# kalau mau push juga saat MR, set di project/CI variable: PUSH_IMAGE=true
|
|
||||||
PUSH_IMAGE: "${PUSH_IMAGE:-false}"
|
|
||||||
before_script:
|
before_script:
|
||||||
- set -eu
|
- set -eu
|
||||||
- docker version
|
- docker version
|
||||||
@@ -64,14 +60,34 @@ build_prod_mr:
|
|||||||
set -eu
|
set -eu
|
||||||
echo "Build (MR) : $ECR_REPOSITORY:$IMAGE_TAG"
|
echo "Build (MR) : $ECR_REPOSITORY:$IMAGE_TAG"
|
||||||
docker build -f Dockerfile -t "$ECR_REPOSITORY:$IMAGE_TAG" .
|
docker build -f Dockerfile -t "$ECR_REPOSITORY:$IMAGE_TAG" .
|
||||||
|
echo "Pushing image for MR..."
|
||||||
|
docker push "$ECR_REPOSITORY:$IMAGE_TAG"
|
||||||
|
|
||||||
if [ "$PUSH_IMAGE" = "true" ]; then
|
# =========================
|
||||||
echo "Pushing image for MR..."
|
# DEVELOPMENT (push branch development)
|
||||||
docker push "$ECR_REPOSITORY:$IMAGE_TAG"
|
# =========================
|
||||||
else
|
build_push_dev:
|
||||||
echo "Skip push (MR)."
|
stage: build
|
||||||
fi
|
image: public.ecr.aws/docker/library/docker:27
|
||||||
|
tags: [self-hosted-dev]
|
||||||
|
rules:
|
||||||
|
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "development"'
|
||||||
|
variables:
|
||||||
|
IMAGE_TAG: "dev-${CI_COMMIT_SHORT_SHA}"
|
||||||
|
before_script:
|
||||||
|
- set -eu
|
||||||
|
- docker version
|
||||||
|
- docker info
|
||||||
|
- *ecr_login
|
||||||
|
script: |
|
||||||
|
set -eu
|
||||||
|
echo "Build & push (dev): $ECR_REPOSITORY:$IMAGE_TAG"
|
||||||
|
docker build -f Dockerfile -t "$ECR_REPOSITORY:$IMAGE_TAG" .
|
||||||
|
docker push "$ECR_REPOSITORY:$IMAGE_TAG"
|
||||||
|
|
||||||
|
# =========================
|
||||||
|
# PRODUCTION (push branch production)
|
||||||
|
# =========================
|
||||||
build_push_prod:
|
build_push_prod:
|
||||||
stage: build
|
stage: build
|
||||||
image: public.ecr.aws/docker/library/docker:27
|
image: public.ecr.aws/docker/library/docker:27
|
||||||
|
|||||||
Reference in New Issue
Block a user