Files
cf-bouncer-manager/.gitea/workflows/build.yaml
2026-02-09 12:16:24 +09:00

82 lines
2.3 KiB
YAML

name: CI/CD Pipeline
on:
push:
branches:
- main
tags:
- 'v*'
pull_request:
branches:
- main
env:
REGISTRY: gitea.anvil.it.com
IMAGE_NAME: ${{ gitea.repository }}
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build image
run: |
docker build -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ gitea.sha }} .
docker tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ gitea.sha }} \
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
- name: Tag version
if: startsWith(gitea.ref, 'refs/tags/v')
run: |
VERSION=${GITEA_REF#refs/tags/}
docker tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ gitea.sha }} \
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${VERSION}
- name: Login to Registry
if: gitea.event_name != 'pull_request'
run: |
docker login ${{ env.REGISTRY }} \
-u ${{ gitea.actor }} \
-p ${{ secrets.REGISTRY_TOKEN }}
- name: Push image
if: gitea.event_name != 'pull_request'
run: |
docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ gitea.sha }}
docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
- name: Push version tag
if: startsWith(gitea.ref, 'refs/tags/v')
run: |
VERSION=${GITEA_REF#refs/tags/}
docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${VERSION}
deploy:
runs-on: ubuntu-latest
needs: build
if: gitea.event_name != 'pull_request'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup kubeconfig
run: |
mkdir -p ~/.kube
echo "${{ secrets.KUBE_CONFIG }}" | base64 -d > ~/.kube/config
chmod 600 ~/.kube/config
- name: Apply manifests
run: |
kubectl apply -f k8s/configmap.yaml -f k8s/service.yaml -f k8s/deployment.yaml
- name: Update image
run: |
kubectl set image deployment/cfb-manager \
cfb-manager=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ gitea.sha }}
- name: Wait for rollout
run: |
kubectl rollout status deployment/cfb-manager --timeout=120s