summaryrefslogtreecommitdiff
path: root/build.zig
diff options
context:
space:
mode:
authorGravatar Abhinav Gupta2023-12-21 15:26:03 -0800
committerGravatar Komari Spaghetti2024-01-02 13:16:54 +0100
commit7af04ee30d40e02e47bef4229bd823b541a0a352 (patch)
tree0f45f6b05e76fb5aa6a2bf037543a7b8965bd98b /build.zig
parentRemove the default allocator from `ParseOptions` (diff)
downloadzig-clap-7af04ee30d40e02e47bef4229bd823b541a0a352.tar.gz
zig-clap-7af04ee30d40e02e47bef4229bd823b541a0a352.tar.xz
zig-clap-7af04ee30d40e02e47bef4229bd823b541a0a352.zip
Add autodoc website
This adds a `zig build docs` step that builds the documentation website and writes it to zig-out/docs. It further includes a GitHub Workflow that publishes this website to GitHub Pages. The GitHub Workflow is divided into two jobs: - build: builds the documentation and uploads it - publish: downloads the documentation and publishes it These are separate jobs to minimize permissions available to the build job. This workflow runs on two events: - after every push to master - `workflow_dispatch`: this allows manually running the workflow from its *Actions* page if something went wrong --- **Important pre-merge steps:** If this PR is accepted, the following steps should be taken before merging the PR: 1. Go to **Settings** for the repository 2. Select **Pages** on the left under *Code and automation* 3. Under *Build and deployment* set **Source** to **GitHub Actions** 4. Merge the PR. If the steps are missed, the PR will merge just fine, but the docs job will fail immediately on merge. This can be remedied by following steps 1-3 above, and either adding a new commit on master, or manually firing the workflow from the Actions > API Reference page.
Diffstat (limited to '')
-rw-r--r--build.zig8
1 files changed, 8 insertions, 0 deletions
diff --git a/build.zig b/build.zig
index bcf600e..ead9282 100644
--- a/build.zig
+++ b/build.zig
@@ -35,6 +35,14 @@ pub fn build(b: *std.Build) void {
35 example_step.dependOn(&install_example.step); 35 example_step.dependOn(&install_example.step);
36 } 36 }
37 37
38 const docs_step = b.step("docs", "Generate docs.");
39 const install_docs = b.addInstallDirectory(.{
40 .source_dir = tests.getEmittedDocs(),
41 .install_dir = .prefix,
42 .install_subdir = "docs",
43 });
44 docs_step.dependOn(&install_docs.step);
45
38 const readme_step = b.step("readme", "Remake README."); 46 const readme_step = b.step("readme", "Remake README.");
39 const readme = readMeStep(b); 47 const readme = readMeStep(b);
40 readme.dependOn(example_step); 48 readme.dependOn(example_step);