Update documentation and installer #9
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
git commit -am "${commit_msg}" && git push | |
fi |