name: Build and Deploy on: push: branches: - main - dev - 'feat/**' - 'test/**' - 'fix/**' - 'hotfix/**' env: REGISTRY: git.avisenna-engineering.de IMAGE: git.avisenna-engineering.de/keyvan/avisenna-landing-page VERSION: latest NAMESPACE: ${{ github.ref == 'refs/heads/main' && 'prod' || 'web' }} jobs: build-and-deploy: runs-on: ubuntu-latest container: image: git.avisenna-engineering.de/keyvan/ci-runner:latest volumes: - /var/run/docker.sock:/var/run/docker.sock - /etc/rancher/k3s/k3s.yaml:/etc/rancher/k3s/k3s.yaml env: KUBECONFIG: /etc/rancher/k3s/k3s.yaml steps: - name: Checkout code uses: actions/checkout@v4 - name: Login to Forgejo registry run: echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login $REGISTRY -u ${{ secrets.REGISTRY_USERNAME }} --password-stdin - name: Build and push Docker image run: | docker build -t $IMAGE:$VERSION . docker push $IMAGE:$VERSION - name: Deploy to Kubernetes run: | kubectl set image deployment/homepage homepage=$IMAGE:$VERSION -n $NAMESPACE kubectl rollout restart deployment/homepage -n $NAMESPACE