Skip to content
name: Build documentation and installer
"on":
push:
jobs:
build-readme:
runs-on: ubuntu-latest
name: Build documentation and installer
permissions: write-all
steps:
- name: Check out code for the container build
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Build documentation and installer in one step
id: update-docs-and-installer
run: |
commit_msg=""
echo "Checking for changes in hyakvnc, .build/README.j2.md, and .github/workflows/build-documentation.yml"
if ! git --no-pager diff --name-only --quiet --diff-filter=AM ${{ github.event.before }} ${{ github.event.after }} -- hyakvnc .build/README.j2.md .build/install.j2.sh .github/workflows/build-documentation.yml; then
echo "Changes detected in hyakvnc, .build/README.j2.md, or .github/workflows/build-documentation.yml"
python3 -m pip install jinja-cli
pushd .build/
sed -E '/^HYAKVNC_.*#\s*%%/!d; s/=.*(#\s*%%)/:/g; s/(^.)/- \1/g' ../hyakvnc > config.inc.md
for x in create status show stop config update install; do ../hyakvnc help "$x" | sed -E '1 s/(.*)/\n### \1\n/; 2 s/^$/```text/' | pr -e4 -t && echo '```'; done > usage.inc.md
jinja -D github_repository "${{ github.repository }}" -D github_ref_name "${{ github.ref_name }}" README.j2.md | sed 's/^.*<!-- markdownlint-disable-file -->.*$//g' > ../README.md
jinja -D github_repository 'https://github.com/${{ github.repository }}' -D github_ref_name '${{ github.ref_name }}' install.j2.sh -o ../install.sh
popd
git config --local user.email "${{ github.event.sender.id }}+${{ github.event.sender.login }}@users.noreply.github.com"
git config --local user.name ${{ github.event.sender.login }}
if ! git diff --quiet --stat README.md; then
git add README.md && commit_msg="Rebuilt README.md"
fi
if ! git diff --quiet --stat install.sh; then
new_commit_msg="${commit_msg:-}"
[ -n "${new_commit_msg:-}" ] && new_commit_msg="${new_commit_msg} "
git add install.sh && new_commit_msg="Rebuilt install.sh" && commit_msg="${new_commit_msg:-}"
fi
[ -n "${commit_msg:-}" ] && git commit -am "${commit_msg}" && git push
fi