1use crate::tasks::workflows::{runners, steps::release_job};
 2
 3use super::{
 4    run_tests::run_tests_in,
 5    steps::{self, FluentBuilder as _, NamedJob, named},
 6};
 7use gh_workflow::*;
 8
 9pub(crate) fn run_style_checks() -> Workflow {
10    let style = check_style();
11    named::workflow()
12        .map(|workflow| run_tests_in(&[], workflow))
13        .add_job(style.name, style.job)
14}
15
16pub(crate) fn check_style() -> NamedJob {
17    named::job(
18        release_job(&[])
19            .runs_on(runners::LINUX_MEDIUM)
20            .add_step(steps::checkout_repo())
21            .add_step(steps::setup_pnpm())
22            .add_step(steps::script("./script/prettier"))
23            .add_step(steps::script("./script/check-todos"))
24            .add_step(steps::script("./script/check-keymaps"))
25            .add_step(check_for_typos())
26            .add_step(steps::cargo_fmt()),
27    )
28}
29
30fn check_for_typos() -> Step<Use> {
31    named::uses(
32        "crate-ci",
33        "typos",
34        "80c8a4945eec0f6d464eaf9e65ed98ef085283d1",
35    ) // v1.38.1
36    .with(("config", "./typos.toml"))
37}