deploy_docs_nightly_pr.rs

 1use gh_workflow::{Event, Expression, Input, Job, Level, Permissions, Push, UsesJob, Workflow};
 2
 3use crate::tasks::workflows::{
 4    steps::{NamedJob, named},
 5    vars,
 6};
 7
 8const BRANCH_NAME: &str = "staged-docs-releases";
 9
10pub(crate) fn deploy_docs_nightly_pr() -> Workflow {
11    let deploy_docs = deploy_docs();
12
13    named::workflow()
14        .add_event(Event::default().push(Push::default().add_branch(BRANCH_NAME)))
15        .add_job(deploy_docs.name, deploy_docs.job)
16}
17
18fn deploy_docs() -> NamedJob<UsesJob> {
19    let job = Job::default()
20        .cond(Expression::new(
21            "github.repository_owner == 'zed-industries'",
22        ))
23        .permissions(Permissions::default().contents(Level::Read))
24        .uses_local(".github/workflows/deploy_docs.yml")
25        .with(
26            Input::default()
27                .add("channel", "nightly")
28                .add("checkout_ref", "${{ github.sha }}"),
29        )
30        .secrets(indexmap::IndexMap::from([
31            (
32                "DOCS_AMPLITUDE_API_KEY".to_owned(),
33                vars::DOCS_AMPLITUDE_API_KEY.to_owned(),
34            ),
35            (
36                "CLOUDFLARE_API_TOKEN".to_owned(),
37                vars::CLOUDFLARE_API_TOKEN.to_owned(),
38            ),
39            (
40                "CLOUDFLARE_ACCOUNT_ID".to_owned(),
41                vars::CLOUDFLARE_ACCOUNT_ID.to_owned(),
42            ),
43        ]));
44
45    named::job(job)
46}