From 743fe9d68d1ffe08aa82145c940f992154da1681 Mon Sep 17 00:00:00 2001 From: Petru Paler Date: Sat, 3 Jan 2026 11:47:02 +0000 Subject: [PATCH] Deploy workflow. --- .gitea/workflows/deploy.yaml | 52 ++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 .gitea/workflows/deploy.yaml diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml new file mode 100644 index 0000000..7406e15 --- /dev/null +++ b/.gitea/workflows/deploy.yaml @@ -0,0 +1,52 @@ +name: Build and Deploy + +on: + push: + branches: [main] + +env: + REGISTRY: gitea.v.paler.net + IMAGE: ppetru/animaltrack + +jobs: + build-and-deploy: + runs-on: nix + steps: + - uses: actions/checkout@v4 + + - name: Build Docker image + run: | + nix build .#dockerImage --out-link result + + - name: Push to registry + run: | + nix shell nixpkgs#skopeo -c skopeo copy \ + --dest-creds "${{ secrets.REGISTRY_USERNAME }}:${{ secrets.REGISTRY_PASSWORD }}" \ + --insecure-policy \ + docker-archive:result \ + docker://${{ env.REGISTRY }}/${{ env.IMAGE }}:latest + + - name: Deploy to Nomad + env: + NOMAD_ADDR: ${{ secrets.NOMAD_ADDR }} + run: | + # Force re-evaluation (uuid changes on each job run) + curl -sS -X POST "$NOMAD_ADDR/v1/job/animaltrack/evaluate" + + # Wait for deployment + sleep 5 + DEPLOY_ID=$(curl -sS "$NOMAD_ADDR/v1/job/animaltrack/deployments" | \ + nix shell nixpkgs#jq -c jq -r '.[0].ID') + + for i in $(seq 1 30); do + STATUS=$(curl -sS "$NOMAD_ADDR/v1/deployment/$DEPLOY_ID" | \ + nix shell nixpkgs#jq -c jq -r '.Status') + echo "Deployment status: $STATUS" + case $STATUS in + successful) exit 0 ;; + failed|cancelled) exit 1 ;; + esac + sleep 10 + done + echo "Timeout waiting for deployment" + exit 1