1use gh_workflow::*;
2
3use crate::tasks::workflows::{
4 runners,
5 steps::{self, NamedJob, named},
6 vars::Input,
7};
8
9/// Generates the danger.yml workflow
10pub fn compare_perf() -> Workflow {
11 let head = Input::string("head", None);
12 let base = Input::string("base", None);
13 let run_perf = run_perf(&base, &head);
14 named::workflow()
15 .on(Event::default().workflow_dispatch(
16 WorkflowDispatch::default()
17 .add_input(head.name, head.input())
18 .add_input(base.name, base.input()),
19 ))
20 .add_job(run_perf.name, run_perf.job)
21}
22
23pub fn run_perf(base: &Input, head: &Input) -> NamedJob {
24 fn echo_inputs(base: &Input, head: &Input) -> Step<Run> {
25 named::bash(&format!("echo {} {}", base.var(), head.var()))
26 }
27 named::job(
28 Job::default()
29 .runs_on(runners::LINUX_SMALL)
30 .add_step(steps::checkout_repo())
31 .add_step(echo_inputs(base, head)),
32 )
33}