You've already forked uutils.github.io
mirror of
https://github.com/uutils/uutils.github.io.git
synced 2026-06-10 16:12:28 -07:00
213 lines
5.6 KiB
YAML
213 lines
5.6 KiB
YAML
name: Docs
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
schedule:
|
|
- cron: "0 2 * * *"
|
|
|
|
jobs:
|
|
build:
|
|
name: Build website artifacts
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout uutils.github.io Repository
|
|
uses: actions/checkout@v5
|
|
with:
|
|
repository: uutils/uutils.github.io
|
|
path: './uutils.github.io'
|
|
fetch-depth: 0
|
|
|
|
- name: Checkout Coreutils Repository
|
|
uses: actions/checkout@v5
|
|
with:
|
|
repository: uutils/coreutils
|
|
path: './coreutils'
|
|
fetch-depth: 0
|
|
|
|
- name: Checkout Findutils Repository
|
|
uses: actions/checkout@v5
|
|
with:
|
|
repository: uutils/findutils
|
|
path: './findutils'
|
|
fetch-depth: 0
|
|
|
|
- name: Install `rust` toolchain
|
|
uses: dtolnay/rust-toolchain@stable
|
|
|
|
- name: Install system deps
|
|
run: |
|
|
sudo apt install libacl1-dev libselinux1-dev libsystemd-dev man2html
|
|
|
|
- name: Download tldr archive
|
|
run: |
|
|
curl https://tldr.sh/assets/tldr.zip --output coreutils/docs/tldr.zip
|
|
|
|
- name: Install necessary tools (mdbook and mdbook-toc)
|
|
uses: taiki-e/install-action@v2
|
|
with:
|
|
tool: mdbook,mdbook-toc
|
|
|
|
- name: Build Coreutils Docs
|
|
run: |
|
|
cd coreutils
|
|
cargo run --bin uudoc --all-features
|
|
cd docs
|
|
# Remove deprecated 'multilingual' field unsupported by newer mdbook
|
|
sed -i '/^multilingual/d' book.toml
|
|
mdbook build
|
|
|
|
- name: Generate Coreutils Manpages
|
|
run: |
|
|
cd coreutils
|
|
make install-manpages DESTDIR=../manpages
|
|
|
|
- name: Convert Manpages to HTML and Generate Index
|
|
run: |
|
|
mkdir -p manpages-html
|
|
|
|
# Create JSON list for dynamic loading
|
|
echo "[" > manpages-html/manpages.json
|
|
first=true
|
|
|
|
# Convert manpages to HTML
|
|
for man in manpages/usr/local/share/man/man*/*.1; do
|
|
if [ -f "$man" ]; then
|
|
name=$(basename "$man" .1)
|
|
man2html -r "$man" > "manpages-html/${name}.html"
|
|
|
|
# Add to JSON list
|
|
if [ "$first" = true ]; then
|
|
echo " \"${name}\"" >> manpages-html/manpages.json
|
|
first=false
|
|
else
|
|
echo " ,\"${name}\"" >> manpages-html/manpages.json
|
|
fi
|
|
fi
|
|
done
|
|
|
|
echo "]" >> manpages-html/manpages.json
|
|
|
|
# Create index page for Zola to process (picked up by the "Run Zola" step)
|
|
cat > uutils.github.io/content/coreutils-manpages.md << 'EOF'
|
|
+++
|
|
title = "Manual Pages"
|
|
template = "manpages.html"
|
|
|
|
[extra]
|
|
project = "coreutils"
|
|
+++
|
|
EOF
|
|
|
|
- name: Build Findutils Docs
|
|
run: |
|
|
cd findutils/docs
|
|
# Remove deprecated 'multilingual' field unsupported by newer mdbook
|
|
sed -i '/^multilingual/d' book.toml
|
|
mdbook build
|
|
|
|
- name: Run Zola
|
|
uses: shalzz/zola-deploy-action@v0.21.0
|
|
env:
|
|
BUILD_DIR: uutils.github.io
|
|
BUILD_ONLY: true
|
|
|
|
- name: Collect results into `public` folder
|
|
run: |
|
|
cp -r uutils.github.io/public public
|
|
cp -r coreutils/docs/book public/coreutils/docs
|
|
cp -r findutils/docs/book public/findutils/docs
|
|
mkdir -p public/coreutils/manpages
|
|
cp -r manpages-html/* public/coreutils/manpages/
|
|
|
|
- name: Upload artifact for checking the output
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
path: ./public
|
|
|
|
- name: Upload artifact for pages
|
|
uses: actions/upload-pages-artifact@v4
|
|
with:
|
|
path: ./public
|
|
|
|
# dev-docs:
|
|
# name: generate the dev doc
|
|
# runs-on: ubuntu-latest
|
|
# steps:
|
|
# - name: Checkout repository
|
|
# uses: actions/checkout@v4
|
|
# with:
|
|
# repository: uutils/coreutils
|
|
# path: './coreutils'
|
|
# fetch-depth: 0
|
|
|
|
# - name: Install `rust` toolchain
|
|
# uses: actions-rs/toolchain@v1
|
|
# with:
|
|
# toolchain: stable
|
|
# default: true
|
|
# profile: minimal
|
|
|
|
# - name: Build dev documentation
|
|
# run: |
|
|
# cd coreutils
|
|
# cargo doc --no-deps --all-features --workspace
|
|
|
|
# - name: Deploy Docs
|
|
# uses: peaceiris/actions-gh-pages@v3
|
|
# with:
|
|
# github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
# publish_dir: ./coreutils/target/doc
|
|
# destination_dir: coreutils/dev/
|
|
|
|
# build-report:
|
|
# name: generate the build report
|
|
# runs-on: ubuntu-latest
|
|
# steps:
|
|
# - name: Checkout repository
|
|
# uses: actions/checkout@v4
|
|
# with:
|
|
# repository: uutils/coreutils
|
|
# path: './coreutils'
|
|
# fetch-depth: 0
|
|
|
|
# - name: Install `rust` toolchain
|
|
# uses: actions-rs/toolchain@v1
|
|
# with:
|
|
# toolchain: nightly
|
|
# default: true
|
|
# profile: minimal
|
|
|
|
# - name: Build report
|
|
# run: |
|
|
# cd coreutils
|
|
# cargo +nightly build --timings=html -Zunstable-options
|
|
|
|
# - name: Deploy build report
|
|
# uses: peaceiris/actions-gh-pages@v3
|
|
# with:
|
|
# github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
# publish_dir: ./coreutils/target/cargo-timings/
|
|
# destination_dir: cargo-timings/
|
|
|
|
# Deployment job
|
|
deploy:
|
|
permissions:
|
|
contents: read
|
|
pages: write
|
|
id-token: write
|
|
environment:
|
|
name: github-pages
|
|
url: ${{ steps.deployment.outputs.page_url }}
|
|
runs-on: ubuntu-latest
|
|
needs: build
|
|
if: (github.event_name == 'push' && github.ref == 'refs/heads/main') || github.event_name == 'schedule'
|
|
steps:
|
|
- name: Deploy to GitHub Pages
|
|
id: deployment
|
|
uses: actions/deploy-pages@v4
|