fix: use Nexus registry for SIDATA

This commit is contained in:
2026-09-07 14:14:59 +07:00
parent 29785df970
commit 89b16d48b6
+185 -16
View File
@@ -14,11 +14,48 @@ steps:
docker version
echo ""
echo "Docker executable:"
which docker
# ============================================================
# 2. Login Nexus
# 2. Check Registry Credentials
# ============================================================
- name: Login Container Registry
- name: Check Registry Credentials
shell: bash
env:
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
run: |
set -e
echo "=========================================="
echo "CHECK REGISTRY CREDENTIALS"
echo "=========================================="
echo "REGISTRY_USER length: ${#REGISTRY_USER}"
echo "REGISTRY_PASSWORD length: ${#REGISTRY_PASSWORD}"
if [ -z "$REGISTRY_USER" ]; then
echo "ERROR: REGISTRY_USER kosong"
exit 1
fi
if [ -z "$REGISTRY_PASSWORD" ]; then
echo "ERROR: REGISTRY_PASSWORD kosong"
exit 1
fi
echo "Registry credentials tersedia."
# ============================================================
# 3. Login Nexus
# ============================================================
- name: Login Nexus
shell: bash
env:
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
run: |
set -e
@@ -26,14 +63,17 @@ steps:
echo "LOGIN NEXUS"
echo "=========================================="
echo "${{ secrets.REGISTRY_PASSWORD }}" | \
docker login \
registry-bpkd.drc-bpkd.data-center.id \
--username "${{ secrets.REGISTRY_USER }}" \
REGISTRY="registry-nexus-bpkd.drc-bpkd.data-center.id"
printf '%s' "$REGISTRY_PASSWORD" | \
docker login "$REGISTRY" \
--username "$REGISTRY_USER" \
--password-stdin
echo "Login Nexus berhasil."
# ============================================================
# 3. Pull Base Image
# 4. Pull Base Image dari Nexus
# ============================================================
- name: Pull Base Image
shell: bash
@@ -44,11 +84,17 @@ steps:
echo "PULL BASE IMAGE"
echo "=========================================="
docker pull \
registry-nexus-bpkd.drc-bpkd.data-center.id/php74-fpm-oci8-lengkap:1.0
BASE_IMAGE="registry-nexus-bpkd.drc-bpkd.data-center.id/php74-fpm-oci8-lengkap:1.0"
echo "Base image:"
echo "$BASE_IMAGE"
docker pull "$BASE_IMAGE"
echo "Base image berhasil."
# ============================================================
# 4. Build
# 5. Build Application Image
# ============================================================
- name: Build Docker Image
shell: bash
@@ -68,30 +114,153 @@ steps:
--build-arg NO_PROXY="$NO_PROXY" \
-t sidata:latest .
echo ""
echo "BUILD BERHASIL"
docker images | grep sidata
# ============================================================
# 5. Tag
# 6. Tag Image ke Nexus
# ============================================================
- name: Tag Image
shell: bash
env:
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
run: |
set -e
IMAGE="registry-bpkd.drc-bpkd.data-center.id/${{ secrets.REGISTRY_USER }}/sidata"
echo "=========================================="
echo "TAG IMAGE"
echo "=========================================="
REGISTRY="registry-nexus-bpkd.drc-bpkd.data-center.id"
IMAGE="${REGISTRY}/${REGISTRY_USER}/sidata"
docker tag sidata:latest "${IMAGE}:latest"
docker tag sidata:latest "${IMAGE}:${{ gitea.sha }}"
echo "Image:"
echo "${IMAGE}:latest"
echo "${IMAGE}:${{ gitea.sha }}"
# ============================================================
# 6. Push
# 7. Push Image ke Nexus
# ============================================================
- name: Push Image
shell: bash
env:
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
run: |
set -e
echo "=========================================="
echo "PUSH IMAGE KE NEXUS"
echo "=========================================="
REGISTRY="registry-nexus-bpkd.drc-bpkd.data-center.id"
IMAGE="${REGISTRY}/${REGISTRY_USER}/sidata"
docker push "${IMAGE}:latest"
docker push "${IMAGE}:${{ gitea.sha }}"
echo ""
echo "=========================================="
echo "PUSH BERHASIL"
echo "=========================================="
# ============================================================
# 8. Install kubectl
# ============================================================
- name: Install kubectl
shell: bash
run: |
set -e
IMAGE="registry-bpkd.drc-bpkd.data-center.id/${{ secrets.REGISTRY_USER }}/sidata"
echo "=========================================="
echo "INSTALL KUBECTL"
echo "=========================================="
docker push "${IMAGE}:latest"
docker push "${IMAGE}:${{ gitea.sha }}"
KUBECTL_VERSION=$(curl -L -s https://dl.k8s.io/release/stable.txt)
curl -fL \
"https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl" \
-o kubectl
chmod +x kubectl
./kubectl version --client
# ============================================================
# 9. Configure Rancher
# ============================================================
- name: Configure Rancher
shell: bash
env:
RANCHER_URL: ${{ secrets.RANCHER_URL }}
RANCHER_CLUSTER_ID: ${{ secrets.RANCHER_CLUSTER_ID }}
RANCHER_TOKEN: ${{ secrets.RANCHER_TOKEN }}
run: |
set -e
echo "=========================================="
echo "CONFIGURE RANCHER"
echo "=========================================="
./kubectl config set-cluster rancher-cluster \
--server="${RANCHER_URL}/k8s/clusters/${RANCHER_CLUSTER_ID}" \
--insecure-skip-tls-verify=true
./kubectl config set-credentials rancher-user \
--token="${RANCHER_TOKEN}"
./kubectl config set-context rancher-context \
--cluster=rancher-cluster \
--user=rancher-user
./kubectl config use-context rancher-context
# ============================================================
# 10. Test Rancher
# ============================================================
- name: Test Rancher Connection
shell: bash
run: |
set -e
echo "=========================================="
echo "RANCHER CONNECTION"
echo "=========================================="
./kubectl cluster-info
./kubectl get nodes
# ============================================================
# 11. Deploy Kubernetes
# ============================================================
- name: Deploy to Rancher
shell: bash
run: |
set -e
echo "=========================================="
echo "DEPLOY SIDATA"
echo "=========================================="
if [ -d "k8s" ]; then
./kubectl apply -f k8s/
elif [ -f "deploy.yaml" ]; then
./kubectl apply -f deploy.yaml
elif [ -f "deployment.yaml" ]; then
./kubectl apply -f deployment.yaml
else
echo "ERROR: Manifest Kubernetes tidak ditemukan."
exit 1
fi
echo ""
echo "=========================================="
echo "STATUS DEPLOYMENT"
echo "=========================================="
./kubectl get deployments -A
./kubectl get pods -A