Add GitHub workflow file to generate docs
Some checks failed
Docs / docs (push) Has been cancelled
Docs / deploy (push) Has been cancelled

This commit is contained in:
T. R. Bernstein
2026-03-12 16:07:50 +01:00
parent 80bde65a7c
commit 94d01db8aa

85
.github/workflows/docs.yml vendored Normal file
View File

@@ -0,0 +1,85 @@
name: Docs
on:
push:
branches:
- main
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up Pages
uses: actions/configure-pages@v5
- name: Set up Swift
uses: swift-actions/setup-swift@v3
with:
swift-version: '6.2.4'
- name: Inject DocC Plugin Dependency
run: |
if ! grep -q 'swift-docc-plugin' Package.swift; then
awk 'BEGIN{done=0} /dependencies: \[/ && done==0 {print; print "\t\t.package(url: \"https://github.com/apple/swift-docc-plugin.git\", from: \"1.4.0\"),"; done=1; next}1' Package.swift > Package.swift.tmp
mv Package.swift.tmp Package.swift
fi
- name: Generate Inotify Docs
run: |
swift package --allow-writing-to-directory ./public/inotify \
generate-documentation \
--target Inotify \
--output-path ./public/inotify \
--transform-for-static-hosting \
--hosting-base-path swift-inotify/inotify \
--disable-indexing
- name: Generate TaskCLI Docs
run: |
swift package --allow-writing-to-directory ./public/taskcli \
generate-documentation \
--target TaskCLI \
--output-path ./public/taskcli \
--transform-for-static-hosting \
--hosting-base-path swift-inotify/taskcli \
--disable-indexing
- name: Create Index Page
run: |
cat > ./public/index.html <<'HTML'
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Swift Inotify Documentation</title>
</head>
<body>
<h1>Swift Inotify Documentation</h1>
<ul>
<li><a href="inotify/documentation/inotify/">Inotify: The actual library.</a></li>
<li><a href="taskcli/documentation/taskcli/">TaskCLI: The project build command.</a></li>
</ul>
</body>
</html>
HTML
- name: Upload artifact
uses: actions/upload-pages-artifact@v4
with:
path: ./public
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: docs
steps:
- name: Deploy Docs
uses: actions/deploy-pages@v4