regadas / github-actions-dhall

Typecheck, template and modularize your Github Action definitions with Dhall
https://regadas.dev/github-actions-dhall
MIT License
115 stars 26 forks source link

Reusable workflows support #66

Open alvintang opened 1 year ago

alvintang commented 1 year ago

Hi @regadas! Thanks for all your work on this. I have an issue and would like your thoughts on it.

I currently have an open PR to support reusable workflows but it only adds the types needed. To call a reusable workflow, it has to be done on the job level so a uses key will be used instead of steps. My initial thought is to make jobs.steps and jobs.runs-on Optional but this will break existing workflows (including ours) since they have to be changed to Optional values. What's your take on this?

My current work around is to merge the records e.g.

GithubActions.Workflow::{
...
, jobs = [] : List { mapKey : Text, mapValue : GithubActions.Job.Type }
}
//  { jobs = toMap { job1.uses = "my-reusable-workflow@master" } }
regadas commented 1 year ago

Hi @alvintang sorry for the long delay.

My initial thought is to make jobs.steps and jobs.runs-on Optional

Right, after a fast look I think that makes sense since those will not be required.

but this will break existing workflows (including ours) since they have to be changed to Optional values. What's your take on this?

If we do a versioned release first. You could move the existing ones to that, and then we introduce the breaking change in a new version.