diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..a075f0d --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,45 @@ +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: self-hosted + 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