Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
13c83c9
Hugo: Migrate Jekyll _layouts to Hugo layouts/_default (#944)
MuhammadAashirAslam Aug 9, 2026
bcc3222
Hugo: Initialize Hugo config directory and split module mounts (#945)
MakisH Oct 20, 2026
05ac1f1
Hugo: Add community and testimonial partials (#947)
MuhammadAashirAslam Aug 9, 2026
42cbb23
Hugo: Add alert and callout partials (#949)
MuhammadAashirAslam Aug 9, 2026
2455a3a
Hugo: Add core page layout partials (#950)
MuhammadAashirAslam Aug 9, 2026
5ae647b
Hugo: Add sidebar layouts (#951)
MuhammadAashirAslam Aug 9, 2026
9a9801c
Hugo: Add third party integrations and analytics partials (#952)
MuhammadAashirAslam Aug 9, 2026
b759d5f
Hugo: Add Hugo shortcodes (#961)
MakisH Oct 20, 2026
0c74257
Hugo: Add publication and tagging partials (#948)
MuhammadAashirAslam Aug 9, 2026
e369de2
Hugo: Add specialized Hugo layouts (#963)
MuhammadAashirAslam Aug 9, 2026
9ef20d6
Hugo: Add content utilities and helpers partials (#953)
MakisH Oct 20, 2026
b555670
Hugo: Replace Jekyll XML Outputs and Update Doxygen Sitemap Integrati…
MuhammadAashirAslam Aug 9, 2026
f1681d4
Hugo: Migrate content and static assets (#964)
MakisH Oct 20, 2026
46dcf56
Hugo: Update references to renamed edit button (#971)
MuhammadAashirAslam Aug 10, 2026
bb678cf
Hugo: Rewrite CI workflows for Hugo (#967)
MuhammadAashirAslam Aug 13, 2026
90fb255
Hugo: Rename tutorials sidebar file and update config (#977)
MuhammadAashirAslam Aug 23, 2026
5c93fee
Hugo: Migrate modules and Discourse data update worflows (#969)
MuhammadAashirAslam Aug 23, 2026
1b90b4f
Hugo: Port PDF generation to Hugo (#972)
MakisH Oct 20, 2026
4852966
Hugo: Add Hugo Algolia indexing (#968)
MuhammadAashirAslam Aug 24, 2026
80caebf
Hugo: Fix contributors page and overview image (#978)
MuhammadAashirAslam Aug 24, 2026
e1b9568
Hugo: Update content documentation (#970)
MakisH Oct 20, 2026
ac44f6a
Hugo: Remove remaining Jekyll-related files (#973)
MakisH Oct 20, 2026
fb55220
Hugo: Remove automatic subpage listing from section overview
MuhammadAashirAslam Aug 30, 2026
89fe87d
Hugo: Update system tests mount path
MuhammadAashirAslam Aug 30, 2026
bcfb5fd
Hugo: Render publication content in card and link to literature guide
MuhammadAashirAslam Aug 30, 2026
a960633
Hugo: Update Hugo to v0.166.0 and Go to v1.27.1
MuhammadAashirAslam Sep 11, 2026
0339879
Hugo: Update sidebars to use the Hugo URLs
MakisH Oct 20, 2026
b681f43
Hugo: Update README for better readability
MuhammadAashirAslam Sep 15, 2026
6960c29
Hugo: Switch to native Hugo sitemap
MuhammadAashirAslam Sep 15, 2026
240324d
Hugo: Add local-hugo wrapper for Imported documentation (#987)
MuhammadAashirAslam Oct 5, 2026
c4a8548
Hugo: Add Tutorial Sync Script and GitHub Actions workflow (#990)
MuhammadAashirAslam Oct 8, 2026
d444a7a
Hugo: Various fixes
MakisH Oct 20, 2026
61858a5
Hugo: Point overview sidebar entries and section roots to canonical p…
MuhammadAashirAslam Oct 13, 2026
c89811f
Hugo: Fix tutorial thumbnail image paths and installation overview links
MuhammadAashirAslam Oct 13, 2026
cc799c4
Hugo: Add dynamic table of contents fallback for shortcode headings
MuhammadAashirAslam Oct 13, 2026
2fcec26
Hugo: Use Mermaid ES module bundle to fix diagram rendering
MuhammadAashirAslam Oct 13, 2026
41bc810
Hugo: Enable Goldmark passthrough extension to preserve LaTeX math sy…
MuhammadAashirAslam Oct 13, 2026
2256d24
Hugo: Highlight tutorials in top navigation bar across all tutorial s…
MuhammadAashirAslam Oct 13, 2026
1579f37
Hugo: Style outline primary buttons with the preCICE primary blue color
MuhammadAashirAslam Oct 13, 2026
723f435
Hugo: Various LaTeX-related fixes
MuhammadAashirAslam Oct 13, 2026
fb08fca
Hugo: Update licenses
MakisH Oct 13, 2026
29471c5
Hugo: Move couple-your-code-porting-adapters.html alias to porting/ov…
MakisH Oct 16, 2026
d63a3c7
Hugo: Add Aashir in the about page
MakisH Oct 16, 2026
1285222
Hugo: Move Matrix URL parameter to params configuration
MuhammadAashirAslam Oct 19, 2026
215a894
Update news banner
MuhammadAashirAslam Aug 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
117 changes: 96 additions & 21 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,44 +1,119 @@
name: Build the website

on:
workflow_dispatch:
push:
pull_request:
merge_group:

permissions:
contents: read

concurrency:
group: build-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
GO_VERSION: "1.27.1"
HUGO_VERSION: "0.166.0"
NODE_VERSION: "24.18.0"

jobs:
pre-commit:
name: pre-commit checks
name: Pre-commit checks
runs-on: ubuntu-latest
timeout-minutes: 15

steps:
- uses: actions/checkout@v6
- name: Setup python
uses: actions/setup-python@v6
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Set up Python
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
with:
python-version: '3.x'
python-version: "3.14"

- name: Cache pre-commit environments
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6
with:
path: ~/.cache/pre-commit
key: pre-commit-${{ runner.os }}-${{ hashFiles('.pre-commit-config.yaml') }}

- name: Install pre-commit
run: python -m pip install "pre-commit==4.6.1"

- name: Run pre-commit
uses: pre-commit/action@v3.0.1
run: pre-commit run --all-files --show-diff-on-failure --color=always

build:
name: Hugo build and validation
needs: pre-commit
runs-on: ubuntu-latest
timeout-minutes: 30

steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
submodules: true
fetch-depth: 0
submodules: false
lfs: false
path: website
- uses: ruby/setup-ruby@v1

- name: Set up Go
uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6
with:
bundler-cache: true
working-directory: website
- name: Build site
working-directory: website
env:
JEKYLL_ENV: production
run: bundle exec jekyll build
- name: Upload site
uses: actions/upload-artifact@v7
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: go.sum

- name: Set up Hugo
uses: peaceiris/actions-hugo@2752ce1d29631191ea3f27c23495fa06139a5b78 # v3
with:
hugo-version: ${{ env.HUGO_VERSION }}
extended: true

- name: Set up Node.js
uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6
with:
node-version: ${{ env.NODE_VERSION }}
cache: npm
cache-dependency-path: tools/package-lock.json

- name: Install Node.js dependencies
run: npm ci
working-directory: tools

- name: Test Algolia indexing
run: npm run test:algolia
working-directory: tools

- name: Verify Hugo modules
run: hugo mod verify

- name: Build Hugo site
run: hugo --gc --minify --cleanDestinationDir --environment production

- name: Validate Algolia records
run: npm run algolia:index -- --dry-run
working-directory: tools

- name: Install XML validation tools
run: sudo apt-get update && sudo apt-get install --yes libxml2-utils

- name: Validate generated output
run: |
test "$(cat public/CNAME)" = "precice.org"
test -s public/feed.xml
test -s public/sitemap.xml
test -s public/robots.txt
grep -Fx 'Sitemap: https://precice.org/sitemap.xml' public/robots.txt
xmllint --noout \
public/feed.xml \
public/sitemap.xml

- name: Upload Hugo site
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: site
path: website/_site
name: hugo-site
path: public
if-no-files-found: error
retention-days: 7
161 changes: 88 additions & 73 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -1,110 +1,125 @@
name: Build and deploy the website

on:
workflow_dispatch:
workflow_call:
push:
branches:
- master

permissions:
contents: read

concurrency:
group: website-deploy
cancel-in-progress: false # wait
group: production-pages
cancel-in-progress: false

env:
BASE_URL: "https://precice.org/"
GO_VERSION: "1.27.1"
HUGO_VERSION: "0.166.0"

jobs:
pre-commit:
name: pre-commit checks
name: Pre-commit checks
runs-on: ubuntu-latest
timeout-minutes: 15

steps:
- uses: actions/checkout@v6
- name: Setup python
uses: actions/setup-python@v6
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Set up Python
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
with:
python-version: '3.x'
python-version: "3.14"

- name: Cache pre-commit environments
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6
with:
path: ~/.cache/pre-commit
key: pre-commit-${{ runner.os }}-${{ hashFiles('.pre-commit-config.yaml') }}

- name: Install pre-commit
run: python -m pip install "pre-commit==4.6.1"

- name: Run pre-commit
uses: pre-commit/action@v3.0.1
run: pre-commit run --all-files --show-diff-on-failure --color=always

build-deploy:
build:
name: Build production site
needs: pre-commit
runs-on: ubuntu-latest
timeout-minutes: 45

steps:
- name: Checkout website
uses: actions/checkout@v6
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
submodules: true
lfs: false
path: website
fetch-depth: 0 # full history required to determine last edit
submodules: false
lfs: false

- name: Fetch - precice develop
uses: actions/checkout@v6
- name: Set up Go
uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6
with:
repository: precice/precice
ref: develop
path: develop
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: website/go.sum

- name: Fetch - precice main
uses: actions/checkout@v6
- name: Set up Hugo
uses: peaceiris/actions-hugo@2752ce1d29631191ea3f27c23495fa06139a5b78 # v3
with:
repository: precice/precice
ref: main
path: main
fetch-tags: true
hugo-version: ${{ env.HUGO_VERSION }}
extended: true

- name: Patch doxyfiles
run: website/doxygen/patch.sh
- name: Install XML validation tools
run: sudo apt-get update && sudo apt-get install --yes libxml2-utils

- name: Install dependencies
- name: Log tool versions
run: |
sudo apt-get -yyq update
sudo apt-get -yyq install graphviz plantuml

# Install latest doxygen binary
mkdir doxygen
curl -sL https://github.com/doxygen/doxygen/releases/download/Release_1_14_0/doxygen-1.14.0.linux.bin.tar.gz | tar -xz --strip-components=1 -C doxygen
readlink -f doxygen/bin >> $GITHUB_PATH

- name: Check doxygen version
run: doxygen --version

- name: Setup ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
working-directory: website
go version
hugo version

- name: Fetch full history for submodules
- name: Verify Hugo modules
working-directory: website
run: git submodule foreach --recursive "git fetch --unshallow --all 2>/dev/null || git fetch --all"
run: hugo mod verify

- name: Build website
- name: Build Hugo site
working-directory: website
env:
JEKYLL_ENV: production
run: bundle exec jekyll build

- name: Build doxygen - develop
working-directory: develop
run: doxygen
env:
PLANTUML_JAR_PATH: /usr/share/plantuml/plantuml.jar

- name: Build doxygen - main
working-directory: main
run: doxygen
env:
PLANTUML_JAR_PATH: /usr/share/plantuml/plantuml.jar

- name: Assemble website
run: hugo --gc --minify --cleanDestinationDir --environment production --baseURL "${BASE_URL}"

- name: Validate assembled site
run: |
mv website/_site public
mv develop/docs/source-code-documentation/html public/doxygen/develop
mv main/docs/source-code-documentation/html public/doxygen/main
test -s website/public/index.html
test "$(cat website/public/CNAME)" = "precice.org"
test -s website/public/feed.xml
test -s website/public/sitemap.xml
test -s website/public/robots.txt
grep -Fx 'Sitemap: https://precice.org/sitemap.xml' website/public/robots.txt
xmllint --noout \
website/public/feed.xml \
website/public/sitemap.xml

- name: Upload Pages artifact
uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5
with:
path: website/public

- name: List website files
run: find public
deploy:
name: Deploy production site
if: github.ref == 'refs/heads/master'
needs: build
runs-on: ubuntu-latest
timeout-minutes: 10
permissions:
contents: read
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

- name: Deploy
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.JEKYLL_PAT }}
publish_dir: ./public
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5
Loading
Loading