Dependencies might break if there is a mirror update between `pacman -Syu` and `pacman -Sy clang18`. So do not update the database before installing clang18. See also the warning in https://wiki.archlinux.org/title/Pacman#Installing_packages
110 lines
3.6 KiB
YAML
110 lines
3.6 KiB
YAML
# NS3 CI script for the documentation
|
||
# For the moment we do not install the generated documentation
|
||
#
|
||
.doc:
|
||
stage: documentation
|
||
before_script:
|
||
- pacman-key --init
|
||
- pacman -Syu --noconfirm
|
||
base-devel ninja cmake python ccache gsl gtk3 boost openmpi openssh
|
||
graphviz imagemagick texlive-basic texlive-bin texlive-binextra texlive-latexextra
|
||
texlive-fontutils texlive-fontsrecommended texlive-mathscience python-sphinx wget
|
||
# doxygen
|
||
# dia is archived
|
||
- pacman --noconfirm -U https://archive.archlinux.org/packages/d/dia/dia-0.97.3-9-x86_64.pkg.tar.zst
|
||
# temporary revert to Doxygen 1.11.0. The package has been recompiled
|
||
# without spdlog and wizard support to fix a library dependency.
|
||
# Clang-18 is needed by doxygen
|
||
- pacman -S --noconfirm clang18
|
||
- wget -nv http://www.nsnam.org/packages/doxygen-1.11.0-4-x86_64.pkg.tar.zst
|
||
- pacman --noconfirm -U doxygen-1.11.0-4-x86_64.pkg.tar.zst
|
||
# no policy is a good policy.
|
||
- mv /etc/ImageMagick-7/policy.xml /etc/ImageMagick-7/policy.xml.bak
|
||
# - sed -i "s/EPS,PDF,//g" /etc/ImageMagick-7/policy.xml
|
||
# - sed -i "s/none/read\ |\ write/g" /etc/ImageMagick-7/policy.xml
|
||
image: archlinux
|
||
timeout: 2h
|
||
interruptible: true
|
||
dependencies: []
|
||
# artifacts:
|
||
# paths:
|
||
# - public
|
||
|
||
doxygen:
|
||
extends: .doc
|
||
script:
|
||
- mkdir -p $CCACHE_BASEDIR_VALUE
|
||
- export CCACHE_BASEDIR=${PWD}
|
||
- export CCACHE_DIR=${PWD}/$CCACHE_BASEDIR_VALUE
|
||
# debug build is the fastest, and we do not need to actually execute anything, just the examples for introspection.
|
||
- export MPI_CI=1
|
||
- CXX=$COMPILER ./ns3 configure -d debug -GNinja --enable-examples --enable-tests --enable-asserts --enable-mpi
|
||
- ./ns3 build
|
||
- ./ns3 build assemble-introspected-command-line
|
||
# - mkdir -p public/doxygen
|
||
# The following four lines were needed when ns-3 had warnings, and
|
||
# it was necessary to have a filter to check only the files touched by a MR.
|
||
# - git remote add ns-3-origin https://gitlab.com/nsnam/ns-3-dev.git || true
|
||
# - git fetch ns-3-origin
|
||
# - export CHANGED_FILES=$(git diff --name-only ns-3-origin/master --diff-filter=d | tr '\n' ' ' | sed 's/ $//g;s/ /\\\|/g')
|
||
# - doc/doxygen.warnings.report.sh -f "$CHANGED_FILES"
|
||
- doc/doxygen.warnings.report.sh
|
||
# Just need to check doc/introspected-command-line.h and doc/introspected-doxygen.h
|
||
- python3 utils/check-style-clang-format.py --no-formatting --no-tabs doc/introspected-doxygen.h doc/introspected-command-line.h
|
||
- ./ns3 clean
|
||
# print the doxygen version - just to double check what has been used.
|
||
- doxygen -v
|
||
# - doxygen doc/doxygen.conf
|
||
# - mv doc/html/ public/doxygen
|
||
cache:
|
||
# Reuse the ccache from the per-commit-gcc-debug job
|
||
key: "ccache-per-commit-gcc-debug"
|
||
paths:
|
||
- $CCACHE_BASEDIR_VALUE/
|
||
policy: pull
|
||
variables:
|
||
CCACHE_BASEDIR_VALUE: ns-3-ccache-storage
|
||
COMPILER: g++
|
||
artifacts:
|
||
paths:
|
||
- doc/doxygen.warnings.log
|
||
when: always
|
||
# tags:
|
||
# - nsnam
|
||
# - linux
|
||
|
||
.sphinx-doc:
|
||
extends: .doc
|
||
script:
|
||
# - mkdir -p public/$DOC_DIR
|
||
- cd doc/$DOC_DIR
|
||
- make html
|
||
- make latexpdf
|
||
# - mv build/html ../../public/$DOC_DIR
|
||
# - mv build/latex/ns-3-$DOC_DIR.pdf ../../public/
|
||
|
||
manual:
|
||
extends: .sphinx-doc
|
||
variables:
|
||
DOC_DIR: manual
|
||
|
||
tutorial:
|
||
extends: .sphinx-doc
|
||
variables:
|
||
DOC_DIR: tutorial
|
||
|
||
models:
|
||
extends: .sphinx-doc
|
||
variables:
|
||
DOC_DIR: models
|
||
|
||
contributing:
|
||
extends: .sphinx-doc
|
||
variables:
|
||
DOC_DIR: contributing
|
||
|
||
installation:
|
||
extends: .sphinx-doc
|
||
variables:
|
||
DOC_DIR: installation
|