run_license_checks.rs

 1use gh_workflow::{Job, Workflow};
 2
 3use crate::tasks::workflows::{
 4    run_tests::run_tests_in,
 5    runners::{self, LINUX_MEDIUM},
 6    steps::{self, FluentBuilder, NamedJob, named},
 7};
 8
 9pub fn run_license_checks() -> Workflow {
10    let check_licenses = check_licenses();
11    let build_licenses = build_licenses();
12
13    named::workflow()
14        .map(|workflow| {
15            run_tests_in(
16                &[
17                    // no Cargo.toml - the case where Cargo.lock isn't updated
18                    // is checked by the `check_dependencies` job as part of the
19                    // `run_tests` workflow
20                    "Cargo.lock",
21                    "**/Cargo.lock",
22                    "script/*licenses",
23                    "**/LICENSE*",
24                    ".github/workflows/run_license_checks.yml",
25                ],
26                workflow,
27            )
28        })
29        .add_job(check_licenses.name, check_licenses.job)
30        .add_job(build_licenses.name, build_licenses.job)
31}
32
33fn check_licenses() -> NamedJob {
34    named::job(
35        Job::default()
36            .runs_on(runners::LINUX_SMALL)
37            .add_step(steps::checkout_repo())
38            .add_step(steps::script("./script/check-licenses")),
39    )
40}
41
42fn build_licenses() -> NamedJob {
43    named::job(
44        Job::default()
45            .runs_on(LINUX_MEDIUM)
46            .add_step(steps::checkout_repo())
47            .add_step(steps::script("./script/generate-licenses")),
48    )
49}