Use the official Jekyll container to build the site

Using a container makes it much easier to ensure consistency between
different developer environments, and even avoids devs needing to setup
an environment and deal with dependency issues.

- Update the README to describe how to test locally using the Jekyll
  container

- Update GitHub Actions to use the official Jekyll container

- Update GitHub Actions to run on pull requests, but with the publish
  step skipped, so that PRs can test that everything builds correctly
  before being merged

- Commit the Gemfile.lock file to freeze dependency versions

- Remove asciidoc descriptions for blockdiag, seqdiag, actdiag, and
  netdiag. The dependencies for these diagrams aren't easily added to
  the Jekyll container, we don't use any of them, and there is no
  obvious benefit to them over PlantUML or GraphViz

DAFFODIL-2595
7 files changed
tree: 14db4db722640e7b774e842f3f34fb73c3a94d45
  1. .github/
  2. site/
  3. .apk
  4. .asf.yaml
  5. .gitignore
  6. .project
  7. Gemfile
  8. Gemfile.lock
  9. LICENSE
  10. NOTICE
  11. README.md
README.md

Apache Daffodil Website

The Apache Daffodil website is based off of the Apache Website Template.

The website is generated using Jekyll and some plug-ins for it.

Testing Locally

To improve reproducibility and to minimize the effects and variability of a users environment, it is recommended that changes to the site repo be tested locally with a container. To do so, run one of the following commands.

With docker:

docker run -it --rm \
  --publish 127.0.0.1:4000:4000 \
  --volume="$PWD:/srv/jekyll" \
  docker.io/jekyll/jekyll:4.2.0 \
  jekyll serve --watch --source site

With rootless podman:

podman run -it --rm \
  --publish 127.0.0.1:4000:4000 \
  --volume="$PWD:/srv/jekyll" \
  --env JEKYLL_ROOTLESS=1 \
  docker.io/jekyll/jekyll:4.2.0 \
  jekyll serve --watch --source site

Then open http://localhost:4000 to view the site served by the Jekyll container. Changes to files in the site directory are automatically rebuilt and served.

Once satisfied, create a branch and open a pull request using the Daffodil project Code Conttributor Workflow but using the website repo instead of the code repo.

Publishing to the Live Site

Daffodil uses gitpubsub for publishing to the website. The static content served via Apache must be served in the content directory on the asf-site orphan branch. When changes are merged into the main branch on GitHub, a GitHub action will automatically run and perform the necessary steps to publish the site.