name: CI/CD Pipeline popravak on: push: branches: [main] env: REGISTRY: git.fpmoz.sum.ba IMAGE: git.fpmoz.sum.ba/${{ github.repository }} jobs: build: runs-on: ubuntu-latest steps: - name: Checkout koda uses: actions/checkout@v3 - name: Login u Gitea registry run: | echo ${{ secrets.REGISTRY_PASS }} | \ docker login git.fpmoz.sum.ba \ -u ${{ secrets.REGISTRY_USER }} --password-stdin - name: Build i Push image run: | TAG=${{ github.sha }} docker build -t $IMAGE:$TAG -t $IMAGE:latest . docker push $IMAGE:$TAG docker push $IMAGE:latest echo $TAG > tag.txt - name: Spremi image tag uses: actions/upload-artifact@v3 with: name: image-tag path: tag.txt deploy: needs: build runs-on: ubuntu-latest steps: - name: Checkout koda uses: actions/checkout@v3 - name: Preuzmi image tag uses: actions/download-artifact@v3 with: name: image-tag - name: Instaliraj kubectl uses: azure/setup-kubectl@v3 with: version: 'latest' - name: Postavi kubeconfig run: | # 1. Uzimamo tvoj plavi kod i pretvaramo ga nazad u pravu datoteku echo "${{ secrets.KUBE_CONFIG }}" | base64 -d > kubeconfig chmod 600 kubeconfig - name: Update image tag u manifestu run: | TAG=$(cat tag.txt) IMAGE="ghcr.io/sz11zs/hello-cicd" sed -i "s|image:.*|image: $IMAGE:$TAG|" k8s/deployment.yaml - name: Deploy na k3s run: | # 2. DODATAK: Prisiljavamo kubectl da gleda baš tu datoteku, a ne 127.0.0.1 export KUBECONFIG=$GITHUB_WORKSPACE/kubeconfig kubectl apply -f k8s/ --validate=false kubectl rollout status deployment/hello-cicd -n student-sz11zs --timeout=120s