From 6ce170e84a51c931b0938ed3bf6add3a9349c1ff Mon Sep 17 00:00:00 2001 From: sstent Date: Mon, 15 Dec 2025 07:38:18 -0800 Subject: [PATCH] sync --- .github/workflows/container-build.yml | 3 +++ .github/workflows/nomad-deploy.yml | 29 ++++++++++++++++++++++----- fitbit-garmin-sync.nomad | 6 +++++- 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/.github/workflows/container-build.yml b/.github/workflows/container-build.yml index 8d9f9e8..b5cf104 100644 --- a/.github/workflows/container-build.yml +++ b/.github/workflows/container-build.yml @@ -12,6 +12,9 @@ jobs: permissions: contents: read packages: write + outputs: + container_sha: ${{ github.sha }} + registry_url: ${{ steps.registry.outputs.url }} steps: - name: Checkout repository diff --git a/.github/workflows/nomad-deploy.yml b/.github/workflows/nomad-deploy.yml index 18f431c..e502b76 100644 --- a/.github/workflows/nomad-deploy.yml +++ b/.github/workflows/nomad-deploy.yml @@ -6,13 +6,18 @@ on: types: - completed workflow_dispatch: # Allows manual triggering for testing - - + inputs: + container_sha: + description: 'Container SHA to deploy (leave empty for latest commit)' + required: false + type: string jobs: nomad: runs-on: ubuntu-latest name: Deploy to Nomad + # Only run if the build workflow succeeded + if: ${{ github.event.workflow_run.conclusion == 'success' || github.event_name == 'workflow_dispatch' }} steps: # 1. Checkout Code @@ -25,13 +30,27 @@ jobs: with: version: '1.10.0' # Use your desired version or remove for 'latest' - # 3. Deploy the Nomad Job + # 3. Determine container version to deploy + - name: Set Container Version + id: container_version + run: | + if [ "${{ github.event_name }}" = "workflow_dispatch" ] && [ -n "${{ inputs.container_sha }}" ]; then + echo "sha=${{ inputs.container_sha }}" >> $GITHUB_OUTPUT + elif [ "${{ github.event_name }}" = "workflow_run" ]; then + echo "sha=${{ github.event.workflow_run.head_sha }}" >> $GITHUB_OUTPUT + else + echo "sha=${{ github.sha }}" >> $GITHUB_OUTPUT + fi + + # 4. Deploy the Nomad Job - name: Deploy Nomad Job id: deploy env: # REQUIRED: Set the Nomad server address NOMAD_ADDR: http://nomad.service.dc1.consul:4646 - run: | + echo "Deploying container version: ${{ steps.container_version.outputs.sha }}" nomad status - nomad job run fitbit-garmin-sync.nomad + nomad job run \ + -var="container_version=${{ steps.container_version.outputs.sha }}" \ + fitbit-garmin-sync.nomad diff --git a/fitbit-garmin-sync.nomad b/fitbit-garmin-sync.nomad index 059961c..d546489 100644 --- a/fitbit-garmin-sync.nomad +++ b/fitbit-garmin-sync.nomad @@ -1,3 +1,7 @@ +variable "container_version" { + default = "latest" +} + job "fitbit-garmin-sync" { datacenters = ["dc1"] type = "service" @@ -9,7 +13,7 @@ job "fitbit-garmin-sync" { driver = "docker" config { - image = "gitea.service.dc1.fbleagh.duckdns.org/sstent/fitbit_garmin_sync:latest" + image = "gitea.service.dc1.fbleagh.duckdns.org/sstent/fitbit_garmin_sync:${var.container_version}" volumes = [ "/mnt/Public/configs/fitbit-garmin-sync:/app/data" ]