I don’t know why, but when I run the deploy command locally, it works. Which shouldn’t be the case if the build and release steps are running on the fly.io servers.
fly deploy --config ./apps/web/fly.toml
==> Verifying app config
Validating ./apps/web/fly.toml
✓ Configuration is valid
--> Verified app config
==> Building image
==> Building image with Depot
--> build:
[+] Building 4.6s (11/11) FINISHED
=> [internal] load build definition from Dockerfile 0.5s
=> => transferring dockerfile: 660B 0.5s
=> [internal] load metadata for docker.io/imbios/bun-node:1.1.13-20.12.2-slim 0.3s
=> [internal] load .dockerignore 0.5s
=> => transferring context: 227B 0.5s
=> [1/6] FROM docker.io/imbios/bun-node:1.1.13-20.12.2-slim@sha256:e64f0340effb4714004ed61d47b51dc77825bdf76d94b074e3e07f62b3be7dae 0.0s
=> => resolve docker.io/imbios/bun-node:1.1.13-20.12.2-slim@sha256:e64f0340effb4714004ed61d47b51dc77825bdf76d94b074e3e07f62b3be7dae 0.0s
=> [internal] load build context 0.6s
=> => transferring context: 35.51kB 0.6s
=> CACHED [2/6] WORKDIR /usr/src/app 0.0s
=> CACHED [3/6] COPY / . 0.0s
=> CACHED [4/6] RUN cd ../../ 0.0s
=> CACHED [5/6] RUN bun install 0.0s
=> CACHED [6/6] RUN bunx turbo run --filter @diet-it/web build 0.0s
=> exporting to image 2.5s
=> => exporting layers 0.0s
=> => exporting manifest sha256:d167649560873dda226f9f7cef1e5afcae94fd8642c853d04bb56b87c61a337c 0.0s
=> => exporting config sha256:b5e3de63efb78939a4cf3c4a70f4e5523af191ab5040d59530cc96af1ada8680 0.0s
=> => pushing layers for registry.fly.io/diet-it-web:deployment-01JBAQC297T5QRD2P7QECTJRG1@sha256:d167649560873dda226f9f7cef1e5afcae94fd8642c853d04bb56b87c61a337c 2.1s
=> => pushing layer sha256:18f00d360d58b52e40a61c9983cdc4cfe0f6d3d15eefa3a3b627849d8e7ffe35 2.1s
=> => pushing layer sha256:936b1523004f68aa8c284c6fed44e9a9f4c013b1910b2eba7d28029527e71b73 2.0s
=> => pushing layer sha256:bd9ddc54bea929a22b334e73e026d4136e5b73f5cc29942896c72e4ece69b13d 1.2s
=> => pushing layer sha256:6e514f759dea39340201e648f786abacdb92179b5e28d8c0d842687f7edfd2b5 0.5s
=> => pushing layer sha256:db707203c6fe488c042948f1f18d0282cd299c40cbfbdbb06f691181de775f79 1.5s
=> => pushing layer sha256:b5e3de63efb78939a4cf3c4a70f4e5523af191ab5040d59530cc96af1ada8680 0.4s
=> => pushing layer sha256:997104c7e95f3b62ea95d19b28c7c67f0f6e8b8c9cf53c97cb21ec4154092e51 1.3s
=> => pushing layer sha256:73ec2283050feb3c59759ea8d1b70f9e339a12b23e359382643a64ee2effdeb8 0.7s
=> => pushing layer sha256:422f515599f9ae1a6f80b8bd7effb7bb596e7432c295c21d966f83eeb720051b 1.8s
=> => pushing layer sha256:cd7eacf7d49eaa9eee427e807cad22c17e9973a43b62e8fb7f4627dbb356ebf5 1.6s
=> => pushing layer sha256:f7b75fe1f735933f47315080637abf01f87962d47f8636a07ff4535ed7a4a133 1.1s
=> => pushing layer sha256:52dc75b9385fedede91fae651f50f092aae283b6b7472dcd0b09a1a3f026f788 0.2s
=> => pushing layer sha256:7cd129a3edeb6e40e2773477b9437d6516f52b0ca8934db1829ce9e27936a971 2.1s
=> => pushing layer sha256:1d9285bbfb878216684bf3133f1f994ce3f30dc9a1083afaf9b19fc8e06a0f84 0.9s
=> => pushing layer sha256:65c6806d21961b82efb26b8018676b8f86b1ee5c025e6af0dd25b56b20e12a0f 2.1s
=> => pushing manifest for registry.fly.io/diet-it-web:deployment-01JBAQC297T5QRD2P7QECTJRG1@sha256:d167649560873dda226f9f7cef1e5afcae94fd8642c853d04bb56b87c61a337 0.4s
--> Build Summary:
--> Building image done
image: registry.fly.io/diet-it-web:deployment-01JBAQC297T5QRD2P7QECTJRG1
image size: 448 MB
Watch your deployment at https://fly.io/apps/diet-it-web/monitoring
Running diet-it-web release_command: bunx turbo run --filter @diet-it/db db:deploy
-------
✔ release_command 17815723a9de98 completed successfully
-------
-------
Updating existing machines in 'diet-it-web' with rolling strategy
-------
✔ [1/2] Cleared lease for e7843757c23d58
✔ [2/2] Cleared lease for 568307e6c74268
-------
Checking DNS configuration for diet-it-web.fly.dev
Visit your newly deployed app at https://diet-it-web.fly.dev/
Here’s a snapshot of my release_command machine logs:
https://fly-metrics.net/dashboard/snapshot/ciCykJJvaraY8m9QhboVS0IzO1rCK6L7
I even rerun it with --remote-only to be sure it was running remotely and the results were identical.
Something I notice is that you can see both the successful log and the failed one from GitHub in sequence on this snapshot I took shortly after the first one:
https://fly-metrics.net/dashboard/snapshot/9DGNbmfGly1O5p6SMUVteN5Ww6bwrv6H