-
Notifications
You must be signed in to change notification settings - Fork 6
Description
Hey folks,
I want to start a discussion on standardizing how we write actions. We on NNH have been seeing ~weekly outages on the self-hosted runners (I'm curious if you've seen similar @dylanhmorris @damonbayer). My understanding is that the Tools team is looking into strategies to increase reliability, but we've also received feedback that we should update our systems so they don't rely on the runners to work.
My interpretation of that feedback is that we should format workflows as a wrapper around a script, with environment variables passed as arguments. I'm proposing that a workflow would do some basic authentication, maybe start a Docker container as a running environment, and run the script. This script should be easily locally runnable and not require any extra GitHub environment magic to function or manually pulling commands out of YAML. I tried to implement a version of this idea here which runs this script.
I'm going to make sure our EpiNow2 pipeline updates in response to this feedback and I was hopeful there would be interest in matching the format here too. I think the standardization and shared tooling this repo implements is a valuable thing and I'd like to be able to continue relying on the work here while still being able to decouple from GHA as necessary (e.g., runners are down so we clone this repo and run some of the scripts manually to run a pipeline).
I don't think this proposal would be a heavy lift to implement right now -- maybe some small tweaks here or there.
Thoughts? @gvegayon @CDCgov/cfa-nnh @dylanhmorris @damonbayer