Update .gitlab-ci.yml file

This commit is contained in:
kris
2025-11-11 04:32:51 +00:00
parent af4926b1d7
commit ebc960abb5
+17 -18
View File
@@ -14,9 +14,9 @@ stages:
NPM_CONFIG_PRODUCTION: "false" NPM_CONFIG_PRODUCTION: "false"
NODE_ENV: "" NODE_ENV: ""
script: script:
- echo "🧩 Installing dependencies..." - echo "Installing dependencies..."
- npm ci --no-audit --no-fund - npm ci --no-audit --no-fund
- echo "⚙️ Building Next.js static export..." - echo "Building Next.js static export..."
- npx next build - npx next build
artifacts: artifacts:
name: "out-$CI_COMMIT_SHORT_SHA" name: "out-$CI_COMMIT_SHORT_SHA"
@@ -24,44 +24,43 @@ stages:
- out/ - out/
expire_in: 1 week expire_in: 1 week
# ====== TEMPLATE: DEPLOY KE S3 + CLOUDFRONT + NOTICE DISCORD ======
.deploy_template: &deploy_template .deploy_template: &deploy_template
stage: deploy stage: deploy
image: image:
name: amazon/aws-cli:latest name: amazon/aws-cli:latest
entrypoint: ["/bin/sh", "-c"] entrypoint: ["/bin/sh", "-c"]
script: script:
- set -e
- aws --version - aws --version
- echo "🧹 Cleaning up newline characters in AWS credentials..." - echo "Cleaning up newline characters in AWS credentials..."
- export AWS_ACCESS_KEY_ID=$(echo $AWS_ACCESS_KEY_ID | tr -d '\r\n') - export AWS_ACCESS_KEY_ID=$(echo $AWS_ACCESS_KEY_ID | tr -d '\r\n')
- export AWS_SECRET_ACCESS_KEY=$(echo $AWS_SECRET_ACCESS_KEY | tr -d '\r\n') - export AWS_SECRET_ACCESS_KEY=$(echo $AWS_SECRET_ACCESS_KEY | tr -d '\r\n')
- echo "🚀 Deploying to s3://$S3_BUCKET in region $AWS_REGION" - echo "Deploying to s3://$S3_BUCKET in region $AWS_REGION"
- aws s3api head-bucket --bucket "$S3_BUCKET" --region "$AWS_REGION" || aws s3api create-bucket --bucket "$S3_BUCKET" --region "$AWS_REGION" --create-bucket-configuration LocationConstraint="$AWS_REGION" - aws s3api head-bucket --bucket "$S3_BUCKET" --region "$AWS_REGION" || aws s3api create-bucket --bucket "$S3_BUCKET" --region "$AWS_REGION" --create-bucket-configuration LocationConstraint="$AWS_REGION"
- aws s3 sync ./out "s3://$S3_BUCKET" --delete --region "$AWS_REGION" --endpoint-url "https://s3.ap-southeast-3.amazonaws.com" - aws s3 sync ./out "s3://$S3_BUCKET" --delete --region "$AWS_REGION" --endpoint-url "https://s3.ap-southeast-3.amazonaws.com"
# CloudFront invalidation # CloudFront invalidation
- | - |
STATUS="success"
if [ -n "$CLOUDFRONT_DISTRIBUTION_ID" ]; then if [ -n "$CLOUDFRONT_DISTRIBUTION_ID" ]; then
echo "📦 Invalidating CloudFront cache..." echo "Invalidating CloudFront cache..."
aws cloudfront create-invalidation \ if ! aws cloudfront create-invalidation --distribution-id "$CLOUDFRONT_DISTRIBUTION_ID" --paths "/*"; then
--distribution-id "$CLOUDFRONT_DISTRIBUTION_ID" \ echo "CloudFront invalidation failed."
--paths "/*" STATUS="failed"
fi
else else
echo "No CloudFront distribution specified — skipping invalidation" echo "No CloudFront distribution specified — skipping invalidation"
fi fi
if [ "$CI_JOB_STATUS" = "success" ]; then
STATUS='success' # Notifikasi Discord
else
STATUS='failed'
fi
# 🔔 Notifikasi Discord
- | - |
RUN_URL="${CI_PROJECT_URL}/-/pipelines/${CI_PIPELINE_ID}" RUN_URL="${CI_PROJECT_URL}/-/pipelines/${CI_PIPELINE_ID}"
# Tentukan nama environment untuk pesan # Tentukan nama environment
if [ "$CI_COMMIT_BRANCH" = "devops-s3" ]; then if [ "$CI_COMMIT_BRANCH" = "devops-s3" ]; then
ENVIRONMENT_NAME="WEB-LTI-DEV" ENVIRONMENT_NAME="WEB-LTI-DEV"
elif [ "$CI_COMMIT_BRANCH" = "master" ]; then elif [ "$CI_COMMIT_BRANCH" = "master" ]; then
ENVIRONMENT_NAME="WEB-LTI-DEV" ENVIRONMENT_NAME="WEB-LTI-PROD"
else else
ENVIRONMENT_NAME="UNKNOWN" ENVIRONMENT_NAME="UNKNOWN"
fi fi