From 1321a5277c725e14b0c608554b6350afc3fccad0 Mon Sep 17 00:00:00 2001 From: Sam Friedman Date: Wed, 19 Mar 2025 20:06:54 -0500 Subject: [PATCH 01/21] Update docker.yml --- .github/workflows/docker.yml | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 484654e..d7e6a8c 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -7,7 +7,7 @@ on: env: CR_URL: ewr.vultrcr.com jobs: - docker: + build-and-push: runs-on: ubuntu-latest environment: production steps: @@ -42,3 +42,35 @@ jobs: tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} cache-from: type=registry,ref=${{ env.CR_URL }}/passpredict/api:latest + + deploy: + runs-on: ubuntu-latest + environment: production + steps: + - name: Configure SSH + run: | + mkdir -p ~/.ssh + echo "$SSH_KEY" > ~/.ssh/deploy + chmod 600 ~/.ssh/deploy + cat >>~/.ssh/config < Date: Wed, 19 Mar 2025 20:07:19 -0500 Subject: [PATCH 02/21] Update docker.yml --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index d7e6a8c..add64a4 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -2,7 +2,7 @@ name: Build and Push API Docker Image on: push: - branches: [ "main", "v2" ] + branches: [ "main", "deploy-action" ] env: CR_URL: ewr.vultrcr.com From 7b8aacf6afee9f1d5911c4c040d01762765d47a8 Mon Sep 17 00:00:00 2001 From: Sam Friedman Date: Wed, 19 Mar 2025 20:10:30 -0500 Subject: [PATCH 03/21] Update docker.yml --- .github/workflows/docker.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index add64a4..7bdf82d 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -46,7 +46,11 @@ jobs: deploy: runs-on: ubuntu-latest environment: production + needs: [build-and-push] steps: + - name: Checkout source + uses: actions/checkout@4 + - name: Configure SSH run: | mkdir -p ~/.ssh From ff2f190cec18f1fc0c0e799af5cd3c646d1faeec Mon Sep 17 00:00:00 2001 From: Sam Friedman Date: Wed, 19 Mar 2025 20:16:43 -0500 Subject: [PATCH 04/21] Update docker.yml --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 7bdf82d..a2dc6f1 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -49,7 +49,7 @@ jobs: needs: [build-and-push] steps: - name: Checkout source - uses: actions/checkout@4 + uses: actions/checkout@v4 - name: Configure SSH run: | From 7132a6fc83a5c847b91356684f7a340ed45784a8 Mon Sep 17 00:00:00 2001 From: Sam Friedman Date: Wed, 19 Mar 2025 20:23:24 -0500 Subject: [PATCH 05/21] Update docker.yml --- .github/workflows/docker.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index a2dc6f1..dbf9293 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -41,7 +41,8 @@ jobs: push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} - cache-from: type=registry,ref=${{ env.CR_URL }}/passpredict/api:latest + cache-from: type=gha + cache-to: type=gha,mode=max deploy: runs-on: ubuntu-latest @@ -66,7 +67,7 @@ jobs: EOF env: SSH_USER: ${{ secrets.PRODUCTION_USER }} - SSH_KEY: ${{ secrets.SSH_KEY }} + SSH_KEY: ${{ secrets.PRODUCTION_SSH_KEY }} SSH_HOST: ${{ secrets.PRODUCTION_HOST }} SSH_PORT: ${{ secrets.PRODUCTION_PORT }} From 99b9fc3481a3f6edbaaff42eeea217bd31bc1997 Mon Sep 17 00:00:00 2001 From: Sam Friedman Date: Wed, 19 Mar 2025 20:52:48 -0500 Subject: [PATCH 06/21] Update docker.yml --- .github/workflows/docker.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index dbf9293..e1098eb 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -72,7 +72,9 @@ jobs: SSH_PORT: ${{ secrets.PRODUCTION_PORT }} - name: Configure Docker context - run: docker context create production --docker "host=ssh://$SSH_USER@$SSH_HOST" + run: | + docker context create production --docker "host=ssh://${SSH_USER}@${SSH_HOST}" + docker context inspect production env: SSH_USER: ${{ secrets.PRODUCTION_USER }} SSH_HOST: ${{ secrets.PRODUCTION_HOST }} From 2f61a838c1f47550ada49fcfd094c4690cb2d573 Mon Sep 17 00:00:00 2001 From: Sam Friedman Date: Wed, 19 Mar 2025 21:10:43 -0500 Subject: [PATCH 07/21] Update docker.yml --- .github/workflows/docker.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index e1098eb..27efa41 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -59,9 +59,9 @@ jobs: chmod 600 ~/.ssh/deploy cat >>~/.ssh/config < Date: Wed, 19 Mar 2025 21:16:36 -0500 Subject: [PATCH 08/21] Update docker.yml --- .github/workflows/docker.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 27efa41..4db1cbb 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -66,18 +66,18 @@ jobs: StrictHostKeyChecking no EOF env: - SSH_USER: ${{ secrets.PRODUCTION_USER }} + SSH_USER: ${{ vars.PRODUCTION_USER }} SSH_KEY: ${{ secrets.PRODUCTION_SSH_KEY }} - SSH_HOST: ${{ secrets.PRODUCTION_HOST }} - SSH_PORT: ${{ secrets.PRODUCTION_PORT }} + SSH_HOST: ${{ vars.PRODUCTION_HOST }} + SSH_PORT: ${{ vars.PRODUCTION_PORT }} - name: Configure Docker context run: | docker context create production --docker "host=ssh://${SSH_USER}@${SSH_HOST}" docker context inspect production env: - SSH_USER: ${{ secrets.PRODUCTION_USER }} - SSH_HOST: ${{ secrets.PRODUCTION_HOST }} + SSH_USER: ${{ vars.PRODUCTION_USER }} + SSH_HOST: ${{ vars.PRODUCTION_HOST }} - name: Deploy stack run: docker --context production stack deploy --compose-file=infra/stack.prod.yaml passpredict --with-registry-auth --detach=true --prune --resolve-image=always From 643c954a2eb38db4ab735e3eea8036eb124a5e84 Mon Sep 17 00:00:00 2001 From: Sam Friedman Date: Wed, 19 Mar 2025 21:29:41 -0500 Subject: [PATCH 09/21] Update docker.yml --- .github/workflows/docker.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 4db1cbb..3b4115c 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -59,12 +59,13 @@ jobs: chmod 600 ~/.ssh/deploy cat >>~/.ssh/config < Date: Wed, 19 Mar 2025 21:32:50 -0500 Subject: [PATCH 10/21] Update docker.yml --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 3b4115c..6bd2d12 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -58,7 +58,7 @@ jobs: echo "$SSH_KEY" > ~/.ssh/deploy chmod 600 ~/.ssh/deploy cat >>~/.ssh/config < Date: Wed, 19 Mar 2025 22:08:08 -0500 Subject: [PATCH 11/21] Update docker.yml --- .github/workflows/docker.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 6bd2d12..302ad2c 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -58,7 +58,7 @@ jobs: echo "$SSH_KEY" > ~/.ssh/deploy chmod 600 ~/.ssh/deploy cat >>~/.ssh/config < Date: Wed, 19 Mar 2025 22:17:10 -0500 Subject: [PATCH 12/21] Add other services back in --- infra/stack.prod.yaml | 172 ++++++++++++++++++++++-------------------- 1 file changed, 92 insertions(+), 80 deletions(-) diff --git a/infra/stack.prod.yaml b/infra/stack.prod.yaml index ae51ef9..f37f91f 100644 --- a/infra/stack.prod.yaml +++ b/infra/stack.prod.yaml @@ -14,13 +14,10 @@ services: # DB__PATH: /app/db/ppapi.db api: - image: ewr.vultrcr.com/passpredict/api:2.0.3 + image: ewr.vultrcr.com/passpredict/api:latest deploy: mode: replicated replicas: 1 - placement: - constraints: - - node.labels.ppapi-db==true labels: - traefik.enable=true - traefik.http.routers.api-router.rule=Host(`api.passpredict.space`) @@ -36,29 +33,33 @@ services: ports: - "8000:8000" environment: - HATCHET_CLIENT_TLS_STRATEGY: "none" DB__PATH: /app/db/ppapi.db + # secrets: + # - source: hatchet-token + # target: hatchet-token.env networks: - traefik-public + # - hatchet - # api-worker: - # image: ewr.vultrcr.com/passpredict/api:2.0.2 - # command: ["python", "-m", "api.workflows"] - # deploy: - # mode: replicated - # replicas: 1 - # placement: - # constraints: - # - "node.labels.ppapi-db==true" - # volumes: - # - ppapi-db:/app/db - # environment: - # HATCHET_CLIENT_TLS_STRATEGY: "none" - # DB__PATH: /app/db/ppapi.db - # secrets: - # - source: spacetrack-credentials - # target: spacetrack-credentials.env - # # - hatchet_client_token + api-worker: + image: ewr.vultrcr.com/passpredict/api:latest + command: ["python", "-m", "api.workflows"] + deploy: + mode: replicated + replicas: 1 + volumes: + - ppapi-db:/app/db + environment: + DB__PATH: /app/db/ppapi.db + HATCHET__TOKEN_FILE: /run/secrets/token + SPACETRACK__AUTH_FILE: /run/secrets/spacetrack-auth + secrets: + - source: spacetrack-auth + target: spacetrack-auth + - source: hatchet-token + target: token + networks: + - hatchet traefik: image: docker.io/traefik:v3.3 @@ -74,6 +75,7 @@ services: labels: - traefik.enable=true - traefik.http.routers.traefik-dashboard.rule=Host(`traefik.passpredict.space`) + - traefik.http.routers.traefik-dashboard.entrypoints=websecure - traefik.http.routers.traefik-dashboard.service=api@internal - traefik.http.routers.traefik-dashboard.middlewares=traefik-dashboard-auth - traefik.http.routers.traefik-dashboard.tls.certResolver=vultr-resolver @@ -117,62 +119,66 @@ services: - source: admin-users target: users - # postgres: - # image: docker.io/postgres:15.6 - # command: postgres -c 'max_connections=200' - # environment: - # - POSTGRES_USER=hatchet - # - POSTGRES_PASSWORD=hatchet - # - POSTGRES_DB=hatchet - # volumes: - # - hatchet_lite_postgres_data:/var/lib/postgresql/data - # healthcheck: - # test: ["CMD-SHELL", "pg_isready -d hatchet -U hatchet"] - # interval: 10s - # timeout: 10s - # retries: 5 - # start_period: 10s + postgres: + image: docker.io/postgres:15.6 + command: postgres -c 'max_connections=200' + environment: + - POSTGRES_USER=hatchet + - POSTGRES_PASSWORD=hatchet + - POSTGRES_DB=hatchet + volumes: + - hatchet_lite_postgres_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -d hatchet -U hatchet"] + interval: 10s + timeout: 10s + retries: 5 + start_period: 10s + networks: + - hatchet - # hatchet-lite: - # image: ghcr.io/hatchet-dev/hatchet/hatchet-lite:latest - # deploy: - # labels: - # - "traefik.enable=true" - # - "traefik.swarm.network=traefik-public" - # - "traefik.constraint-label=traefik-public" - # - "traefik.http.middlewares.hatchet-auth.basicauth.usersFile=/run/secrets/users" - # - "traefik.http.routers.hatchet-router.rule=Host(`hatchet.passpredict.space`)" - # - "traefik.http.routers.hatchet-router.entrypoints=websecure" - # # - "traefik.http.routers.hatchet-router.service=api-service" - # - "traefik.http.services.hatchet-service.loadbalancer.server.port=8888" - # ports: - # - "8888:8888" - # - "7077:7077" - # environment: - # RABBITMQ_DEFAULT_USER: "user" - # RABBITMQ_DEFAULT_PASS: "password" - # DATABASE_URL: "postgresql://hatchet:hatchet@postgres:5432/hatchet?sslmode=disable" - # SERVER_TASKQUEUE_RABBITMQ_URL: amqp://user:password@localhost:5672/ - # SERVER_AUTH_COOKIE_DOMAIN: localhost - # SERVER_AUTH_COOKIE_INSECURE: "t" - # SERVER_GRPC_BIND_ADDRESS: "0.0.0.0" - # SERVER_GRPC_INSECURE: "t" - # SERVER_GRPC_BROADCAST_ADDRESS: localhost:7077 - # SERVER_GRPC_PORT: "7077" - # SERVER_URL: http://localhost:8888 - # SERVER_AUTH_SET_EMAIL_VERIFIED: "t" - # SERVER_LOGGER_LEVEL: warn - # SERVER_LOGGER_FORMAT: console - # DATABASE_LOGGER_LEVEL: warn - # DATABASE_LOGGER_FORMAT: console - # networks: - # - traefik-public - # volumes: - # - "hatchet_lite_rabbitmq_data:/var/lib/rabbitmq" - # - "hatchet_lite_config:/config" - # secrets: - # - source: admin-users - # target: users + hatchet-lite: + image: ghcr.io/hatchet-dev/hatchet/hatchet-lite:v0.54.8 + deploy: + labels: + - traefik.enable=true + - traefik.http.routers.hatchet-router.rule=Host(`hatchet.passpredict.space`) + - traefik.http.routers.hatchet-router.entrypoints=websecure + - traefik.http.routers.hatchet-router.service=hatchet-service + - traefik.http.routers.hatchet-router.middlewares=hatchet-auth + - traefik.http.routers.hatchet-router.tls.certResolver=vultr-resolver + - traefik.http.middlewares.hatchet-auth.basicauth.usersFile=/run/secrets/users + - traefik.http.services.hatchet-service.loadbalancer.server.port=8888 + ports: + - "8888:8888" + - "7077:7077" + environment: + RABBITMQ_DEFAULT_USER: "user" + RABBITMQ_DEFAULT_PASS: "password" + DATABASE_URL: "postgresql://hatchet:hatchet@postgres:5432/hatchet?sslmode=disable" + SERVER_TASKQUEUE_RABBITMQ_URL: amqp://user:password@localhost:5672/ + SERVER_AUTH_COOKIE_DOMAIN: hatchet.passpredict.space + SERVER_AUTH_COOKIE_INSECURE: "t" + SERVER_ALLOW_SIGNUP: "false" + SERVER_GRPC_BIND_ADDRESS: "0.0.0.0" + SERVER_GRPC_INSECURE: "t" + SERVER_GRPC_BROADCAST_ADDRESS: hatchet-lite:7077 + SERVER_GRPC_PORT: "7077" + SERVER_URL: http://hatchet-lite:8888 + SERVER_AUTH_SET_EMAIL_VERIFIED: "t" + SERVER_LOGGER_LEVEL: warn + SERVER_LOGGER_FORMAT: console + DATABASE_LOGGER_LEVEL: warn + DATABASE_LOGGER_FORMAT: console + networks: + - traefik-public + - hatchet + volumes: + - "hatchet_lite_rabbitmq_data:/var/lib/rabbitmq" + - "hatchet_lite_config:/config" + secrets: + - source: admin-users + target: users volumes: traefik-public-certificates: @@ -184,11 +190,17 @@ volumes: networks: traefik-public: external: true + hatchet: + external: true secrets: admin-users: external: true - spacetrack-credentials: + spacetrack-auth: external: true + name: spacetrack-auth dns-api-key: - external: true \ No newline at end of file + external: true + hatchet-token: + external: true + name: hatchet-token \ No newline at end of file From 894b2cbf3a32774a9b3e64421a8153f6e491af3d Mon Sep 17 00:00:00 2001 From: Sam Friedman Date: Thu, 20 Mar 2025 15:25:50 -0500 Subject: [PATCH 13/21] Update docker.yml --- .github/workflows/docker.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 302ad2c..908be7f 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -77,5 +77,15 @@ jobs: docker context create production --docker "host=ssh://production" docker context inspect production + - name: Login to Vultr Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ env.CR_URL }} + username: ${{ secrets.VULTR_CR_USERNAME }} + password: ${{ secrets.VULTR_CR_PASSWORD }} + - name: Deploy stack - run: docker --context production stack deploy --compose-file=infra/stack.prod.yaml passpredict --with-registry-auth --detach=true --prune --resolve-image=always + run: docker --context production stack deploy --compose-file=infra/stack.prod.yaml passpredict --with-registry-auth --detach=false --prune --resolve-image=always + + - name: Check services + run: docker --context production stack ps passpredict From 0f9c97b76c5e4719df321fc04aa158116e5a6e20 Mon Sep 17 00:00:00 2001 From: Sam Friedman Date: Thu, 20 Mar 2025 15:57:01 -0500 Subject: [PATCH 14/21] Update docker.yml --- .github/workflows/docker.yml | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 908be7f..cf6b352 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -85,7 +85,21 @@ jobs: password: ${{ secrets.VULTR_CR_PASSWORD }} - name: Deploy stack - run: docker --context production stack deploy --compose-file=infra/stack.prod.yaml passpredict --with-registry-auth --detach=false --prune --resolve-image=always + run: docker --context production stack deploy --compose-file=infra/stack.prod.yaml passpredict --with-registry-auth --detach=true --prune --resolve-image=always - name: Check services - run: docker --context production stack ps passpredict + run: | + docker --context production stack ps passpredict --filter "desired-state=running" --no-trunc --format json > stack.json + cat stack.json + # echo "stack=$(cat stack.json)" >> "$GITHUB_OUTPUT" + + - uses: buildingcash/json-to-markdown-table-action@v1 + id: table + with: + json_file_path: "stack.json" + + - name: Output summary + env: + STACK_TABLE: ${{ steps.table.outputs.table }} + run: echo "$STACK_TABLE" >> $GITHUB_STEP_SUMMARY + From c6733f36bed77a91b0ad8b15e4f8ad396d773ca6 Mon Sep 17 00:00:00 2001 From: Sam Friedman Date: Thu, 20 Mar 2025 16:11:43 -0500 Subject: [PATCH 15/21] Update docker.yml --- .github/workflows/docker.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index cf6b352..dc78a59 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -89,7 +89,9 @@ jobs: - name: Check services run: | - docker --context production stack ps passpredict --filter "desired-state=running" --no-trunc --format json > stack.json + docker --context production stack ps passpredict --filter "desired-state=running" --no-trunc --format json | \ + jq '{Name, Image, DesiredState, CurrentState, Error} | tojson' \ + > stack.json cat stack.json # echo "stack=$(cat stack.json)" >> "$GITHUB_OUTPUT" From 6825a45f7617e5ac4625a58cb09aed93f95b19b5 Mon Sep 17 00:00:00 2001 From: Sam Friedman Date: Thu, 20 Mar 2025 17:50:59 -0500 Subject: [PATCH 16/21] Update docker.yml --- .github/workflows/docker.yml | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index dc78a59..b68e874 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -87,21 +87,13 @@ jobs: - name: Deploy stack run: docker --context production stack deploy --compose-file=infra/stack.prod.yaml passpredict --with-registry-auth --detach=true --prune --resolve-image=always - - name: Check services + - name: Display stack summary run: | - docker --context production stack ps passpredict --filter "desired-state=running" --no-trunc --format json | \ - jq '{Name, Image, DesiredState, CurrentState, Error} | tojson' \ - > stack.json - cat stack.json - # echo "stack=$(cat stack.json)" >> "$GITHUB_OUTPUT" - - - uses: buildingcash/json-to-markdown-table-action@v1 - id: table - with: - json_file_path: "stack.json" - - - name: Output summary - env: - STACK_TABLE: ${{ steps.table.outputs.table }} - run: echo "$STACK_TABLE" >> $GITHUB_STEP_SUMMARY - + echo "| Name | Image | Desired State | Current State | Error |" >> $GITHUB_STEP_SUMMARY + echo "| --- | --- | --- | --- | --- |" >> $GITHUB_STEP_SUMMARY + docker --context production stack ps passpredict \ + --filter "desired-state=running" \ + --no-trunc \ + --format "| {{.Name}} | {{.Image}} | {{.DesiredState}} | {{.CurrentState}} | {{.Error}} |" \ + >> $GITHUB_STEP_SUMMARY + From 41f2fb78478e4b27b8a0a70dc2812dda3d724d25 Mon Sep 17 00:00:00 2001 From: Sam Friedman Date: Thu, 20 Mar 2025 17:55:33 -0500 Subject: [PATCH 17/21] Update docker.yml --- .github/workflows/docker.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index b68e874..cb8229f 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -85,15 +85,17 @@ jobs: password: ${{ secrets.VULTR_CR_PASSWORD }} - name: Deploy stack - run: docker --context production stack deploy --compose-file=infra/stack.prod.yaml passpredict --with-registry-auth --detach=true --prune --resolve-image=always + run: docker --context production stack deploy --compose-file=infra/stack.prod.yaml passpredict --with-registry-auth --detach=false -q --prune --resolve-image=always - name: Display stack summary run: | echo "| Name | Image | Desired State | Current State | Error |" >> $GITHUB_STEP_SUMMARY echo "| --- | --- | --- | --- | --- |" >> $GITHUB_STEP_SUMMARY - docker --context production stack ps passpredict \ + STACK=$(docker --context production stack ps passpredict \ --filter "desired-state=running" \ --no-trunc \ --format "| {{.Name}} | {{.Image}} | {{.DesiredState}} | {{.CurrentState}} | {{.Error}} |" \ - >> $GITHUB_STEP_SUMMARY + ) + echo $STACK + echo $STACK >> $GITHUB_STEP_SUMMARY From a3974808ea4ae5a4b6825b2cb9329dddf2b65041 Mon Sep 17 00:00:00 2001 From: Sam Friedman Date: Thu, 20 Mar 2025 18:15:36 -0500 Subject: [PATCH 18/21] Update docker.yml --- .github/workflows/docker.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index cb8229f..ef9009b 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -93,7 +93,6 @@ jobs: echo "| --- | --- | --- | --- | --- |" >> $GITHUB_STEP_SUMMARY STACK=$(docker --context production stack ps passpredict \ --filter "desired-state=running" \ - --no-trunc \ --format "| {{.Name}} | {{.Image}} | {{.DesiredState}} | {{.CurrentState}} | {{.Error}} |" \ ) echo $STACK From c08257d5b8c5268512a0cadcd1e6f24f5cc018e2 Mon Sep 17 00:00:00 2001 From: Sam Friedman Date: Thu, 20 Mar 2025 18:25:56 -0500 Subject: [PATCH 19/21] Update docker.yml --- .github/workflows/docker.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index ef9009b..377f096 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -92,9 +92,18 @@ jobs: echo "| Name | Image | Desired State | Current State | Error |" >> $GITHUB_STEP_SUMMARY echo "| --- | --- | --- | --- | --- |" >> $GITHUB_STEP_SUMMARY STACK=$(docker --context production stack ps passpredict \ - --filter "desired-state=running" \ + -f "desired-state=running" -f "desired-state=ready" -f "desired-state=accepted" \ --format "| {{.Name}} | {{.Image}} | {{.DesiredState}} | {{.CurrentState}} | {{.Error}} |" \ ) echo $STACK echo $STACK >> $GITHUB_STEP_SUMMARY + STACK=$(docker --context production stack ps passpredict \ + -f "desired-state=running" -f "desired-state=ready" -f "desired-state=accepted" \ + --format "table {{.Name}}\t{{.Image}}\t{{.DesiredState}}\t{{.CurrentState}}\t{{.Error}}" \ + ) + echo "\n" >> $GITHUB_STEP_SUMMARY + echo "```" >> $GITHUB_STEP_SUMMARY + echo $STACK >> $GITHUB_STEP_SUMMARY + echo "```" >> $GITHUB_STEP_SUMMARY + From 0e8ad92b84b0219cc812d61920a6ff9368b0c75c Mon Sep 17 00:00:00 2001 From: Sam Friedman Date: Thu, 20 Mar 2025 18:31:27 -0500 Subject: [PATCH 20/21] Update docker.yml --- .github/workflows/docker.yml | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 377f096..e0fb98e 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -89,21 +89,13 @@ jobs: - name: Display stack summary run: | - echo "| Name | Image | Desired State | Current State | Error |" >> $GITHUB_STEP_SUMMARY - echo "| --- | --- | --- | --- | --- |" >> $GITHUB_STEP_SUMMARY - STACK=$(docker --context production stack ps passpredict \ - -f "desired-state=running" -f "desired-state=ready" -f "desired-state=accepted" \ - --format "| {{.Name}} | {{.Image}} | {{.DesiredState}} | {{.CurrentState}} | {{.Error}} |" \ - ) - echo $STACK - echo $STACK >> $GITHUB_STEP_SUMMARY - STACK=$(docker --context production stack ps passpredict \ + # echo "| Name | Image | Desired State | Current State | Error |" >> $GITHUB_STEP_SUMMARY + # echo "| --- | --- | --- | --- | --- |" >> $GITHUB_STEP_SUMMARY + echo "```" >> $GITHUB_STEP_SUMMARY + docker --context production stack ps passpredict \ -f "desired-state=running" -f "desired-state=ready" -f "desired-state=accepted" \ --format "table {{.Name}}\t{{.Image}}\t{{.DesiredState}}\t{{.CurrentState}}\t{{.Error}}" \ - ) - echo "\n" >> $GITHUB_STEP_SUMMARY - echo "```" >> $GITHUB_STEP_SUMMARY - echo $STACK >> $GITHUB_STEP_SUMMARY + >> $GITHUB_STEP_SUMMARY echo "```" >> $GITHUB_STEP_SUMMARY From a961b1925fc8c88f68b5523fb632acd8c5e7123a Mon Sep 17 00:00:00 2001 From: Sam Friedman Date: Thu, 20 Mar 2025 18:32:03 -0500 Subject: [PATCH 21/21] Update docker.yml --- .github/workflows/docker.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index e0fb98e..a0b942c 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -91,11 +91,11 @@ jobs: run: | # echo "| Name | Image | Desired State | Current State | Error |" >> $GITHUB_STEP_SUMMARY # echo "| --- | --- | --- | --- | --- |" >> $GITHUB_STEP_SUMMARY - echo "```" >> $GITHUB_STEP_SUMMARY + echo \`\`\` >> $GITHUB_STEP_SUMMARY docker --context production stack ps passpredict \ -f "desired-state=running" -f "desired-state=ready" -f "desired-state=accepted" \ --format "table {{.Name}}\t{{.Image}}\t{{.DesiredState}}\t{{.CurrentState}}\t{{.Error}}" \ >> $GITHUB_STEP_SUMMARY - echo "```" >> $GITHUB_STEP_SUMMARY + echo \`\`\` >> $GITHUB_STEP_SUMMARY