run_tests.rs

 1use gh_workflow::{Event, Job, Level, Permissions, PullRequest, Push, UsesJob, Workflow};
 2
 3use crate::tasks::workflows::{
 4    GenerateWorkflowArgs, GitSha,
 5    steps::{NamedJob, named},
 6    vars::one_workflow_per_non_main_branch_and_token,
 7};
 8
 9pub(crate) fn run_tests(args: &GenerateWorkflowArgs) -> Workflow {
10    let call_extension_tests = call_extension_tests(args.sha.as_ref());
11    named::workflow()
12        .on(Event::default()
13            .pull_request(PullRequest::default().add_branch("**"))
14            .push(Push::default().add_branch("main")))
15        .concurrency(one_workflow_per_non_main_branch_and_token("pr"))
16        .add_job(call_extension_tests.name, call_extension_tests.job)
17}
18
19pub(crate) fn call_extension_tests(target_ref: Option<&GitSha>) -> NamedJob<UsesJob> {
20    let job = Job::default()
21        .permissions(Permissions::default().contents(Level::Read))
22        .uses(
23            "zed-industries",
24            "zed",
25            ".github/workflows/extension_tests.yml",
26            target_ref.map_or("main", AsRef::as_ref),
27        );
28
29    named::job(job)
30}