46 lines
1.2 KiB
YAML
46 lines
1.2 KiB
YAML
name: Build & Deploy to K3s
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
|
|
env:
|
|
REGISTRY: git.ordinarthurbarre.fr
|
|
IMAGE: git.ordinarthurbarre.fr/ordinarthur/aurelie-portfolio
|
|
|
|
jobs:
|
|
build-and-deploy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Login to Gitea Container Registry
|
|
run: |
|
|
echo "${{ secrets.REGISTRY_PASSWORD }}" | \
|
|
docker login ${{ env.REGISTRY }} -u ordinarthur --password-stdin
|
|
|
|
- name: Build Docker image
|
|
run: |
|
|
docker build -t ${{ env.IMAGE }}:${{ github.sha }} -t ${{ env.IMAGE }}:latest .
|
|
|
|
- name: Push to registry
|
|
run: |
|
|
docker push ${{ env.IMAGE }}:${{ github.sha }}
|
|
docker push ${{ env.IMAGE }}:latest
|
|
|
|
- name: Deploy to K3s
|
|
run: |
|
|
kubectl apply -f k8s/namespace.yml
|
|
kubectl apply -f k8s/service.yml
|
|
kubectl apply -f k8s/deployment.yml
|
|
|
|
kubectl -n portfolio set image deployment/aurelie-portfolio \
|
|
aurelie-portfolio=${{ env.IMAGE }}:${{ github.sha }}
|
|
|
|
kubectl -n portfolio rollout status deployment/aurelie-portfolio --timeout=120s
|
|
|
|
- name: Cleanup old images
|
|
run: |
|
|
docker image prune -f
|