name: CI/CD Pipeline on: push: branches: [main] jobs: build-and-deploy: runs-on: docker steps: - name: Docker Build run: | docker build --network host \ -t registry.plfai.cn/fastapi-demo:${GITHUB_SHA:0:7} \ -t registry.plfai.cn/fastapi-demo:latest \ . - name: Docker Push run: | echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login registry.plfai.cn -u k3s --password-stdin docker push registry.plfai.cn/fastapi-demo:${GITHUB_SHA:0:7} docker push registry.plfai.cn/fastapi-demo:latest - name: Deploy run: | k3s kubectl rollout restart deployment/fastapi-app -n fastapi-demo - name: Health Check run: | sleep 5 curl -sk --connect-timeout 10 --retry 3 https://fastapi.plfai.cn/health