diff --git a/.gitea/workflows/classify.yml b/.gitea/workflows/classify.yml index f8701ed..105ae4e 100644 --- a/.gitea/workflows/classify.yml +++ b/.gitea/workflows/classify.yml @@ -1,4 +1,4 @@ -name: Deploy classify service +name: Build and Deploy classify service on: push: @@ -12,8 +12,7 @@ on: workflow_dispatch: env: - REGISTRY: ghcr.io - IMAGE_NAME: hjess/kreuzberg-classify + SERVICE_NAME: classify jobs: build-and-deploy: @@ -21,18 +20,28 @@ jobs: env: PATH: /usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/bin:/snap/bin + DOCKER_HOST: unix:///var/run/docker.sock steps: - name: Checkout code uses: actions/checkout@v4 + - name: Log in to Docker Registry + run: | + echo "${{ secrets.HARBOR_ROBOT_TOKEN }}" | docker login registry.i80.dk -u "robot\$gitserver" --password-stdin + - name: Build Docker image run: | - docker build -f Dockerfile.classify -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest . + SHA=$(git rev-parse --short HEAD) + docker build -f Dockerfile.classify \ + -t registry.i80.dk/gitea/kreuzberg-classify:latest \ + -t registry.i80.dk/gitea/kreuzberg-classify:$SHA . - - name: Push to registry + - name: Push Docker image run: | - docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest + SHA=$(git rev-parse --short HEAD) + docker push registry.i80.dk/gitea/kreuzberg-classify:latest + docker push registry.i80.dk/gitea/kreuzberg-classify:$SHA - name: Validate Nomad job run: nomad job validate classify.nomad @@ -44,9 +53,10 @@ jobs: env: NOMAD_ADDR: "https://nomad.i80.dk:4646" - - name: Check deployment status + - name: Wait for healthy allocation run: | - sleep 10 - nomad job status classify + sleep 15 + nomad job status ${SERVICE_NAME} + nomad job allocs ${SERVICE_NAME} env: NOMAD_ADDR: "https://nomad.i80.dk:4646" diff --git a/classify.nomad b/classify.nomad index 3f91237..9effd15 100644 --- a/classify.nomad +++ b/classify.nomad @@ -70,9 +70,13 @@ job "classify" { driver = "docker" config { - image = "ghcr.io/hjess/kreuzberg-classify:latest" + image = "registry.i80.dk/gitea/kreuzberg-classify:latest" ports = ["http"] force_pull = true + auth { + username = "robot$gitserver" + password = "${HARBOR_ROBOT_TOKEN}" + } } env { @@ -80,6 +84,14 @@ job "classify" { PORT = "${NOMAD_PORT_http}" } + template { + data = <