manuals/.gitea/workflows/build-and-push-mkdocs-docker-image.yml
Julien Fastré beab98d36e
Some checks failed
continuous-integration/drone/push Build is failing
Build and Push MkDocs Docker Image / build-and-push (push) Successful in 2m21s
Remove debug content
2025-06-30 23:39:54 +02:00

94 lines
3.4 KiB
YAML

name: Build and Push MkDocs Docker Image
on:
push:
branches:
- main
- master
paths:
- 'Dockerfile'
- 'user/**'
- 'admin/**'
- '.gitea/workflows/**'
workflow_dispatch:
jobs:
build-and-push:
runs-on: cth-ubuntu-latest
env:
REGISTRY: ${{ vars.REGISTRY }}
IMAGE: ${{ vars.IMAGE }}
IMAGE_NAME: ${{ vars.REGISTRY }}/${{ vars.IMAGE }}:${{ github.sha }}
KUBE_CA: ${{ vars.KUBE_CA }}
KUBE_SERVER: ${{ vars.KUBE_SERVER }}
REGISTRY_USERNAME: ${{ vars.REGISTRY_USERNAME }}
NAMESPACE: ${{ vars.NAMESPACE }}
DEPLOYMENT_NAME: ${{ vars.DEPLOYMENT_NAME }}
CONTAINER: ${{ vars.CONTAINER }}
steps:
- name: Checkout code
uses: https://github.com/actions/checkout@v4
- name: Set up Docker Buildx
uses: https://github.com/docker/setup-buildx-action@v3
- name: Log in to Docker registry
uses: https://github.com/docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ env.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- name: Build and push
id: build-push
uses: https://github.com/docker/build-push-action@v5
with:
context: .
file: Dockerfile
push: true
tags: '${{ env.IMAGE_NAME }}'
- name: Install kubectl
run: |
curl -LO "https://dl.k8s.io/release/v1.31.0/bin/linux/amd64/kubectl"
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
- name: Set up kubeconfig
env:
KUBE_SERVER: ${{ env.KUBE_SERVER }} # e.g. https://<API_ENDPOINT>
KUBE_CA: ${{ env.KUBE_CA }} # base64 encoded, or fetched via kubectl config view
KUBE_TOKEN: ${{ secrets.KUBE_TOKEN }} # Token generated via 'kubectl create token'
run: |
mkdir -p ~/.kube
cat <<EOF > ~/.kube/config
apiVersion: v1
kind: Config
clusters:
- name: default-cluster
cluster:
server: "$KUBE_SERVER"
certificate-authority-data: "$KUBE_CA"
contexts:
- name: default-context
context:
cluster: default-cluster
user: gitea-actions
current-context: default-context
users:
- name: gitea-actions
user:
token: "$KUBE_TOKEN"
EOF
- name: Patch Deployment Image
env:
NAMESPACE: ${{ env.NAMESPACE }}
DEPLOYMENT: ${{ env.DEPLOYMENT_NAME }}
CONTAINER: ${{ env.CONTAINER }}
run: |
echo "deploy new tag: $TAG_IMAGE"
kubectl -n ${NAMESPACE} set image deployment/${DEPLOYMENT} ${CONTAINER}=${IMAGE_NAME}