variables: LR: release-3_12 LTR: release-3_10 CTEST_CUSTOM_TESTS_IGNORE: "ProcessingGdalAlgorithmsRasterTest;ProcessingGdalAlgorithmsVectorTest;ProcessingGrass7AlgorithmsImageryTest;ProcessingGrass7AlgorithmsRasterTest;ProcessingGrass7AlgorithmsVectorTest;ProcessingGuiTest;ProcessingOtbAlgorithmsTest;ProcessingQgisAlgorithmsTestPt1;ProcessingQgisAlgorithmsTestPt2;ProcessingQgisAlgorithmsTestPt3;ProcessingQgisAlgorithmsTestPt4;ProcessingScriptUtilsTest;PyQgsAnnotation;PyQgsAppStartup;PyQgsAuthManagerOAuth2OWSTest;PyQgsAuthManagerPasswordOWSTest;PyQgsAuthManagerPKIOWSTest;PyQgsAuthManagerProxy;PyQgsAuthSettingsWidget;PyQgsAuxiliaryStorage;PyQgsBlockingNetworkRequest;PyQgsExifTools;PyQgsFileDownloader;PyQgsFileUtils;PyQgsGeometryTest;PyQgsImageCache;PyQgsImportIntoPostGIS;PyQgsLayoutAtlas;PyQgsLayoutLegend;PyQgsLayoutMap;PyQgsLayoutMapGrid;PyQgsMapLayer;PyQgsOfflineEditingWFS;PyQgsOGRProvider;PyQgsOGRProviderGpkg;PyQgsOGRProviderSqlite;PyQgsPalLabelingCanvas;PyQgsPalLabelingLayout;PyQgsPalLabelingPlacement;PyQgsPointDisplacementRenderer;PyQgsProject;PyQgsProviderConnectionGpkg;PyQgsProviderConnectionPostgres;PyQgsPythonProvider;PyQgsRasterFileWriter;PyQgsRasterLayer;PyQgsSelectiveMasking;PyQgsServerAccessControlWMSGetlegendgraphic;PyQgsServerApi;PyQgsServerCacheManager;PyQgsServerLocaleOverride;PyQgsServerSecurity;PyQgsServerSettings;PyQgsServerWMS;PyQgsServerWMSDimension;PyQgsServerWMSGetFeatureInfo;PyQgsServerWMSGetLegendGraphic;PyQgsServerWMSGetMap;PyQgsServerWMSGetPrint;PyQgsServerWMSGetPrintExtra;PyQgsServerWMSGetPrintOutputs;PyQgsServerWMSGetPrintAtlas;PyQgsServerWMTS;PyQgsSettings;PyQgsShapefileProvider;PyQgsSpatialiteProvider;PyQgsSvgCache;PyQgsSymbolLayer;PyQgsTaskManager;PyQgsTextRenderer;PyQgsVectorFileWriter;PyQgsVectorLayer;PyQgsVectorLayerUtils;PyQgsVirtualLayerProvider;PyQgsWFSProviderGUI;PyQgsZipUtils;qgis_3drenderingtest;qgis_alignrastertest;qgis_arcgisrestutilstest;qgis_banned_keywords;qgis_browsermodeltest;qgis_callouttest;qgis_compositionconvertertest;qgis_coordinatereferencesystemtest;qgis_datadefinedsizelegendtest;qgis_datumtransformdialog;qgis_diagramtest;qgis_doxygen_order;qgis_dxfexporttest;qgis_expressiontest;qgis_filedownloader;qgis_geometrycheckstest;qgis_geometrytest;qgis_grassprovidertest7;qgis_imagecachetest;qgis_invertedpolygonrenderertest;qgis_labelingenginetest;qgis_layerdefinitiontest;qgis_layout3dmaptest;qgis_layouthtmltest;qgis_layoutlabeltest;qgis_layoutmapgridtest;qgis_layoutmaptest;qgis_layoutpicturetest;qgis_layoutscalebartest;qgis_layouttabletest;qgis_legendrenderertest;qgis_licenses;qgis_defwindowtitle;qgis_maprendererjobtest;qgis_maprotationtest;qgis_mapsettingsutilstest;qgis_maptooladdfeatureline;qgis_mimedatautilstest;qgis_networkaccessmanagertest;qgis_openclutilstest;qgis_painteffecttest;qgis_pallabelingtest;qgis_processingtest;qgis_projecttest;qgis_qgisappclipboard;qgis_rasterlayersaveasdialog;qgis_shellcheck;qgis_sipify;qgis_sip_include;qgis_sip_uptodate;qgis_spelling;qgis_styletest;qgis_svgcachetest;qgis_taskmanagertest;qgis_transformdialog;qgis_vectorfilewritertest;qgis_wcsprovidertest;qgis_ziplayertest;qgis_meshcalculator;qgis_pointlocatortest;PyQgsExpressionBuilderWidget;PyQgsDatumTransform;qgis_vertextool;PyQgsCoordinateOperationWidget;PyQgsProviderConnectionSpatialite;qgis_maptoolsplitpartstest;qgis_vectortilelayertest;qgis_ogrproviderguitest" Agent.Source.Git.ShallowFetchDepth: 120 trigger: branches: include: # - master - $(LR) - $(LTR) - azure-pipelines pr: #- master - $(LR) - $(LTR) jobs: - job: OSGeo4W pool: vmImage: vs2017-win2016 timeoutInMinutes: 360 strategy: maxParallel: 4 matrix: x86: OSGEO4W_ROOT: C:\OSGeo4W OSGEO4W_ARCH: x86 CLCACHE_DIR: c:\clcache-x86 PLATFORM: x86 CC: C:\OSGeo4W\bin\clcache.bat CXX: C:\OSGeo4W\bin\clcache.bat x86_64: OSGEO4W_ROOT: C:\OSGeo4W64 OSGEO4W_ARCH: x86_64 CLCACHE_DIR: c:\clcache-x86_64 PLATFORM: x64 CC: C:\OSGeo4W64\bin\clcache.bat CXX: C:\OSGeo4W64\bin\clcache.bat steps: - bash: | if [ "$BUILD_REASON" = "PullRequest" ]; then branch=$SYSTEM_PULLREQUEST_TARGETBRANCH pr=$SYSTEM_PULLREQUEST_PULLREQUESTNUMBER else branch=$BUILD_SOURCEBRANCHNAME fi echo "BRANCH: ${branch}" echo "PR: ${pr}" echo "LR: ${LR}" echo "LTR: ${LTR}" case "${branch}" in "${LTR}") OSGEO4W_PKG=qgis-ltr-dev OSGEO4W_DEPS=qgis-ltr-dev-deps ;; "${LR}") OSGEO4W_PKG=qgis-rel-dev OSGEO4W_DEPS=qgis-rel-dev-deps ;; *) OSGEO4W_PKG=qgis-dev OSGEO4W_DEPS=qgis-dev-deps ;; esac target=Experimental major=$(sed -ne 's/^SET(CPACK_PACKAGE_VERSION_MAJOR "\([0-9]*\)")\s*$/\1/ip' CMakeLists.txt) minor=$(sed -ne 's/^SET(CPACK_PACKAGE_VERSION_MINOR "\([0-9]*\)")\s*$/\1/ip' CMakeLists.txt) patch=$(sed -ne 's/^SET(CPACK_PACKAGE_VERSION_PATCH "\([0-9]*\)")\s*$/\1/ip' CMakeLists.txt) binary=$(curl --location-trusted http://ftp.osuosl.org/pub/osgeo/download/osgeo4w/$OSGEO4W_ARCH/release/qgis/$OSGEO4W_PKG/LATEST.sha | sed -e "s/:.*$//") (( binary++ )) || true version=$major.$minor.$patch sha="${BUILD_SOURCEVERSION:0:10}" if [ "$BUILD_REASON" = "PullRequest" ]; then buildname="PR $pr / $branch ($BUILD_BUILDID) ($sha) ($OSGEO4W_PKG $target $OSGEO4W_ARCH)" # no colons allowed here else buildname="$OSGEO4W_PKG-$version-$sha-$target-VC14-$OSGEO4W_ARCH" fi url=$buildname url=${url//(/%28} url=${url//)/%29} url=${url// /+} url="https://cdash.orfeo-toolbox.org/index.php?project=QGIS&filtercombine=and&filtercombine=and&filtercombine=and&filtercombine=and&filtercombine=and&filtercombine=and&filtercombine=and&filtercombine=and&filtercombine=and&filtercombine=and&filtercombine=and&filtercombine=and&filtercombine=and&filtercombine=and&filtercombine=and&filtercombine=and&filtercount=4&showfilters=0&filtercombine=and&field1=buildname&compare1=61&value1=$url&field2=site&compare2=65&value2=azure-pipelines&field3=buildstarttime&compare3=83&value3=$(date +%Y-%m-%d --date=yesterday)&field4=buildstarttime&compare4=84&value4=$(date +%Y-%m-%d --date=tomorrow)" echo "##vso[task.setvariable variable=TARGET]$target" echo "##vso[task.setvariable variable=OSGEO4W_PKG]$OSGEO4W_PKG" echo "##vso[task.setvariable variable=OSGEO4W_DEPS]$OSGEO4W_DEPS" echo "##vso[task.setvariable variable=MAJOR]$major" echo "##vso[task.setvariable variable=MINOR]$minor" echo "##vso[task.setvariable variable=PATCH]$patch" echo "##vso[task.setvariable variable=BINARY]$binary" echo "##vso[task.setvariable variable=VERSION]$version" echo "##vso[task.setvariable variable=BUILDNAME]$buildname" echo "##vso[task.setvariable variable=DASHURL]${url//&/^&}" displayName: 'Setup build variables' - script: curl --output c:\setup-x86.exe https://cygwin.com/setup-x86.exe displayName: 'Download cygwin Installer' - script: curl --output c:\osgeo4w-setup.exe http://ftp.osuosl.org/pub/osgeo/download/osgeo4w/osgeo4w-setup-%OSGEO4W_ARCH%.exe displayName: 'Download OSGeo4W Installer' - script: curl --location-trusted --output c:\ninja.zip https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip displayName: 'Download Ninja' # - script: curl --location-trusted --output c:\depends.zip http://www.dependencywalker.com/depends22_%PLATFORM%.zip # displayName: 'Download Dependency walker' # Too large… # - task: Cache@2 # inputs: # key: 'cygwin | $(Date:yyyyMMdd)' # path: 'c:\cygwin' # restoreKeys: | # cygwin | $(Date:yyyyMM) # cygwin | $(Date:yyyy) # cygwin # displayName: Cache cygwin - powershell: ms-windows/osgeo4w/runasadmin.ps1 c:\setup-x86.exe -qnNdO -R C:/cygwin -s http://cygwin.mirror.constant.com -l C:/temp/cygwin -P "bison,flex,git,poppler,doxygen,unzip" displayName: 'Installing cygwin' # Too large… # - task: Cache@2 # inputs: # key: 'osgeo4w | $(OSGEO4W_ARCH) | $(Date:yyyyMMdd)' # path: '$(OSGEO4W_ROOT)' # restoreKeys: | # osgeo4w | $(OSGEO4W_ARCH) | $(Date:yyyyMMdd) # osgeo4w | $(OSGEO4W_ARCH) | $(Date:yyyyMM) # osgeo4w | $(OSGEO4W_ARCH) | $(Date:yyyy) # osgeo4w | $(OSGEO4W_ARCH) # displayName: Cache OSGeo4W - powershell: ms-windows/osgeo4w/runasadmin.ps1 c:\osgeo4w-setup.exe --autoaccept --advanced --arch $env:OSGEO4W_ARCH --quiet-mode --upgrade-also --root $env:OSGEO4W_ROOT --only-site -s http://ftp.osuosl.org/pub/osgeo/download/osgeo4w -l c:\temp\osgeo4w -P $env:OSGEO4W_DEPS -P python3-clcache displayName: 'Installing OSGeo4W' - script: | rmdir /s /q c:\temp\cygwin rmdir /s /q c:\temp\osgeo4w displayName: 'Clear package caches' - script: c:\cygwin\bin\unzip -o c:\ninja.zip -d %OSGEO4W_ROOT%\bin displayName: 'Extracting Ninja' # - script: c:\cygwin\bin\unzip -o c:\depends.zip -d %OSGEO4W_ROOT%\bin # displayName: 'Extracting Dependency Walker' - script: | PATH %OSGEO4W_ROOT%\bin;%ProgramFiles%\CMake\bin;%PATH% cmake --version ctest --version ninja --version displayName: 'Display tool versions' # Too large… # - task: Cache@2 # inputs: # key: 'clcache | $(OSGEO4W_ARCH) | $(OSGEO4W_PKG) | $(Date:yyyyMMdd) | $(Hours)' # path: '$(CLCACHE_DIR)' # restoreKeys: | # clcache | $(OSGEO4W_ARCH) | $(OSGEO4W_PKG) | $(Date:yyyyMMdd) | $(Hours) # clcache | $(OSGEO4W_ARCH) | $(OSGEO4W_PKG) | $(Date:yyyyMMdd) # clcache | $(OSGEO4W_ARCH) | $(OSGEO4W_PKG) | $(Date:yyyyMM) # clcache | $(OSGEO4W_ARCH) | $(OSGEO4W_PKG) | $(Date:yyyy) # clcache | $(OSGEO4W_ARCH) | $(OSGEO4W_PKG) # displayName: Cache clcache - script: | echo on PATH c:\cygwin\bin;%OSGEO4W_ROOT%\bin;%PATH% cd ms-windows\osgeo4w touch skippackage set OSGEO4W_CXXFLAGS=/MD /MP /Od /D NDEBUG @echo ##[section]%OSGEO4W_ARCH% results available at %DASHURL% package-nightly.cmd %VERSION% %BINARY% %OSGEO4W_PKG% %OSGEO4W_ARCH% %BUILD_SOURCEVERSION:~0,10% azure-pipelines displayName: 'Building QGIS' # - script: | # echo on # PATH %OSGEO4W_ROOT%\bin;%PATH% # cd ms-windows\osgeo4w\build-%OSGEO4W_PKG%-%OSGEO4W_ARCH% # set /P tag=