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}