# NS3 CI script for the documentation # For the moment we do not install the generated documentation # .doc: stage: documentation before_script: - pacman -Syu --noconfirm - pacman -Sy base-devel ninja cmake python ccache gsl gtk3 boost --noconfirm - pacman -Sy git doxygen graphviz imagemagick dia texlive-core texlive-bin texlive-latexextra python-sphinx --noconfirm # 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 # artifacts: # paths: # - public doxygen: extends: .doc script: - mkdir -p $CCACHE_BASEDIR_VALUE - export CCACHE_BASEDIR=${PWD} - export CCACHE_DIR=${PWD}/$CCACHE_BASEDIR_VALUE - CXX=$COMPILER ./ns3 configure --enable-examples --enable-tests --enable-asserts -d default - ./ns3 build # - 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 tocuhed 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 # - doxygen doc/doxygen.conf # - mv doc/html/ public/doxygen cache: # Use separate key for each (debug/default/optimized) jobs because # they run in parallel and will otherwise overwrite each other # cache when they upload the cache archive at the end of the job, # resulting in only the cache for the last finished configuration # being stored. # # Do not distinguish between branches though to avoid # recompilation of all the files when a new branch is created. key: "ccache-$CI_JOB_NAME" paths: - $CCACHE_BASEDIR_VALUE/ variables: CCACHE_BASEDIR_VALUE: ns-3-ccache-storage COMPILER: g++ artifacts: paths: - doc/doxygen.warnings.log when: always # tags: # - nsnam # - linux manual: extends: .doc script: # - mkdir -p public/manual - cd doc/manual - make html - make latexpdf # - mv build/html ../../public/manual # - mv build/latex/ns-3-manual.pdf ../../public/ only: - master tutorial: extends: .doc script: # - mkdir -p public/manual - cd doc/tutorial - make html - make latexpdf # - mv build/html ../../public/manual # - mv build/latex/ns-3-tutorial.pdf ../../public/ only: - master models: extends: .doc script: # - mkdir -p public/models - cd doc/models - make html - make latexpdf # - mv build/html ../../public/models # - mv build/latex/ns-3-model-library.pdf ../../public only: - master