diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index aa569bd24..5f779270a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -38,6 +38,11 @@ # - tbb # - openmp # - mpich2 +# * .gitlab/ci/docker/ubuntu2004/doxygen/ +# - gcc 9.3 +# - tbb +# - openmp +# - mpich2 .docker_image: &docker_image variables: @@ -78,6 +83,12 @@ extends: - .docker_image +.ubuntu2004_doxygen: &ubuntu2004_doxygen + image: "kitware/vtkm:ci-doxygen-20200601" + extends: + - .docker_image + + .only-default: &only-default only: - master @@ -88,12 +99,9 @@ only: - master + # General Longer Term Tasks: -# - setup asan, and ubsan as sub-pipeline -# - setup clang tidy as sub-pipeline -# -# Current Tasks: -# - Determine if we can get sccache to work with CUDA +# - Setup clang tidy as sub-pipeline # - Setup a machine to replicate the issue in https://gitlab.kitware.com/vtk/vtk-m/-/issues/447 # Note: Centos7 doesn't work as they ship separate standard library # headers for each version. We will have to figure out something else @@ -165,6 +173,7 @@ stages: include: - local: '/.gitlab/ci/centos7.yml' - local: '/.gitlab/ci/centos8.yml' + - local: '/.gitlab/ci/doxygen.yml' - local: '/.gitlab/ci/rhel8.yml' - local: '/.gitlab/ci/ubuntu1604.yml' - local: '/.gitlab/ci/ubuntu1804.yml' diff --git a/.gitlab/ci/docker/ubuntu2004/doxygen/Dockerfile b/.gitlab/ci/docker/ubuntu2004/doxygen/Dockerfile new file mode 100644 index 000000000..5438644d3 --- /dev/null +++ b/.gitlab/ci/docker/ubuntu2004/doxygen/Dockerfile @@ -0,0 +1,33 @@ +FROM ubuntu:20.04 +LABEL maintainer "Robert Maynard" + +# Base dependencies for building VTK-m projects +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + cmake \ + curl \ + doxygen \ + g++ \ + git \ + git-lfs \ + libmpich-dev \ + libomp-dev \ + libtbb-dev \ + mpich \ + ninja-build \ + rsync \ + ssh \ + software-properties-common + +# Need to run git-lfs install manually on ubuntu based images when using the +# system packaged version +RUN git-lfs install + +# Provide CMake 3.17 so we can re-run tests easily +# This will be used when we run just the tests +RUN mkdir /opt/cmake/ && \ + curl -L https://github.com/Kitware/CMake/releases/download/v3.17.3/cmake-3.17.3-Linux-x86_64.sh > cmake-3.17.3-Linux-x86_64.sh && \ + sh cmake-3.17.3-Linux-x86_64.sh --prefix=/opt/cmake/ --exclude-subdir --skip-license && \ + rm cmake-3.17.3-Linux-x86_64.sh && \ + ln -s /opt/cmake/bin/ctest /opt/cmake/bin/ctest-latest + +ENV PATH "${PATH}:/opt/cmake/bin" diff --git a/.gitlab/ci/docker/update_all.sh b/.gitlab/ci/docker/update_all.sh index 81b672ccf..2d8221af1 100755 --- a/.gitlab/ci/docker/update_all.sh +++ b/.gitlab/ci/docker/update_all.sh @@ -34,6 +34,10 @@ cd ubuntu1804/cuda10.1 sudo docker build -t kitware/vtkm:ci-ubuntu1804_cuda10.1-$date . cd ../.. +cd ubuntu2004/doxygen/ +sudo docker build -t kitware/vtkm:ci-doxygen-$date . +cd ../.. + # sudo docker login --username= sudo docker push kitware/vtkm sudo docker system prune diff --git a/.gitlab/ci/doxygen.yml b/.gitlab/ci/doxygen.yml new file mode 100644 index 000000000..953b048ce --- /dev/null +++ b/.gitlab/ci/doxygen.yml @@ -0,0 +1,34 @@ + +# Build on documentation for VTK-m on ubuntu2004 with TBB and OpenMP +# Uses gcc 9 +# Uses MPICH2 +doxygen: + stage: build + environment: + #establish that we need doxygen related + #env variables + name: doxygen-upload + only: + #make sure we are only trigged on + #the vtk-m primary project + variables: + - '$DOXYGEN_UPLOAD_ENABLE == "true"' + timeout: 30 minutes + interruptible: true + tags: + - vtkm + - docker + - linux + extends: + - .ubuntu2004_doxygen + before_script: + - "cmake -V -P .gitlab/ci/config/gitlab_ci_setup.cmake" + - "ctest -VV -S .gitlab/ci/ctest_configure.cmake" + script: + - eval `ssh-agent -s` + - ssh-add <(echo "$DOC_API_KEY_BASE64" | base64 --decode) + - doxygen build/docs/doxyfile + - rsync -tv --recursive --delete -e "ssh -o StrictHostKeyChecking=no" build/docs/doxygen/html/ vtkm.documentation + variables: + CMAKE_BUILD_TYPE: Release + VTKM_SETTINGS: "tbb+openmp+mpi+shared+docs"