diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index e695b0a0f..4fd430379 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -250,99 +250,106 @@ jobs: ctest -j 2 -VV -S dashboard.cmake shell: cmd -#TODO: Implement Documentation Build when warnings are fixed. -# build-test-documentation: -# runs-on: ${{ matrix.os }} -# strategy: -# max-parallel: 3 -# matrix: -# os: [ubuntu-18.04] -# include: -# - os: ubuntu-18.04 -# c-compiler: "gcc" -# cxx-compiler: "g++" -# itk-git-tag: "v5.1.0" -# cmake-build-type: "Release" -# -# steps: -# - uses: actions/checkout@v1 -# -# - name: Set up Python 3.7 -# uses: actions/setup-python@v1 -# with: -# python-version: 3.7 -# -# - name: Install build dependencies -# run: | -# sudo apt-get update -# sudo apt-get install gnuplot dvipng -# -# python -m pip install --upgrade pip -# python -m pip install ninja -# python -m pip install sphinx -# -# -# - name: Download ITK -# run: | -# cd .. -# git clone https://github.com/InsightSoftwareConsortium/ITK.git -# cd ITK -# git checkout ${{ matrix.itk-git-tag }} -# -# - name: Build ITK -# run: | -# cd .. -# mkdir ITK-build -# cd ITK-build -# cmake -DBUILD_DOCUMENTATION:BOOL=ON -DCMAKE_C_COMPILER:FILEPATH="${{ matrix.c-compiler }}" -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_CXX_COMPILER="${{ matrix.cxx-compiler }}" -DCMAKE_BUILD_TYPE:STRING=${{ matrix.cmake-build-type }} -DBUILD_TESTING:BOOL=OFF -GNinja ../ITK -# ninja -# -# - name: Fetch CTest driver script -# run: | -# curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITK/dashboard/itk_common.cmake -O -# -# - name: Configure CTest script -# shell: bash -# run: | -# operating_system="${{ matrix.os }}" -# cat > dashboard.cmake << EOF -# set(CTEST_SITE "GitHubActions") -# file(TO_CMAKE_PATH "${GITHUB_WORKSPACE}/.." CTEST_DASHBOARD_ROOT) -# file(TO_CMAKE_PATH "${GITHUB_WORKSPACE}/" CTEST_SOURCE_DIRECTORY) -# file(TO_CMAKE_PATH "${GITHUB_WORKSPACE}/../build" CTEST_BINARY_DIRECTORY) -# set(dashboard_source_name "${GITHUB_REPOSITORY}") -# if(ENV{GITHUB_REF} MATCHES "master") -# set(branch "-master") -# set(dashboard_model "Continuous") -# else() -# set(branch "-${GITHUB_REF}") -# set(dashboard_model "Experimental") -# endif() -# set(CTEST_BUILD_NAME "${GITHUB_REPOSITORY}-${operating_system}-\${branch}") -# set(CTEST_UPDATE_VERSION_ONLY 1) -# set(CTEST_TEST_ARGS \${CTEST_TEST_ARGS} PARALLEL_LEVEL \${PARALLEL_LEVEL}) -# set(CTEST_BUILD_CONFIGURATION "Release") -# set(CTEST_CMAKE_GENERATOR "Ninja") -# set(CTEST_CUSTOM_WARNING_EXCEPTION -# \${CTEST_CUSTOM_WARNING_EXCEPTION} -# # macOS Azure VM Warning -# "ld: warning: text-based stub file" -# ) -# set(dashboard_no_clean 1) -# set(ENV{CC} ${{ matrix.c-compiler }}) -# set(ENV{CXX} ${{ matrix.cxx-compiler }}) -# set(dashboard_cache " -# ITK_DIR:PATH=\${CTEST_DASHBOARD_ROOT}/ITK-build -# BUILD_TESTING:BOOL=ON -# BUILD_DOCUMENTATION:BOOL=ON -# ") -# string(TIMESTAMP build_date "%Y-%m-%d") -# message("CDash Build Identifier: \${build_date} \${CTEST_BUILD_NAME}") -# message("CTEST_SITE = \${CTEST_SITE}") -# include(\${CTEST_SCRIPT_DIRECTORY}/itk_common.cmake) -# EOF -# cat dashboard.cmake -# -# - name: Build and test -# run: | -# ctest -j 2 -VV -S dashboard.cmake + build-test-documentation: + runs-on: ${{ matrix.os }} + strategy: + max-parallel: 3 + matrix: + os: [ubuntu-18.04] + include: + - os: ubuntu-18.04 + c-compiler: "gcc" + cxx-compiler: "g++" + itk-git-tag: "e2c71059e47d5e77c647aab5b799121090fdf4ec" + cmake-build-type: "Release" + + steps: + - uses: actions/checkout@v1 + + - name: Set up Python 3.8 + uses: actions/setup-python@v1 + with: + python-version: 3.8 + + - name: Get specific version of CMake, Ninja + uses: lukka/get-cmake@v3.18.3 + + - name: Install build dependencies + run: | + sudo apt-get update + sudo apt-get install gnuplot dvipng + sudo apt-get install texlive-full + + python -m pip install --upgrade pip + python -m pip install ninja + python -m pip install sphinx==3.0.4 + python -m pip install --ignore-installed six + + - name: Remove Duplicate Declaration Warnings + run: | + sed -i "6559d" /opt/hostedtoolcache/Python/3.8.6/x64/lib/python3.8/site-packages/sphinx/domains/cpp.py + + - name: Download ITK + run: | + cd .. + git clone https://github.com/InsightSoftwareConsortium/ITK.git + cd ITK + git checkout ${{ matrix.itk-git-tag }} + + - name: Build ITK + run: | + cd .. + mkdir ITK-build + cd ITK-build + cmake -DCMAKE_C_COMPILER:FILEPATH="${{ matrix.c-compiler }}" -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_CXX_COMPILER="${{ matrix.cxx-compiler }}" -DCMAKE_BUILD_TYPE:STRING=${{ matrix.cmake-build-type }} -DBUILD_TESTING:BOOL=OFF -GNinja ../ITK + ninja + + - name: Fetch CTest driver script + run: | + curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITK/dashboard/itk_common.cmake -O + + - name: Configure CTest script + shell: bash + run: | + operating_system="${{ matrix.os }}" + cat > dashboard.cmake << EOF + set(CTEST_SITE "GitHubActions") + file(TO_CMAKE_PATH "${GITHUB_WORKSPACE}/.." CTEST_DASHBOARD_ROOT) + file(TO_CMAKE_PATH "${GITHUB_WORKSPACE}/" CTEST_SOURCE_DIRECTORY) + file(TO_CMAKE_PATH "${GITHUB_WORKSPACE}/../build" CTEST_BINARY_DIRECTORY) + set(dashboard_source_name "${GITHUB_REPOSITORY}") + if(ENV{GITHUB_REF} MATCHES "master") + set(branch "-master") + set(dashboard_model "Continuous") + else() + set(branch "-${GITHUB_REF}") + set(dashboard_model "Experimental") + endif() + set(CTEST_BUILD_NAME "${GITHUB_REPOSITORY}-${operating_system}-\${branch}") + set(CTEST_UPDATE_VERSION_ONLY 1) + set(CTEST_TEST_ARGS \${CTEST_TEST_ARGS} PARALLEL_LEVEL \${PARALLEL_LEVEL}) + set(CTEST_BUILD_CONFIGURATION "Release") + set(CTEST_CMAKE_GENERATOR "Ninja") + set(CTEST_CUSTOM_WARNING_EXCEPTION + \${CTEST_CUSTOM_WARNING_EXCEPTION} + # macOS Azure VM Warning + "ld: warning: text-based stub file" + ) + set(dashboard_no_clean 1) + set(ENV{CC} ${{ matrix.c-compiler }}) + set(ENV{CXX} ${{ matrix.cxx-compiler }}) + set(dashboard_cache " + ITK_DIR:PATH=\${CTEST_DASHBOARD_ROOT}/ITK-build + BUILD_TESTING:BOOL=ON + BUILD_DOCUMENTATION:BOOL=ON + ") + string(TIMESTAMP build_date "%Y-%m-%d") + message("CDash Build Identifier: \${build_date} \${CTEST_BUILD_NAME}") + message("CTEST_SITE = \${CTEST_SITE}") + include(\${CTEST_SCRIPT_DIRECTORY}/itk_common.cmake) + EOF + cat dashboard.cmake + + - name: Build and test + run: | + ctest -j 2 -VV -S dashboard.cmake