0ed9bacd

By: Michael Lynch <git@mtlynch.io>

Add NixCI deployment to Fly.io

Configure NixCI to run the Fly deployment package for the default branch.
The deploy package builds the app image with Nix, pushes it to Fly's registry with skopeo, and deploys the pushed image with flyctl so CI does not need Docker or a Fly remote builder.

Testing:
- nix fmt flake.nix nix-ci.nix
- nix flake check
- ./dev-scripts/git-hooks/pre-commit
- nix build .#deploy-to-fly
- nix eval --file nix-ci.nix deploy.fly.package

Suite timing

Time to Start Worker time Duration Time to finish
Config 2s 7s 7s 9s
Eval 5s 45s 45s 50s
Build 9s 5m42s 2m09s 2m19s
Suite 2s 6m34s 2m17s 2m19s

Timeline

0s10s20s30s40s50s1m1m10s1m20s1m30s