steps: check: image: oven/bun:1.2.23 commands: - bun install --frozen-lockfile when: branch: develop event: push build-push: image: docker:27-cli volumes: - /var/run/docker.sock:/var/run/docker.sock commands: - docker build -t localhost:5000/studio-auth-be:0.1.1 . - docker push localhost:5000/studio-auth-be:0.1.1 when: branch: release event: push migrate: image: bitnami/kubectl:latest volumes: - /home/future2/Studio_v2/woodpecker/kube/config:/tmp/kubeconfig:ro commands: - | set -eu commit="$(printf %.8s "$CI_COMMIT_SHA")" job="studio-auth-migrate-$commit" kubectl --kubeconfig=/tmp/kubeconfig -n studio-system delete job "$job" --ignore-not-found cat <<'EOF' | sed "s/__JOB_NAME__/$job/g" | kubectl --kubeconfig=/tmp/kubeconfig apply -f - apiVersion: batch/v1 kind: Job metadata: name: __JOB_NAME__ namespace: studio-system spec: backoffLimit: 1 ttlSecondsAfterFinished: 600 template: spec: restartPolicy: Never containers: - name: migrate image: localhost:5000/studio-auth-be:0.1.1 imagePullPolicy: Always command: - sh - -lc - | export DATABASE_URL="postgresql://$(printenv POSTGRES_USER):$(bun -e 'process.stdout.write(encodeURIComponent(process.env.POSTGRES_PASSWORD ?? ""))')@studio-auth-db.studio-system.svc.cluster.local:5432/$(printenv POSTGRES_DB)?schema=public" bunx --no-install prisma migrate deploy envFrom: - secretRef: name: studio-auth-be-env - secretRef: name: studio-auth-db-secret EOF if ! kubectl --kubeconfig=/tmp/kubeconfig -n studio-system wait --for=condition=complete "job/$job" --timeout=180s; then kubectl --kubeconfig=/tmp/kubeconfig -n studio-system logs "job/$job" --all-containers=true || true exit 1 fi when: branch: release event: push deploy: image: bitnami/kubectl:latest volumes: - /home/future2/Studio_v2/woodpecker/kube/config:/tmp/kubeconfig:ro commands: - kubectl --kubeconfig=/tmp/kubeconfig -n studio-system rollout restart deployment/studio-auth-be - kubectl --kubeconfig=/tmp/kubeconfig -n studio-system rollout status deployment/studio-auth-be when: branch: release event: push