70 lines
2.2 KiB
YAML
70 lines
2.2 KiB
YAML
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 | kubectl --kubeconfig=/tmp/kubeconfig apply -f -
|
|
apiVersion: batch/v1
|
|
kind: Job
|
|
metadata:
|
|
name: $job
|
|
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", "bunx --no-install prisma migrate deploy"]
|
|
envFrom:
|
|
- secretRef:
|
|
name: studio-auth-be-env
|
|
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
|