init: go api with CI/CD
All checks were successful
Build & Deploy Go API / build (push) Successful in 33s
All checks were successful
Build & Deploy Go API / build (push) Successful in 33s
This commit is contained in:
50
.gitea/workflows/build.yml
Normal file
50
.gitea/workflows/build.yml
Normal file
@@ -0,0 +1,50 @@
|
||||
name: Build & Deploy Go API
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
|
||||
env:
|
||||
REGISTRY: zot-registry.cicd.svc.cluster.local:5000
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: self-hosted
|
||||
steps:
|
||||
- name: Install build tools
|
||||
run: apk add --no-cache curl git docker-cli 2>/dev/null || true
|
||||
|
||||
- name: Clone + prepare
|
||||
run: |
|
||||
WORK=/root/.cache/demo-go-api
|
||||
mkdir -p $WORK
|
||||
cd $WORK
|
||||
[ -d .git ] || git clone http://joe:${GITEA_TOKEN}@192.168.1.212:3000/joe/demo-go-api.git .
|
||||
git pull
|
||||
|
||||
- name: Build & push image
|
||||
run: |
|
||||
cd /root/.cache/demo-go-api
|
||||
SHORT=${GITHUB_SHA::8}
|
||||
TAG="${REGISTRY}/demo-go-api:${SHORT}"
|
||||
LATEST="${REGISTRY}/demo-go-api:latest"
|
||||
docker build --build-arg VERSION=${SHORT} -t "${TAG}" -t "${LATEST}" .
|
||||
docker push "${TAG}"
|
||||
docker push "${LATEST}"
|
||||
echo "✓ Pushed ${TAG}"
|
||||
env:
|
||||
GITHUB_SHA: ${{ github.sha }}
|
||||
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
||||
|
||||
- name: Patch ArgoCD
|
||||
run: |
|
||||
SHORT=${GITHUB_SHA::8}
|
||||
if kubectl -n argocd get application demo-go-api &>/dev/null; then
|
||||
kubectl -n argocd patch application demo-go-api --type merge \
|
||||
-p "{\"spec\":{\"source\":{\"helm\":{\"parameters\":[{\"name\":\"image.tag\",\"value\":\"${SHORT}\"}]}}}}"
|
||||
echo "✓ ArgoCD patched"
|
||||
else
|
||||
echo "⚠ demo-go-api Application not yet created"
|
||||
fi
|
||||
env:
|
||||
GITHUB_SHA: ${{ github.sha }}
|
||||
Reference in New Issue
Block a user