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
219 lines
6.3 KiB
YAML
219 lines
6.3 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@v6
|
|
with:
|
|
repository: uutils/uutils.github.io
|
|
path: './uutils.github.io'
|
|
fetch-depth: 0
|
|
|
|
- name: Checkout Coreutils Repository
|
|
uses: actions/checkout@v6
|
|
with:
|
|
repository: uutils/coreutils
|
|
path: './coreutils'
|
|
fetch-depth: 0
|
|
|
|
- name: Checkout Coreutils L10n Repository
|
|
uses: actions/checkout@v6
|
|
with:
|
|
repository: uutils/coreutils-l10n
|
|
path: './coreutils-l10n'
|
|
fetch-depth: 0
|
|
|
|
- name: Checkout Findutils Repository
|
|
uses: actions/checkout@v6
|
|
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 update
|
|
sudo apt install libacl1-dev libselinux1-dev libsystemd-dev
|
|
pip install babel
|
|
|
|
- name: Install necessary tools (mdbook and mdbook-toc)
|
|
uses: taiki-e/install-action@v2
|
|
with:
|
|
tool: mdbook,mdbook-toc
|
|
|
|
- name: Copy l10n locales into coreutils
|
|
run: |
|
|
# Only copy locales into utilities that already exist in coreutils
|
|
# Exclude en-US.ftl to preserve the coreutils English originals
|
|
for util_dir in coreutils-l10n/src/uu/*/; do
|
|
util=$(basename "$util_dir")
|
|
if [ -d "coreutils/src/uu/$util/locales" ]; then
|
|
for ftl in "$util_dir"/locales/*.ftl; do
|
|
[ -f "$ftl" ] || continue
|
|
[ "$(basename "$ftl")" = "en-US.ftl" ] && continue
|
|
cp "$ftl" "coreutils/src/uu/$util/locales/"
|
|
done
|
|
fi
|
|
done
|
|
# Copy uucore l10n files, excluding en-US.ftl
|
|
if [ -d "coreutils-l10n/src/uucore/locales" ]; then
|
|
for ftl in coreutils-l10n/src/uucore/locales/*.ftl; do
|
|
[ -f "$ftl" ] || continue
|
|
[ "$(basename "$ftl")" = "en-US.ftl" ] && continue
|
|
cp "$ftl" "coreutils/src/uucore/locales/"
|
|
done
|
|
fi
|
|
|
|
- name: Patch mdbook theme with language selector
|
|
run: |
|
|
uutils.github.io/scripts/patch-mdbook-theme.sh coreutils/docs coreutils-l10n
|
|
|
|
- name: Build Coreutils Docs
|
|
run: |
|
|
cd coreutils
|
|
# Download and repack tldr zip: uudoc expects pages/common/ prefix
|
|
curl -sfL https://github.com/tldr-pages/tldr/releases/download/v2.3/tldr-pages.zip -o /tmp/tldr-raw.zip || true
|
|
if [ -f /tmp/tldr-raw.zip ]; then
|
|
mkdir -p /tmp/tldr-repack/pages
|
|
cd /tmp/tldr-repack && unzip -o /tmp/tldr-raw.zip -d pages/ > /dev/null
|
|
zip -r "$OLDPWD/docs/tldr.zip" pages/ > /dev/null
|
|
cd "$OLDPWD"
|
|
fi
|
|
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: Build Coreutils Docs (translations)
|
|
run: |
|
|
uutils.github.io/scripts/build-docs-l10n.sh coreutils
|
|
|
|
- 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
|
|
# Copy translated docs to /coreutils/docs-{lang}/
|
|
for lang_dir in coreutils/docs/book-*/; do
|
|
[ -d "$lang_dir" ] || continue
|
|
lang=$(basename "$lang_dir" | sed 's/^book-//')
|
|
cp -r "$lang_dir" "public/coreutils/docs-${lang}"
|
|
done
|
|
|
|
- name: Upload artifact for checking the output
|
|
uses: actions/upload-artifact@v7
|
|
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@v5
|