Skip to content

Migrate git-scm.com to a static site, generated via Hugo, served via GitHub Pages #314

Migrate git-scm.com to a static site, generated via Hugo, served via GitHub Pages

Migrate git-scm.com to a static site, generated via Hugo, served via GitHub Pages #314

Workflow file for this run

name: CI
on: [pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: configure Hugo and Pagefind version
run: |
set -x &&
echo "HUGO_VERSION=$(sed -n 's/^ *hugo_version: *//p' <hugo.yml)" >>$GITHUB_ENV
echo "PAGEFIND_VERSION=$(sed -n 's/^ *pagefind_version: *//p' <hugo.yml)" >>$GITHUB_ENV
- name: install Hugo ${{ env.HUGO_VERSION }}
run: |
set -x &&
curl -Lo /tmp/hugo.deb https://github.com/gohugoio/hugo/releases/download/v$HUGO_VERSION/hugo_extended_${HUGO_VERSION}_linux-amd64.deb &&
sudo dpkg -i /tmp/hugo.deb
- name: run Hugo to build the pages
run: hugo
- name: ensure that there are no absolute URLs
run: |
set -x
if git grep --untracked --no-exclude-standard "\\(href\|src\) *= *[\"']/" \
-- public/ ':^public/js/jquery*' >/tmp/abs-urls.txt
then
cat /tmp/abs-urls.txt
exit 1
fi
- name: run Pagefind ${{ env.PAGEFIND_VERSION }} to build the search index
run: npx -y pagefind@${{ env.PAGEFIND_VERSION }} --site public
- name: build tar archive
run: cd public && tar czvf ../pages.tar.gz *
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: pages
path: pages.tar.gz
- name: verify search results
run: |
set -x
res=0
for term in commit config log rev-parse
do
node ./script/run-pagefind.js "$term" | tee search.results >&2
grep "^1. /docs/git-$term\\.html" search.results || {
echo "::error::Search for $term failed to show the manual page first" >&2
res=1
}
done
exit $res
- name: check for broken links
id: lychee
uses: lycheeverse/lychee-action@d4128702eae98bbc5ecf74df0165a8156c80920a # until an official version is out that includes https://github.com/lycheeverse/lychee/pull/1422
with:
lycheeVersion: nightly # until an official version includes https://github.com/lycheeverse/lychee/pull/1422
args: >-
--offline
--fallback-extensions html
--exclude file:///path/to/repo.git/
--exclude file:///caminho/para/o/reposit%C3%B3rio.git/
--exclude file:///ruta/a/repositorio.git/
--exclude file:///sl%C3%B3%C3%B0/til/hirsla.git/
--exclude file:///Pfad/zum/Repo.git/
--exclude file:///chemin/du/d%C3%A9p%C3%B4t.git/
--exclude file:///srv/git/project.git
public/
output: lychee.md
jobSummary: true