Skip to content

Commit c9db14b

Browse files
author
Lisa Julia Nebel
committed
Change build system such that it can build for more branches than master
1 parent 4a22cf9 commit c9db14b

File tree

3 files changed

+36
-22
lines changed

3 files changed

+36
-22
lines changed

.github/workflows/python_sphinx_docs.yml

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,18 @@ jobs:
1919
uses: actions/checkout@v4
2020
with:
2121
fetch-depth: 0 # Fetch all history for all tags and branches
22+
- name: Create tmp directories for master
23+
run: |
24+
mkdir python/master-tmp
2225
- name: Get docstrings_common.json from master branch of opm-common
2326
run: |
24-
curl -L -o python/docstrings_common.json https://raw.githubusercontent.com/OPM/opm-common/master/python/docstrings_common.json
27+
curl -L -o python/master-tmp/docstrings_common.json https://raw.githubusercontent.com/OPM/opm-common/master/python/docstrings_common.json
2528
- name: Get docstrings_common.json from master branch of opm-simulators
2629
run: |
27-
curl -L -o python/docstrings_simulators.json https://raw.githubusercontent.com/OPM/opm-simulators/master/python/docstrings_simulators.json
30+
curl -L -o python/master-tmp/docstrings_simulators.json https://raw.githubusercontent.com/OPM/opm-simulators/master/python/docstrings_simulators.json
2831
- name: Get dune.module from master branch of opm-simulators, this is needed for the call to extract_opm_simulators_release in python/sphinx_docs/docs/conf.py.
2932
run: |
30-
curl -L -o dune.module https://raw.githubusercontent.com/OPM/opm-simulators/master/dune.module
33+
curl -L -o python/master-tmp/dune.module https://raw.githubusercontent.com/OPM/opm-simulators/master/dune.module
3134
- name: Set up Python
3235
uses: actions/setup-python@v5
3336
with:
@@ -44,18 +47,17 @@ jobs:
4447
mkdir gh-pages
4548
touch gh-pages/.nojekyll
4649
cd sphinx_docs
47-
# Currently we build only docs for the HEAD of the master branch
48-
# Later we can add release tags to the list to get the docs for the releases
49-
# For example: -b "master, release/2024.04/final" will build the docs for
50-
# the master branch and the release/2024.04/final tag
51-
# For the releases, we create snapshots of the docstrings_common.json and docstrings_simulators.json
52-
# and take the ones tracked by git, only for the master, we take the current ones we fetched
53-
# in steps 2 and 3 of this workflow
54-
50+
# To add a new relase to this build system:
51+
# - add the respective branch <your-new-release> on this repository
52+
# - take a snapshot of https://raw.githubusercontent.com/OPM/opm-common/<your-new-release>/python/docstrings_common.json,
53+
# https://raw.githubusercontent.com/OPM/opm-simulators/<your-new-release>/python/docstrings_simulators.json and
54+
# https://raw.githubusercontent.com/OPM/opm-simulators/<your-new-release>/dune.module and put them
55+
# in the python folder on that branch
56+
# - add the respective branch <your-new-release> in the command below
5557
if [ "${{ github.ref_name }}" == "master" ]; then
56-
poetry run sphinx-versioned -m master -b "master" --force --git-root ../../
58+
poetry run sphinx-versioned -m master -b "master release/2025.04" --force --git-root ../../
5759
else
58-
poetry run sphinx-versioned -m master -b "master ${{ github.ref_name }}" --force --git-root ../../
60+
poetry run sphinx-versioned -m ${{ github.ref_name }} -b "${{ github.ref_name }} master release/2025.04" --force --git-root ../../
5961
fi
6062
- name: Copy documentation to gh-pages
6163
run: |

.gitignore

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# Files necessary to build the documentation locally, but these are tracked by other github repositories
2-
/dune.module
3-
python/docstrings_common.json
4-
python/docstrings_simulators.json
2+
python/master-tmp
53

64
# Python sphinx build
75
python/sphinx_docs/docs/_build*

python/sphinx_docs/docs/conf.py

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,36 @@
11
# Configuration file for the Sphinx documentation builder.
22

3+
import os
4+
import subprocess
5+
36
project = "OPM Python Documentation"
47
copyright = "2024 Equinor ASA"
58
author = "Håkon Hægland"
69

10+
def get_git_branch():
11+
try:
12+
return subprocess.check_output(["git", "rev-parse", "--abbrev-ref", "HEAD"]).decode("utf-8").strip()
13+
except Exception:
14+
return "unknown"
15+
716
# Function to extract release version from dune.module file
8-
def extract_opm_simulators_release():
9-
version_file_path = '../../../dune.module'
17+
def extract_opm_simulators_release(version_file_path):
1018
with open(version_file_path, 'r') as file:
1119
for line in file:
1220
if line.startswith('Version:'):
1321
version_string = line.split(':')[1].strip()
1422
return version_string
1523
return "unknown" # Fallback version
1624

17-
release = extract_opm_simulators_release()
25+
branch = get_git_branch()
26+
print(branch)
27+
if branch == "master":
28+
prefix = "../../master-tmp"
29+
else:
30+
prefix = "../../"
31+
release = extract_opm_simulators_release(os.path.join(prefix, "dune.module"))
1832

1933
# -- General configuration ---------------------------------------------------
20-
import os
2134
import sys
2235

2336
# For regular Python packages, the path to the package is usually added to sys.path
@@ -35,9 +48,10 @@ def extract_opm_simulators_release():
3548
sys.path.insert(0, os.path.abspath("../src"))
3649
# Our sphinx extension that will use the docstrings.json file to generate documentation
3750
extensions = ["opm_python_docs.sphinx_ext_docstrings"]
51+
3852
# Path to docstrings.json
39-
opm_simulators_docstrings_path = os.path.abspath('../../docstrings_simulators.json')
40-
opm_common_docstrings_path = os.path.abspath('../../docstrings_common.json')
53+
opm_simulators_docstrings_path = os.path.abspath(os.path.join(prefix, "docstrings_simulators.json"))
54+
opm_common_docstrings_path = os.path.abspath(os.path.join(prefix, "docstrings_common.json"))
4155

4256
templates_path = ["_templates"]
4357
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]

0 commit comments

Comments
 (0)