Files
weetikveel/.github/workflows/docker-image.yml
2024-12-02 13:28:15 +01:00

68 lines
2.1 KiB
YAML

name: Docker Image CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
# Stap 1: Code ophalen
- uses: actions/checkout@v4
# Stap 2: Versienummer ophalen uit package.json
- name: Extract Angular version
id: get_version
run: echo "VERSION=$(cat package.json | jq -r '.version')" >> $GITHUB_ENV
# Stap 3: Inloggen bij Docker Hub
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
# Stap 4: Docker-image bouwen en taggen met Angular-versie
- name: Build the Docker image
run: docker build . --file Dockerfile --tag veenm/weetikveel:${{ env.VERSION }} --tag veenm/weetikveel:latest
# Stap 5: Docker-image pushen naar Docker Hub (huidige versie tag)
- name: Push the Docker image (version)
run: docker push veenm/weetikveel:${{ env.VERSION }}
# Stap 6: Docker-image pushen naar Docker Hub (latest tag)
- name: Push the Docker image (latest)
run: docker push veenm/weetikveel:latest
deploy:
needs: build-and-push
runs-on: ubuntu-latest
steps:
# Stap 1: Maak verbinding via SSH naar de TrueNAS SCALE server
- name: SSH into TrueNAS SCALE
uses: appleboy/ssh-action@v0.1.10
with:
host: ${{ secrets.TRUENAS_HOST }}
username: ${{ secrets.TRUENAS_USER }}
password: ${{ secrets.TRUENAS_PASSWORD }}
script: |
# Stap 2: K3s Kubernetes-configuratie instellen
export KUBEVERSION=/etc/rancher/k3s/k3s.yaml
export KUBECONFIG=$KUBEVERSION
k3s kubectl apply -f deployment.yaml
# Stap 3: Update de Kubernetes deployment (vervang je Docker image)
k3s kubectl set image deployment/weetikveel weetikveel=veenm/weetikveel:${{ env.VERSION }} --record
# Stap 4: Deployment uitrollen naar K3s
k3s kubectl rollout status deployment/weetikveel
# (Optioneel) Stap 5: Controleer de status van de pods
k3s kubectl get pods