GitHub Actions allows the use of jobs.<job_id>.outputs to create a map of outputs for a job. These outputs are essential as they can be utilized by all downstream jobs that depend on this job. Implementing this feature in gale would enhance its compatibility with GitHub Actions, allowing users to mimic these functionalities locally.
Details
Unicode Strings: Job outputs are Unicode strings, with each having a maximum size of 1 MB.
Output Size Limit: The combined size of all outputs in a workflow run can be up to 50 MB.
Expression Evaluation: Outputs that contain expressions are evaluated on the runner at the end of each job.
Secrets Redaction: Outputs that contain secrets are automatically redacted on the runner and are not transmitted to GitHub Actions. (This could be not applicable to gale)
Dependency Definition: To define job dependency inside the workflow, utilize jobs.<job_id>.needs.
Using Outputs in Dependent Jobs: To utilize job outputs in a dependent job, use the needs context.
Enhancement Tasks
[x] Implement support for jobs.<job_id>.outputs in gale.
[x] Develop a method to evaluate expressions in outputs at the end of each job.
[ ] Implement a secrets redaction mechanism to prevent secret data from being exposed. ** we could drop this maybe
[x] Introduce a check for the size of individual outputs (1MB) and the total size (50MB) within the workflow, issuing a warning to users if these limits are approached or exceeded. ** These limits warning just for keep execution compatible with GHA
[ ] Add documentation and examples illustrating how to define job dependencies and how to utilize job outputs in dependent jobs using gale.
Background
GitHub Actions allows the use of
jobs.<job_id>.outputs
to create amap
of outputs for a job. These outputs are essential as they can be utilized by all downstream jobs that depend on this job. Implementing this feature ingale
would enhance its compatibility with GitHub Actions, allowing users to mimic these functionalities locally.Details
gale
)jobs.<job_id>.needs
.needs
context.Enhancement Tasks
jobs.<job_id>.outputs
ingale
.gale
.Additional Resources
Acceptance Criteria
jobs.<job_id>.outputs
locally usinggale
.gale
should evaluate expressions in outputs at the end of each job.gale
should redact secret data from outputs before they are logged or sent to other jobs.gale
should issue warnings when output size limits are approached or exceeded.