Files
sidata/.gitea/workflows/deploy.yaml
T
gitea 018ec9a694
CI/CD Pipeline to Rancher - SIDATA / build-and-deploy (push) Failing after 2m3s
ci: sesuaikan pipeline deploy sidata-prod
2026-09-06 12:22:43 +07:00

97 lines
2.6 KiB
YAML

name: CI/CD Pipeline to Rancher - SIDATA
on:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
# Login ke Gitea Container Registry
- name: Log in to Gitea Container Registry
uses: docker/login-action@v2
with:
registry: 10.15.39.187:3000
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASSWORD }}
# Build & Push Image SIDATA ke Gitea Registry
- name: Build and Push Docker Image
uses: docker/build-push-action@v4
with:
context: .
push: true
tags: |
10.15.39.187:3000/${{ secrets.REGISTRY_USER }}/sidata:latest
10.15.39.187:3000/${{ secrets.REGISTRY_USER }}/sidata:${{ gitea.sha }}
# Deploy ke Rancher
- name: Deploy to Rancher Cluster
shell: bash
run: |
set -e
echo "=== Download kubectl ==="
KUBECTL_VERSION=$(curl -L -s https://dl.k8s.io/release/stable.txt)
curl -fLO \
"https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl"
chmod +x kubectl
echo "kubectl version:"
./kubectl version --client
echo "=== Configure Rancher Kubeconfig ==="
./kubectl config set-cluster rancher-cluster \
--server="${{ secrets.RANCHER_URL }}/k8s/clusters/${{ secrets.RANCHER_CLUSTER_ID }}" \
--insecure-skip-tls-verify=true
./kubectl config set-credentials rancher-user \
--token="${{ secrets.RANCHER_TOKEN }}"
./kubectl config set-context rancher-context \
--cluster=rancher-cluster \
--user=rancher-user
./kubectl config use-context rancher-context
echo "=== Check Cluster ==="
./kubectl cluster-info
echo "=== Check SIDATA Deployment ==="
./kubectl get deployment -n sidata-prod
echo "=== Update SIDATA Image ==="
IMAGE="10.15.39.187:3000/${{ secrets.REGISTRY_USER }}/sidata:${{ gitea.sha }}"
echo "Deploy image: ${IMAGE}"
./kubectl set image \
deployment/sidata \
sidata="${IMAGE}" \
-n sidata-prod
echo "=== Wait Rollout ==="
./kubectl rollout status \
deployment/sidata \
-n sidata-prod \
--timeout=10m
echo "=== Deployment Status ==="
./kubectl get deployment sidata -n sidata-prod
./kubectl get pods -n sidata-prod -l app=sidata