This seems like a good time to pitch environment-specific binstubs:
bin/production
contains FLY_APP=app exec flycli $@
while bin/staging
contains FLY_APP=app-staging exec flycli $@
. instead of calling fly directly, you call the environment specific binaries that are checked in to your repo. imo, it’s still more ergonomic than Heroku’s pipelines, and it’s usable with far less server side rolling around it.