82 lines
2.5 KiB
YAML
82 lines
2.5 KiB
YAML
name: Docker Image CI
|
|
|
|
on:
|
|
push:
|
|
branches: [ "main" ]
|
|
pull_request:
|
|
branches: [ "main" ]
|
|
|
|
env:
|
|
VERSION: "value"
|
|
|
|
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 2: Versienummer ophalen uit package.json
|
|
- name: Extract Angular version
|
|
id: get_versionEnv
|
|
run: VERSION = $(cat package.json | jq -r '.version')
|
|
|
|
- name: echo Version
|
|
id: showVersion
|
|
run: echo VERSION
|
|
|
|
# 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 }}
|
|
port: ${{ secrets.TRUENAS_PORT }}
|
|
script: |
|
|
# Stap 2: K3s Kubernetes-configuratie instellen
|
|
export KUBEVERSION=/etc/rancher/k3s/k3s.yaml
|
|
export KUBECONFIG=$KUBEVERSION
|
|
|
|
k3s kubectl apply -f deployment.yaml
|
|
|
|
k3s kubectl apply -f service.yaml
|
|
|
|
# Stap 4: Update de Kubernetes deployment (optioneel, vervang bestaande image)
|
|
k3s kubectl set image deployment/weetikveel weetikveel=veenm/weetikveel:${{ env.VERSION }} --record
|
|
|
|
# Stap 5: Controleer de status van de pods en services
|
|
k3s kubectl rollout status deployment/weetikveel
|
|
k3s kubectl get pods
|
|
k3s kubectl get service
|