188 lines
6.0 KiB
YAML
188 lines
6.0 KiB
YAML
name: Build Docker Image
|
|
|
|
on:
|
|
push:
|
|
# branches:
|
|
# - main
|
|
tags:
|
|
- "v*"
|
|
|
|
jobs:
|
|
build-backend:
|
|
runs-on: docker
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Login to Docker registry
|
|
run: |
|
|
echo "${{ secrets.REGISTRY_PASSWORD }}" | \
|
|
docker login git.koppkb.com \
|
|
-u "${{ secrets.REGISTRY_USERNAME }}" \
|
|
--password-stdin
|
|
|
|
- name: Build & push backend image
|
|
run: |
|
|
set -e
|
|
|
|
IMAGE="git.koppkb.com/kopkb/qms-be"
|
|
TAGS="-t ${IMAGE}:${{ gitea.sha }}"
|
|
|
|
if [ "${{ gitea.ref_type }}" = "tag" ] && echo "${{ gitea.ref_name }}" | grep -q '^v'; then
|
|
TAGS="${TAGS} -t ${IMAGE}:${{ gitea.ref_name }}"
|
|
fi
|
|
|
|
echo "Building and pushing backend: ${TAGS}"
|
|
docker buildx build \
|
|
--platform linux/amd64 \
|
|
--cache-from type=registry,ref=${IMAGE}:buildcache,ignore-error=true \
|
|
--cache-to type=registry,ref=${IMAGE}:buildcache,mode=max \
|
|
-f be/Dockerfile \
|
|
${TAGS} \
|
|
--push \
|
|
be
|
|
|
|
build-admin:
|
|
runs-on: docker
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Login to Docker registry
|
|
run: |
|
|
echo "${{ secrets.REGISTRY_PASSWORD }}" | \
|
|
docker login git.koppkb.com \
|
|
-u "${{ secrets.REGISTRY_USERNAME }}" \
|
|
--password-stdin
|
|
|
|
- name: Build & push admin frontend image
|
|
run: |
|
|
set -e
|
|
|
|
IMAGE="git.koppkb.com/kopkb/qms-fe-admin"
|
|
TAGS="-t ${IMAGE}:${{ gitea.sha }}"
|
|
API_URL="${{ secrets.VITE_API_URL }}"
|
|
# Branch QR display URL only (public domain via nginx)
|
|
BRANCH_QR_BASE_URL="${{ secrets.VITE_BRANCH_QR_BASE_URL }}"
|
|
if [ -z "${BRANCH_QR_BASE_URL}" ]; then
|
|
BRANCH_QR_BASE_URL="https://qms-customer.erahn.com.my"
|
|
fi
|
|
|
|
if [ -z "${API_URL}" ]; then
|
|
echo "ERROR: Set Gitea secret VITE_API_URL (e.g. http://172.16.6.200:8080)"
|
|
exit 1
|
|
fi
|
|
|
|
if [ "${{ gitea.ref_type }}" = "tag" ] && echo "${{ gitea.ref_name }}" | grep -q '^v'; then
|
|
TAGS="${TAGS} -t ${IMAGE}:${{ gitea.ref_name }}"
|
|
fi
|
|
|
|
echo "Building and pushing admin: ${TAGS}"
|
|
echo "VITE_API_URL=${API_URL}"
|
|
echo "VITE_BRANCH_QR_BASE_URL=${BRANCH_QR_BASE_URL}"
|
|
docker buildx build \
|
|
--platform linux/amd64 \
|
|
--build-arg VITE_API_URL="${API_URL}" \
|
|
--build-arg VITE_BRANCH_QR_BASE_URL="${BRANCH_QR_BASE_URL}" \
|
|
--cache-from type=registry,ref=${IMAGE}:buildcache,ignore-error=true \
|
|
--cache-to type=registry,ref=${IMAGE}:buildcache,mode=max \
|
|
-f fe/web/admin-app/Dockerfile \
|
|
${TAGS} \
|
|
--push \
|
|
fe/web/admin-app
|
|
|
|
build-teller:
|
|
runs-on: docker
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Login to Docker registry
|
|
run: |
|
|
echo "${{ secrets.REGISTRY_PASSWORD }}" | \
|
|
docker login git.koppkb.com \
|
|
-u "${{ secrets.REGISTRY_USERNAME }}" \
|
|
--password-stdin
|
|
|
|
- name: Build & push teller frontend image
|
|
run: |
|
|
set -e
|
|
|
|
IMAGE="git.koppkb.com/kopkb/qms-fe-teller"
|
|
TAGS="-t ${IMAGE}:${{ gitea.sha }}"
|
|
API_URL="${{ secrets.VITE_API_URL }}"
|
|
|
|
if [ -z "${API_URL}" ]; then
|
|
echo "ERROR: Set Gitea secret VITE_API_URL (e.g. http://172.16.6.200:8080)"
|
|
exit 1
|
|
fi
|
|
|
|
if [ "${{ gitea.ref_type }}" = "tag" ] && echo "${{ gitea.ref_name }}" | grep -q '^v'; then
|
|
TAGS="${TAGS} -t ${IMAGE}:${{ gitea.ref_name }}"
|
|
fi
|
|
|
|
GOLD_PRICE_URL="${{ secrets.VITE_GOLD_PRICE_URL }}"
|
|
if [ -z "${GOLD_PRICE_URL}" ]; then
|
|
GOLD_PRICE_URL="https://apiujrah.erahn.com.my/api/harga_emas"
|
|
fi
|
|
|
|
echo "Building and pushing teller: ${TAGS}"
|
|
docker buildx build \
|
|
--platform linux/amd64 \
|
|
--build-arg VITE_API_URL="${API_URL}" \
|
|
--build-arg VITE_GOLD_PRICE_URL="${GOLD_PRICE_URL}" \
|
|
--cache-from type=registry,ref=${IMAGE}:buildcache,ignore-error=true \
|
|
--cache-to type=registry,ref=${IMAGE}:buildcache,mode=max \
|
|
-f fe/web/teller-app/Dockerfile \
|
|
${TAGS} \
|
|
--push \
|
|
fe/web/teller-app
|
|
|
|
build-customer:
|
|
runs-on: docker
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Login to Docker registry
|
|
run: |
|
|
echo "${{ secrets.REGISTRY_PASSWORD }}" | \
|
|
docker login git.koppkb.com \
|
|
-u "${{ secrets.REGISTRY_USERNAME }}" \
|
|
--password-stdin
|
|
|
|
- name: Build & push customer frontend image
|
|
run: |
|
|
set -e
|
|
|
|
IMAGE="git.koppkb.com/kopkb/qms-fe-customer"
|
|
TAGS="-t ${IMAGE}:${{ gitea.sha }}"
|
|
API_URL="${{ secrets.NEXT_PUBLIC_API_URL }}"
|
|
if [ -z "${API_URL}" ]; then
|
|
API_URL="${{ secrets.VITE_API_URL }}"
|
|
fi
|
|
|
|
if [ -z "${API_URL}" ]; then
|
|
echo "ERROR: Set Gitea secret NEXT_PUBLIC_API_URL or VITE_API_URL (e.g. http://172.16.6.200:8080)"
|
|
exit 1
|
|
fi
|
|
|
|
if [ "${{ gitea.ref_type }}" = "tag" ] && echo "${{ gitea.ref_name }}" | grep -q '^v'; then
|
|
TAGS="${TAGS} -t ${IMAGE}:${{ gitea.ref_name }}"
|
|
fi
|
|
|
|
echo "Building and pushing customer: ${TAGS}"
|
|
docker buildx build \
|
|
--platform linux/amd64 \
|
|
--build-arg NEXT_PUBLIC_API_URL="${API_URL}" \
|
|
--cache-from type=registry,ref=${IMAGE}:buildcache,ignore-error=true \
|
|
--cache-to type=registry,ref=${IMAGE}:buildcache,mode=max \
|
|
-f fe/web/customer-app/Dockerfile \
|
|
${TAGS} \
|
|
--push \
|
|
fe/web/customer-app
|