# Schedule a build for every midnight Eastern time. This is visible to the pipeline as Build.Reason schedules: - cron: "0 4 * * *" displayName: Daily midnight build branches: include: - master trigger: batch: true branches: include: ['master'] # 20200312: apparently this is now explicitly required for azure pr: branches: include: ['master'] jobs: - job: 'WindowsBuild' displayName: "End-to-end Windows build & package" timeoutInMinutes: 0 cancelTimeoutInMinutes: 300 pool: vmImage: 'vs2017-win2016' steps: - checkout: self # self represents the repo where the initial Pipelines YAML file was found # fetchDepth: 1 # the depth of commits to ask Git to fetch; defaults to no limit # submodule - bash: | git submodule update --init --recursive # ls -lt # ls ./src/applications/Preprocessing/greedy displayName: 'Git Submodule Init and Update' - script: | choco install doxygen.install nsis.install wget cmake git displayName: 'Install dependencies' # # Pull LFS # - bash: | # export GIT_LFS_SKIP_SMUDGE=1 # # git lfs pull --include "binaries/precompiledApps/windows.zip" # # git lfs pull --include "binaries/qt_5.12.1/windows.zip" # #echo "Not doing this until quota is improved on GitHub" # displayName: 'Pull LFS' # condition: ne(variables.CACHE_RESTORED_WINDOWS, 'true') # - powershell: | # wmic logicaldisk get size,freespace,caption # displayName: 'Disk space check' - powershell: | wget https://github.com/CBICA/CaPTk/raw/master/binaries/precompiledApps/windows.zip -O binaries_windows.zip wget https://github.com/CBICA/CaPTk/raw/master/binaries/qt_5.12.1/windows.zip -O qt.zip displayName: 'Downloading via wget' # Moving LFS Files - bash: | mkdir -p bin cd bin mv ../binaries_windows.zip . mv ../qt.zip . # wget https://github.com/CBICA/CaPTk/raw/master/binaries/precompiledApps/windows.zip -O binaries_windows.zip # wget https://github.com/CBICA/CaPTk/raw/master/binaries/qt_5.12.1/windows.zip -O qt.zip rm -rf ../binaries/* rm -rf ../data/georgetown rm -rf ../data/georgetown rm -rf ../docs rm -rf ../.git ls -lt displayName: 'Moving LFS files to the appropriate location under bin and freeing up some space' - script: | cd bin call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_INSTALL_PREFIX="./installLibs" -DCMAKE_CONFIGURATION_TYPES="Release" .. # freeing up space rm -rf ../src/applications/individualApps/libra_source/doc rm -rf ../src/applications/individualApps/libra_source/LIBRA_Software_Manual.pdf # freeing up space setx PATH "%PATH%;$(Build.SourcesDirectory)/bin/qt/5.12.1/bin" cmake --build . --target ALL_BUILD --config Release rm -rf installLibs rm -rf qt.zip rm -rf install displayName: 'Configure and compile Superbuild' - bash: | git pull origin master git log -1 cat CMakeLists.txt | grep -i "PROJECT_VERSION" displayName: 'Testing git pull and version' # - powershell: | # wmic logicaldisk get size,freespace,caption # displayName: 'Disk space check' - script: | cd bin call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_INSTALL_PREFIX="./install" -DCMAKE_CONFIGURATION_TYPES="Release" -DCAPTK_DISABLE_CWL=ON -DITK_DIR="$(Build.SourcesDirectory)/bin/ITK-build" -DDCMTK_DIR="$(Build.SourcesDirectory)/bin/DCMTK-build" -DBUILD_TESTING=OFF .. setx PATH "%PATH%;$(Build.SourcesDirectory)/bin/qt/5.12.1/bin" setx CMAKE_PREFIX_PATH "%CMAKE_PREFIX_PATH%;$(Build.SourcesDirectory)/bin/ITK-build;$(Build.SourcesDirectory)/bin/DCMTK-build;$(Build.SourcesDirectory)/bin/qt/5.12.1/lib/cmake/Qt5" rm -rf binaries_windows.zip rm -rf externalApps/binaries_windows/libra cmake --build . --target ALL_BUILD --config Release rm -rf externalApps displayName: 'Configure and compile CaPTk' # - powershell: | # get-psdrive | Where Free* # cd bin # # Remove-Item install_manifest.txt # pwd # switch((ls -r|measure -s Length).Sum) { # {$_ -gt 1GB} { # '{0:0.0} GiB' -f ($_/1GB) # break # } # {$_ -gt 1MB} { # '{0:0.0} MiB' -f ($_/1MB) # break # } # {$_ -gt 1KB} { # '{0:0.0} KiB' -f ($_/1KB) # break # } # default { "$_ bytes" } # } # displayName: 'Disk space check' - job: 'MacOSBuild' displayName: "End-to-end MacOS build & package" timeoutInMinutes: 0 cancelTimeoutInMinutes: 300 pool: vmImage: 'MacOS-10.14' steps: - checkout: self # self represents the repo where the initial Pipelines YAML file was found # fetchDepth: 1 # the depth of commits to ask Git to fetch; defaults to no limit # submodule - bash: | git submodule update --init --recursive # ls -lt # ls ./src/applications/Preprocessing/greedy displayName: 'Git Submodule Init and Update' - bash: | brew install make doxygen libomp openmpi glfw #brew install caskroom/cask/mactex # latex is not used for documentation right now export GIT_LFS_SKIP_SMUDGE=1 displayName: 'Brew dependencies' # - bash: | # brew install git-lfs # git lfs install # displayName: 'Brew dependency install LFS' # condition: ne(variables['CACHE_RESTORED_MAC'], 'true') # # Pull LFS # - bash: | # export GIT_LFS_SKIP_SMUDGE=1 # git lfs pull --include "binaries/precompiledApps/macos.zip" # git lfs pull --include "binaries/qt_5.12.1/macos.zip" # #echo "Not doing this until quota is improved on GitHub" # displayName: 'Pull LFS' # condition: ne(variables['CACHE_RESTORED_MAC'], 'true') # Moving LFS Files - bash: | mkdir -p bin cd bin wget https://github.com/CBICA/CaPTk/raw/master/binaries/precompiledApps/macos.zip -O binaries_macos.zip wget https://github.com/CBICA/CaPTk/raw/master/binaries/qt_5.12.1/macos.zip -O qt.zip # mv ../binaries/precompiledApps/macos.zip ./binaries_macos.zip # mv ../binaries/qt_5.12.1/macos.zip ./qt.zip ls -lt displayName: 'Downloading & Moving LFS files to the appropriate location under bin' # condition: ne(variables['CACHE_RESTORED_MAC'], 'true') - bash: | cd bin export CMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE export CMAKE_PREFIX_PATH="/Library/TeX/texbin" cmake ../ -DCMAKE_INSTALL_PREFIX="./install" make -j 2 rm -rf install displayName: 'Configure and compile Superbuild' # condition: ne(variables['CACHE_RESTORED_MAC'], 'true') # Check qt - bash: | cd bin ls -a ls ./qt/ displayName: 'Check qt' # - bash: | # tar cvfz bin_macos_20200212.tar.gz bin # displayName: 'Zipping Superbuild' - bash: | git pull origin master git log -1 cat CMakeLists.txt | grep -i "PROJECT_VERSION" displayName: 'Testing git pull and version' - bash: | cd bin sudo rm -rf CaPTk_* cmake ../ rm CMakeCache.txt export CMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE export CMAKE_PREFIX_PATH="/Library/TeX/texbin" export CMAKE_PREFIX_PATH=$(Build.SourcesDirectory)/bin/ITK-build:$(Build.SourcesDirectory)/bin/DCMTK-build:$(Build.SourcesDirectory)/bin/qt/5.12.1/clang_64/lib/cmake/Qt5:$(Build.SourcesDirectory)/bin/qt/5.12.1/clang_64/lib/cmake/Qt5Core:$CMAKE_PREFIX_PATH cmake -DITK_DIR=./ITK-build -DDCMTK_DIR=./DCMTK-build ../ rm -rf binaries_*.zip make -j 2 displayName: 'Configure and compile CaPTk' # - script: | # cd bin # sudo rm -rf CaPTk_* # cmake ../ # rm CMakeCache.txt # export CMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE # export CMAKE_PREFIX_PATH="/Library/TeX/texbin" # export CMAKE_PREFIX_PATH=$(Build.SourcesDirectory)/bin/ITK-build:$(Build.SourcesDirectory)/bin/DCMTK-build:$(Build.SourcesDirectory)/bin/qt/5.12.1/clang_64/lib/cmake/Qt5:$(Build.SourcesDirectory)/bin/qt/5.12.1/clang_64/lib/cmake/Qt5Core:$CMAKE_PREFIX_PATH # cmake -DITK_DIR=./ITK-build -DDCMTK_DIR=./DCMTK-build -DBUILD_TESTING=ON ../ # make -j 2 # make test # rm -rf testing # displayName: 'Performing the Tests' - job: 'Windows_SelfHost_Windows_7' displayName: "Self-hosted agent on Windows 7" timeoutInMinutes: 0 cancelTimeoutInMinutes: 300 pool: 'Windows' steps: - checkout: self # submodule - powershell: | git submodule update --init --recursive displayName: 'Git Submodule Init and Update' - powershell: | Remove-Item -Recurse -Force -ErrorAction Ignore bin mkdir bin displayName: 'Reset bin' # Moving LFS Files - powershell: | cd bin [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 wget https://github.com/CBICA/CaPTk/raw/master/binaries/precompiledApps/windows.zip -OutFile binaries_windows.zip displayName: 'Moving LFS files to the appropriate location under bin and freeing up some space' # - script: | # cd bin # call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 # cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_INSTALL_PREFIX="./installLibs" -DCMAKE_CONFIGURATION_TYPES="Release" .. # setx PATH "$(Build.SourcesDirectory)/bin/qt/5.12.1/bin;%PATH%" # cmake --build . --target ALL_BUILD --config Release # displayName: 'Configure and compile Superbuild' # - powershell: | # # Copy-Item -Recurse ../../../superbuild/ ./bin # # cd bin # # ls # cd bin # Copy-Item -Recurse ./ ../../../../superbuild # displayName: 'Move superbuild and qt and compiled apps' - powershell: | $env:GIT_REDIRECT_STDERR = '2>&1' git pull origin master git log -1 # cat CMakeLists.txt | grep -i "PROJECT_VERSION" displayName: 'Testing git pull and version' - script: | cd bin call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 setx PATH "E:/LibsCaPTk/bin/qt/5.12.1/bin;%PATH%" setx CMAKE_PREFIX_PATH "E:/LibsCaPTk/ITK-build;E:/LibsCaPTk/DCMTK-build;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5Core;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5WebView;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5WebEngineCore;%CMAKE_PREFIX_PATH%" cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_INSTALL_PREFIX="./install" -DCMAKE_CONFIGURATION_TYPES="Release" -DCAPTK_DISABLE_CWL=ON -DITK_DIR="E:/LibsCaPTk/ITK-build" -DDCMTK_DIR="E:/LibsCaPTk/DCMTK-build" -DQt5_DIR="E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5" -DQt5Core_DIR="E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5Core" -DBUILD_TESTING=OFF .. setx PATH "E:/LibsCaPTk/bin/qt/5.12.1/bin;%PATH%" setx CMAKE_PREFIX_PATH "E:/LibsCaPTk/ITK-build;E:/LibsCaPTk/DCMTK-build;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5Core;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5WebView;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5WebEngineCore;%CMAKE_PREFIX_PATH%" rm -rf externalApps/binaries_windows/libra cmake --build . --target ALL_BUILD --config Release displayName: 'Configure and compile CaPTk' # - script: | # cd bin # export GIT_LFS_SKIP_SMUDGE=1 # git lfs pull --include "data/TestData.zip" # call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 # setx PATH "E:/LibsCaPTk/bin/qt/5.12.1/bin;%PATH%" # setx CMAKE_PREFIX_PATH "E:/LibsCaPTk/ITK-build;E:/LibsCaPTk/DCMTK-build;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5Core;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5WebView;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5WebEngineCore;%CMAKE_PREFIX_PATH%" # cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_INSTALL_PREFIX="./install" -DCMAKE_CONFIGURATION_TYPES="Release" -DCAPTK_DISABLE_CWL=ON -DITK_DIR="E:/LibsCaPTk/ITK-build" -DDCMTK_DIR="E:/LibsCaPTk/DCMTK-build" -DQt5_DIR="E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5" -DQt5Core_DIR="E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5Core" -DBUILD_TESTING=ON .. # setx PATH "E:/LibsCaPTk/bin/qt/5.12.1/bin;%PATH%" # setx CMAKE_PREFIX_PATH "E:/LibsCaPTk/ITK-build;E:/LibsCaPTk/DCMTK-build;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5Core;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5WebView;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5WebEngineCore;%CMAKE_PREFIX_PATH%" # cmake --build . --target RUN_TESTS --config Release # displayName: 'Performing the Tests' - script: | cd bin call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 setx PATH "E:/LibsCaPTk/bin/qt/5.12.1/bin;%PATH%" setx CMAKE_PREFIX_PATH "E:/LibsCaPTk/ITK-build;E:/LibsCaPTk/DCMTK-build;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5Core;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5WebView;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5WebEngineCore;%CMAKE_PREFIX_PATH%" cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_INSTALL_PREFIX="./install" -DCMAKE_CONFIGURATION_TYPES="Release" -DCAPTK_DISABLE_CWL=ON -DITK_DIR="E:/LibsCaPTk/ITK-build" -DDCMTK_DIR="E:/LibsCaPTk/DCMTK-build" -DQt5_DIR="E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5" -DQt5Core_DIR="E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5Core" -DBUILD_TESTING=OFF .. setx PATH "E:/LibsCaPTk/bin/qt/5.12.1/bin;%PATH%" setx CMAKE_PREFIX_PATH "E:/LibsCaPTk/ITK-build;E:/LibsCaPTk/DCMTK-build;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5Core;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5WebView;E:/LibsCaPTk/qt/5.12.1/lib/cmake/Qt5WebEngineCore;%CMAKE_PREFIX_PATH%" cmake --build . --target PACKAGE --config Release displayName: 'Build & Package CaPTk' - powershell: | cd bin mv *_Installer.* $(Build.ArtifactStagingDirectory) displayName: 'Move installer to staging directory' - task: PublishBuildArtifacts@1 inputs: pathtoPublish: '$(Build.ArtifactStagingDirectory)' artifactName: '$(Build.DefinitionName)_installer_Windows' - task: DownloadBuildArtifacts@0 inputs: buildType: 'current' downloadType: 'single' artifactName: '$(Build.DefinitionName)_installer_Windows' downloadPath: '$(System.ArtifactsDirectory)' - task: CopyFilesOverSSH@0 inputs: sshEndpoint: cbicaNITRC sourceFolder: $(Build.ArtifactStagingDirectory) contents: '*_Installer.*' targetFolder: /var/home/groups/captk/htdocs # previously /mnt/gforge-data/gforge/home/groups/captk/downloads cleanTargetFolder: false overwrite: true continueOnError: true displayName: Uploading to NITRC condition: and( eq(variables['Build.DefinitionName'], 'CBICA.CaPTk'), or( eq(variables['Build.Reason'], 'Manual'), eq(variables['Build.Reason'], 'Schedule')) ) - job: 'Linux_SelfHost_Ubuntu_1604' displayName: "Self-hosted agent on Ubuntu 16.04" timeoutInMinutes: 0 cancelTimeoutInMinutes: 300 pool: 'Ubuntu_16.04' steps: - checkout: self # self represents the repo where the initial Pipelines YAML file was found # submodule - bash: | git submodule update --init --recursive rm -rf bin ls displayName: 'Git Submodule Init and Update' # Moving LFS Files - bash: | rm -rf binaries mkdir -p bin cd bin wget https://github.com/CBICA/CaPTk/raw/master/binaries/precompiledApps/linux.zip -O binaries_linux.zip # wget https://github.com/CBICA/CaPTk/raw/master/binaries/qt_5.12.1/linux.zip -O qt.zip ls -lt displayName: 'Downloading & Moving LFS files to the appropriate location under bin' # Configure and build superbuild # - bash: | # cd bin # cmake -DCMAKE_INSTALL_PREFIX="./install/appdir/usr" .. # make -j2 # rm -rf install # displayName: 'Configure and compile Superbuild' # - bash: | # # mkdir $(Build.SourcesDirectory)/../superbuild # # cd bin # # mv ./* $(Build.SourcesDirectory)/../superbuild # # cd $(Build.SourcesDirectory)/.. # # ls # # echo "Done cd" # # tar cvfz superbuild.tar.gz superbuild # # ls # # echo "done tar" # # rm -rf superbuild # # ls # # cd $(Build.SourcesDirectory) # pwd # rm -rf bin # mkdir bin # cd bin # cp -r $(Build.SourcesDirectory)/../superbuild.tar.gz ./ # ls # echo "Done cp" # tar xvfz superbuild.tar.gz # rm -rf superbuild.tar.gz # ls # echo "Done tar" # mv superbuild/* ./ # ls # displayName: 'Move superbuild and qt and compiled apps' - bash: | git pull origin master git log -1 cat CMakeLists.txt | grep -i "PROJECT_VERSION" displayName: 'Testing git pull and version' - bash: | rm -rf bin/qt.zip rm -rf bin/5.12.1 df -k . displayName: 'Disk space check' # # Configure and build CaPTk # - bash: | # cd bin # export CMAKE_PREFIX_PATH=$(Build.SourcesDirectory)/../../superbuild/bin/ITK-build:$(Build.SourcesDirectory)/../../superbuild/bin/DCMTK-build:$(Build.SourcesDirectory)/../../superbuild/bin/qt/5.12.1/lib/cmake/Qt5:$CMAKE_PREFIX_PATH # cmake -DCMAKE_INSTALL_PREFIX="./install/appdir/usr" -DITK_DIR=./ITK-build -DDCMTK_DIR=./DCMTK-build -DBUILD_TESTING=ON .. # make -j2 # displayName: 'Configure and compile CaPTk with Testing enabled' # - script: | # cd bin # make test # rm -rf testing # displayName: 'Performing the Tests' # Configure and build CaPTk - bash: | pwd cd bin ls $(Build.SourcesDirectory)/../../superbuild/bin export PATH=$(Build.SourcesDirectory)/../../superbuild/bin/qt/5.12.1/bin:$(Build.SourcesDirectory)/../../superbuild/bin/qt/5.12.1/libexec:$PATH export CMAKE_PREFIX_PATH=$(Build.SourcesDirectory)/../../superbuild/bin/ITK-build:$(Build.SourcesDirectory)/../../superbuild/bin/DCMTK-build:$(Build.SourcesDirectory)/../../superbuild/bin/qt/5.12.1/lib/cmake/Qt5:$CMAKE_PREFIX_PATH cmake -DCMAKE_INSTALL_PREFIX="./install/appdir/usr" -DITK_DIR="$(Build.SourcesDirectory)/../../superbuild/bin/ITK-build" -DDCMTK_DIR="$(Build.SourcesDirectory)/../../superbuild/bin/DCMTK-build" -DBUILD_TESTING=OFF .. rm -rf binaries_linux.zip rm -rf qt.zip rm -rf 5.12.1 rm -rf externalApps/binaries_linux/libra make -j2 make install/strip displayName: 'Configure and compile CaPTk' - bash: | rm -rf bin/qt.zip rm -rf bin/5.12.1 rm -rf regression rm -rf binaries rm -rf bin_linux_*.tar.gz df -k . displayName: 'Disk space check' # Build a package - bash: | export PATH=$(Build.SourcesDirectory)/../../superbuild/bin/qt/5.12.1/bin:$(Build.SourcesDirectory)/../../superbuild/bin/qt/5.12.1/libexec:$PATH export CMAKE_PREFIX_PATH=$(Build.SourcesDirectory)/../../superbuild/bin/ITK-build:$(Build.SourcesDirectory)/../../superbuild/bin/DCMTK-build:$(Build.SourcesDirectory)/../../superbuild/bin/qt/5.12.1/lib/cmake/Qt5:$CMAKE_PREFIX_PATH rm -rf regression rm -rf binaries export PKG_FAST_MODE=1 export ARCH=x86_64 appimagetool # export PKG_COPY_QT_LIBS=1 ./scripts/captk-pkg mv *_Installer.* $(Build.ArtifactStagingDirectory) rm -rf bin df -k . displayName: 'Set up environment variables for packager and build a package' - task: PublishBuildArtifacts@1 inputs: pathtoPublish: '$(Build.ArtifactStagingDirectory)' artifactName: '$(Build.DefinitionName)_installer_Linux_ubuntu1604' continueOnError: true - task: DownloadBuildArtifacts@0 inputs: buildType: 'current' downloadType: 'single' artifactName: '$(Build.DefinitionName)_installer_Linux_ubuntu1604' downloadPath: '$(System.ArtifactsDirectory)' continueOnError: true - task: CopyFilesOverSSH@0 inputs: sshEndpoint: cbicaNITRC sourceFolder: $(Build.ArtifactStagingDirectory) contents: '*_Installer.*' targetFolder: /var/home/groups/captk/htdocs # previously /mnt/gforge-data/gforge/home/groups/captk/downloads cleanTargetFolder: false overwrite: true continueOnError: true displayName: Uploading to NITRC condition: and( eq(variables['Build.DefinitionName'], 'CBICA.CaPTk'), or( eq(variables['Build.Reason'], 'Manual'), eq(variables['Build.Reason'], 'Schedule')) ) # - job: 'macOS_SelfHost_1014' # displayName: "Self-hosted agent on macOS 10.14" # timeoutInMinutes: 0 # cancelTimeoutInMinutes: 300 # pool: 'macOS_10.14_alt' # Change to alt pool to try running this outside of Phuc's account -- possible permissions problems # steps: # - checkout: self # self represents the repo where the initial Pipelines YAML file was found # # submodule # - bash: | # export GIT_LFS_SKIP_SMUDGE=1 # git submodule update --init --recursive # displayName: 'Git Submodule Init and Update' # # Moving LFS Files # - bash: | # rm -rf bin # mkdir -p bin # cd bin # wget https://github.com/CBICA/CaPTk/raw/master/binaries/precompiledApps/macos.zip -O binaries_macos.zip # wget https://github.com/CBICA/CaPTk/raw/master/binaries/qt_5.12.1/macos.zip -O qt.zip # # mv ../binaries/precompiledApps/macos.zip ./binaries_macos.zip # # mv ../binaries/qt_5.12.1/macos.zip ./qt.zip # ls -lt # displayName: 'Downloading & Moving LFS files to the appropriate location under bin' # # - bash: | # # cd bin # # export CMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE # # export CMAKE_PREFIX_PATH="/Library/TeX/texbin" # # cmake ../ -DCMAKE_INSTALL_PREFIX="./install" # # make -j 2 # # displayName: 'Configure and compile Superbuild' # # - bash: | # # # mkdir $(Build.SourcesDirectory)/../superbuild # # # cd bin # # # mv ./* $(Build.SourcesDirectory)/../superbuild # # # cd $(Build.SourcesDirectory)/.. # # # ls # # # echo "Done cd" # # # tar cvfz superbuild.tar.gz superbuild # # # ls # # # echo "done tar" # # # rm -rf superbuild # # # ls # # # cd $(Build.SourcesDirectory) # # pwd # # cd $(Build.SourcesDirectory)/../../ # # ls # # tar xvfz superbuild.tar.gz # # rm -rf superbuild.tar.gz # # cd $(Build.SourcesDirectory)/../../superbuild/bin # # ls # # echo "Done tar" # # displayName: 'Move superbuild and qt and compiled apps' # - bash: | # git pull origin master # git log -1 # cat CMakeLists.txt | grep -i "PROJECT_VERSION" # displayName: 'Testing git pull and version' # - bash: | # cd bin # pwd # rm -rf CaPTk_* # export CMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE # export CMAKE_PREFIX_PATH=/Users/Shared/superbuild/ITK-build:/Users/Shared/superbuild/DCMTK-build:/Users/Shared/superbuild/qt/5.12.1/clang_64/lib/cmake/Qt5:/Users/Shared/superbuild/qt/5.12.1/clang_64/lib/cmake/Qt5Core:$(pwd)/qt/5.12.1/clang_64/lib/cmake/Qt5:$(pwd)/qt/5.12.1/clang_64/lib/cmake/Qt5Core:$CMAKE_PREFIX_PATH # echo "[DEBUG] CMAKE_PREFIX_PATH: " $CMAKE_PREFIX_PATH # #cmake ../ # #rm -f CMakeCache.txt # cmake -DITK_DIR="/Users/Shared/superbuild/ITK-build" -DDCMTK_DIR="/Users/Shared/superbuild/DCMTK-build" -DVTK_DIR="/Users/Shared/superbuild/VTK-build" -DCMAKE_INSTALL_PREFIX="./install" -DQt5_DIR=/Users/Shared/superbuild/qt/5.12.1/clang_64/lib/cmake/Qt5 -DQt5Core_DIR=/Users/Shared/superbuild/qt/5.12.1/clang_64/lib/cmake/Qt5Core ../ # # Debug using vsts' cache # cp CMakeCache.txt /Users/Shared/debug-vsts-getkaa-cmakecache.txt # make -j 2 # displayName: 'Configure and compile CaPTk' # - bash: | # cd bin # version=$(grep -i -e "project_version:*" CMakeCache.txt | cut -c24-) # rm -rf CaPTk_$version.app/Contents/Resources/bin/ITK-SNAP.app # rm -rf CaPTk*.app # cmake ../ # rm -f CMakeCache.txt # export CMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE # export CMAKE_PREFIX_PATH=/Users/Shared/superbuild/ITK-build:/Users/Shared/superbuild/DCMTK-build:/Users/Shared/superbuild/qt/5.12.1/clang_64/lib/cmake/Qt5:/Users/Shared/superbuild/qt/5.12.1/clang_64/lib/cmake/Qt5Core:/Users/Shared/superbuild/qt/5.12.1/clang_64/lib/cmake/Qt5:/Users/Shared/superbuild/qt/5.12.1/clang_64/lib/cmake/Qt5Core:$CMAKE_PREFIX_PATH # cmake -DITK_DIR="/Users/Shared/superbuild/ITK-build" -DDCMTK_DIR="/Users/Shared/superbuild/DCMTK-build" -DCMAKE_INSTALL_PREFIX="./install" -DQt5_DIR=/Users/Shared/superbuild/qt/5.12.1/clang_64/lib/cmake/Qt5 -DQt5Core_DIR=/Users/Shared/superbuild/qt/5.12.1/clang_64/lib/cmake/Qt5Core ../ # make -j 2 # displayName: 'Ensure documentation is picked up properly' # - bash: | # cd bin # version=$(grep -i -e "project_version:*" CMakeCache.txt | cut -c24-) # pkgname="_Installer" # pkgname="$version$pkgname" # rm -rf *.pkg # rm -rf install_manifest.txt # make package # # print dir tree for debug # ls -R _CPack_Packages # pkgpath="" # if [ -d "$(Build.SourcesDirectory)/bin/_CPack_Packages/OSX/DragNDrop/CaPTk_$version/ALL_IN_ONE/CaPTk_$version.app/" ]; then pkgpath="$(Build.SourcesDirectory)/bin/_CPack_Packages/OSX/DragNDrop/CaPTk_$version/ALL_IN_ONE/CaPTk_$version.app/"; else pkgpath="$(Build.SourcesDirectory)/bin/_CPack_Packages/OSX/DragNDrop/CaPTk_$version/CaPTk_$version.app/"; fi # # Try patching Utilities as late as possible. Seems to be necessary for Utilities specifically. # install_name_tool -change /usr/local/opt/libomp/lib/libomp.dylib @rpath/libomp.dylib $pkgpath/Contents/Resources/bin/Utilities # pkgbuild --version $version --identifier com.cbica.captk --install-location /Applications --component $pkgpath ./CaPTk_$version.pkg # productbuild --synthesize --package CaPTk_$version.pkg ./distribution.xml # xml=' # # CaPTk_'"$version"' # # # # # # # # # # # # # CaPTk_'"$version"'.pkg # ' # echo $xml > "./distribution.xml" # productbuild --distribution ./distribution.xml --resources $(Build.SourcesDirectory)/bin/_CPack_Packages/OSX/DragNDrop/CaPTk_$version/ALL_IN_ONE/CaPTk_$version.app/Contents/Resources/license/ --package-path . ./CaPTk_$pkgname.pkg # mv *_Installer* $(Build.ArtifactStagingDirectory) # displayName: 'Package CaPTk (.dmg and .pkg)' # - task: PublishBuildArtifacts@1 # inputs: # pathtoPublish: '$(Build.ArtifactStagingDirectory)' # artifactName: '$(Build.DefinitionName)_installer_macOS' # - task: DownloadBuildArtifacts@0 # inputs: # buildType: 'current' # downloadType: 'single' # artifactName: '$(Build.DefinitionName)_installer_macOS' # downloadPath: '$(System.ArtifactsDirectory)' # - task: CopyFilesOverSSH@0 # inputs: # sshEndpoint: cbicaNITRC # sourceFolder: $(Build.ArtifactStagingDirectory) # contents: '*_Installer.*' # targetFolder: /var/home/groups/captk/htdocs # previously /mnt/gforge-data/gforge/home/groups/captk/downloads # cleanTargetFolder: false # overwrite: true # continueOnError: true # displayName: Uploading to NITRC # condition: and( eq(variables['Build.DefinitionName'], 'CBICA.CaPTk'), or( eq(variables['Build.Reason'], 'Manual'), eq(variables['Build.Reason'], 'Schedule')) ) # - job: 'Linux_SelfHost_CentOS7' # displayName: "Self-hosted agent on CentOS 7" # timeoutInMinutes: 0 # cancelTimeoutInMinutes: 300 # pool: 'CentOS7' # steps: # - checkout: self # self represents the repo where the initial Pipelines YAML file was found # # submodule # - bash: | # git submodule update --init --recursive # rm -rf bin # ls # displayName: 'Git Submodule Init and Update' # # Moving LFS Files # - bash: | # rm -rf binaries # mkdir -p bin # cd bin # wget https://github.com/CBICA/CaPTk/raw/master/binaries/precompiledApps/linux.zip -O binaries_linux.zip # # wget https://github.com/CBICA/CaPTk/raw/master/binaries/qt_5.12.1/linux.zip -O qt.zip # ls -lt # displayName: 'Downloading & Moving LFS files to the appropriate location under bin' # # Configure and build superbuild # # - bash: | # # cd bin # # cmake -DCMAKE_INSTALL_PREFIX="./install/appdir/usr" .. # # make -j2 # # rm -rf install # # displayName: 'Configure and compile Superbuild' # # - bash: | # # displayName: 'Move superbuild and qt and compiled apps' # - bash: | # git pull origin master # git log -1 # cat CMakeLists.txt | grep -i "PROJECT_VERSION" # displayName: 'Testing git pull and version' # # - bash: | # # rm -rf bin/qt.zip # # rm -rf bin/5.12.1 # # df -k . # # displayName: 'Disk space check' # # # Configure and build CaPTk # # - bash: | # # cd bin # # export CMAKE_PREFIX_PATH=$(Build.SourcesDirectory)/bin/ITK-build:$(Build.SourcesDirectory)/bin/DCMTK-build:$(Build.SourcesDirectory)/bin/qt/5.12.1/lib/cmake/Qt5:$CMAKE_PREFIX_PATH # # cmake -DCMAKE_INSTALL_PREFIX="./install/appdir/usr" -DITK_DIR=./ITK-build -DDCMTK_DIR=./DCMTK-build -DBUILD_TESTING=ON .. # # make -j2 # # displayName: 'Configure and compile CaPTk with Testing enabled' # # - script: | # # cd bin # # make test # # rm -rf testing # # displayName: 'Performing the Tests' # # Configure and build CaPTk # - bash: | # cd bin # # export PATH=$(Build.SourcesDirectory)/bin/qt/5.12.1/bin:$(Build.SourcesDirectory)/bin/qt/5.12.1/libexec:$PATH # # export CMAKE_PREFIX_PATH=$(Build.SourcesDirectory)/bin/ITK-build:$(Build.SourcesDirectory)/bin/DCMTK-build:$(Build.SourcesDirectory)/bin/qt/5.12.1/lib/cmake/Qt5:$CMAKE_PREFIX_PATH # cmake -DCMAKE_INSTALL_PREFIX="./install/appdir/usr" -DBUILD_TESTING=OFF .. # rm -rf binaries_linux.zip # rm -rf qt.zip # rm -rf 5.12.1 # rm -rf externalApps/binaries_linux/libra # make -j2 # make install/strip # displayName: 'Configure and compile CaPTk' # # - bash: | # # rm -rf bin/qt.zip # # rm -rf bin/5.12.1 # # rm -rf regression # # rm -rf binaries # # rm -rf bin_linux_*.tar.gz # # df -k . # # displayName: 'Disk space check' # # Build a package # - bash: | # # export PATH=$(Build.SourcesDirectory)/bin/qt/5.12.1/bin:$(Build.SourcesDirectory)/bin/qt/5.12.1/libexec:$PATH # # export CMAKE_PREFIX_PATH=$(Build.SourcesDirectory)/bin/ITK-build:$(Build.SourcesDirectory)/bin/DCMTK-build:$(Build.SourcesDirectory)/bin/qt/5.12.1/lib/cmake/Qt5:$CMAKE_PREFIX_PATH # # rm -rf regression # # rm -rf binaries # export PKG_FAST_MODE=1 # export ARCH=x86_64 appimagetool # # export PKG_COPY_QT_LIBS=1 # ./scripts/captk-pkg # rm -rf src # rm -rf docs* # rm -rf scripts # mv *_Installer.* $(Build.ArtifactStagingDirectory) # rm -rf bin # df -k . # displayName: 'Set up environment variables for packager and build a package' # - task: PublishBuildArtifacts@1 # inputs: # pathtoPublish: '$(Build.ArtifactStagingDirectory)' # artifactName: '$(Build.DefinitionName)_installer_Linux_centos7' # continueOnError: true # - task: DownloadBuildArtifacts@0 # inputs: # buildType: 'current' # downloadType: 'single' # artifactName: '$(Build.DefinitionName)_installer_Linux_centos7' # downloadPath: '$(System.ArtifactsDirectory)' # continueOnError: true # - task: CopyFilesOverSSH@0 # inputs: # sshEndpoint: cbicaNITRC # sourceFolder: $(Build.ArtifactStagingDirectory) # contents: '*_Installer.*' # targetFolder: /mnt/gforge-data/gforge/home/groups/captk/downloads # cleanTargetFolder: false # overwrite: true # continueOnError: true # displayName: Uploading to NITRC # condition: eq(variables['Build.DefinitionName'], 'CBICA.CaPTk')