Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • orfeotoolbox/otb
  • gpasero/otb
  • jinglada/otb
  • cs-si/otb
  • tardyb/otb
  • jmichel/otb
  • pedrojoclar/otb
  • derksend/otb
  • ussegliog/otb
  • SebastienPeillet/otb
  • waynedou/otb
  • lhermitte/otb
  • ArthurV/otb
  • sebastic/otb
  • gpernot/otb
  • super7ramp/otb
  • camiot/otb
  • ctraizet/otb
  • dyoussef/otb
  • bradh/otb
  • troopa81/otb
  • julienosman/otb
  • vidlb/otb
  • Feishi/otb
  • IlDordollano/otb
  • pty_/otb
  • daspk04/otb
  • sdinot/otb
28 results
Select Git revision
Show changes
Commits on Source (3132)
Showing
with 782 additions and 279 deletions
...@@ -8,3 +8,11 @@ syntax: glob ...@@ -8,3 +8,11 @@ syntax: glob
tags tags
*vim* *vim*
*.template *.template
archives*
.vscode*
CMakeLists.txt.user
.directory*
build_packages*
build
install
log
# #
# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES) # Copyright (C) 2005-2025 Centre National d'Etudes Spatiales (CNES)
# #
# This file is part of Orfeo Toolbox # This file is part of Orfeo Toolbox
# #
...@@ -37,6 +37,14 @@ variables: ...@@ -37,6 +37,14 @@ variables:
GIT_CHECKOUT: "false" GIT_CHECKOUT: "false"
# The fetch strategy fails with LFS and GitLab # The fetch strategy fails with LFS and GitLab
GIT_STRATEGY: "clone" GIT_STRATEGY: "clone"
PACKAGE_OTB_VERSION: "latest"
workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: '$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS'
when: never
- if: '$CI_COMMIT_BRANCH'
stages: stages:
- precheck - precheck
...@@ -44,6 +52,7 @@ stages: ...@@ -44,6 +52,7 @@ stages:
- build - build
- report - report
- deploy - deploy
- docker
.general: .general:
retry: retry:
...@@ -77,12 +86,18 @@ stages: ...@@ -77,12 +86,18 @@ stages:
- CookBook-*-html.tar.gz - CookBook-*-html.tar.gz
- CookBook-*.pdf - CookBook-*.pdf
- OTB-Doxygen-*.tar.bz2 - OTB-Doxygen-*.tar.bz2
- OTB-*.run - OTB-*.tar.gz
- OTB-*.zip - OTB-*.zip
- build/compile_commands.json - build/compile_commands.json
- build/ctest_report.xml - build/ctest_report.xml
- build/cppcheck_report.xml - build/cppcheck_report.xml
- build/coverage_report.xml - build/coverage_report.xml
- build/Testing/Temporary/*.txt #DEBUG
- Docker/Dockerfile_CI
- Docker/system-dependencies.txt
reports:
junit:
- build/ctest_report.xml
.common-prepare: .common-prepare:
extends: .general extends: .general
...@@ -106,15 +121,22 @@ stages: ...@@ -106,15 +121,22 @@ stages:
#-------------------------- precheck job --------------------------------------- #-------------------------- precheck job ---------------------------------------
fast-build: fast-build:
extends: .common extends: .common
only: [merge_requests, branches] only:
- merge_requests
- branches
stage: precheck stage: precheck
image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-native-develop:latest image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-native-itk5:22.04
before_script: before_script:
- export GIT_LFS_SKIP_SMUDGE=1 - export GIT_LFS_SKIP_SMUDGE=1
- git checkout -f -q $CI_COMMIT_SHA - git checkout -f -q $CI_COMMIT_SHA
- python3 CI/check_twin_pipelines.py # pull data needed by the two convolution test
- |
git lfs pull --include Data/Baseline/OTB/Images/bfTvConvolutionImageFilter.tif
git lfs pull --include Data/Input/QB_Suburb.png
git lfs pull --include Data/Input/QB_PAN_ROI_1000_100.tif
script: script:
- ctest -V -S CI/main_ci.cmake -DIMAGE_NAME:string=ubuntu-18.04-fast - ctest -V -S CI/main_ci.cmake -DIMAGE_NAME:string=ubuntu-22.04-fast
- ctest -VV -S CI/FFTW_tests.cmake -DIMAGE_NAME:string=ubuntu-22.04-fast
- ccache -s - ccache -s
legal-check: legal-check:
...@@ -134,72 +156,88 @@ legal-check: ...@@ -134,72 +156,88 @@ legal-check:
after_script: [] after_script: []
#------------------------- prepare & build jobs -------------------------------- #------------------------- prepare & build jobs --------------------------------
debian-build:
extends: .common-build
image: $BUILD_IMAGE_REGISTRY/otb-debian-native:testing
allow_failure: true
script:
- xvfb-run -a -n 1 -s "-screen 0 1024x768x24 -dpi 96" ctest -V -S CI/main_ci.cmake -DIMAGE_NAME:string=debian-testing-gcc
after_script:
- export CI_ALLOW_FAILURE=ON
- python3 -u CI/cdash_handler.py
dependencies: []
## Ubuntu superbuild ## Ubuntu superbuild
ubuntu-xdk-prepare: ubuntu-22-prepare:
extends: .common-prepare
image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-base:22.04
script:
- ctest -VV -S CI/prepare_superbuild.cmake -DIMAGE_NAME:string=ubuntu-22.04-llvm-full -DOTB_FULL_BUILD:BOOL=ON
ubuntu-24-prepare:
extends: .common-prepare extends: .common-prepare
image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-base:18.04 image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-base:24.04
script: script:
- ctest -VV -S CI/prepare_superbuild.cmake -DIMAGE_NAME:string=ubuntu-18.04-llvm - ctest -VV -S CI/prepare_superbuild.cmake -DIMAGE_NAME:string=ubuntu-24.04-llvm-full
artifacts:
untracked: false
when: on_success
access: all
expire_in: 24hrs
paths:
- xdk/lib/python3/*
ubuntu-xdk-build-doc: ubuntu-22-build:
extends: .common-build extends: .common-build
image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-base:18.04 image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-base:22.04
script: script:
- xvfb-run -a -n 1 -s "-screen 0 1024x768x24 -dpi 96" ctest -V -S CI/main_superbuild.cmake -DIMAGE_NAME:string=ubuntu-18.04-llvm-xdk - ctest -V -S CI/main_superbuild.cmake -DIMAGE_NAME:string=ubuntu-22.04-llvm-xdk-full
- mv build/CookBook-*-html.tar.gz . || true - mv build/CookBook-*-html.tar.gz . || true
- mv build/Documentation/Cookbook/latex/CookBook-*.pdf . || true - mv build/Documentation/Cookbook/latex/CookBook-*.pdf . || true
- mv build/Documentation/Doxygen/OTB-Doxygen-*.tar.bz2 . || true - mv build/Documentation/Doxygen/OTB-Doxygen-*.tar.bz2 . || true
- xvfb-run -a -n 1 -s "-screen 0 1024x768x24 -dpi 96" ctest -V -S CI/main_packages.cmake -DIMAGE_NAME:string=ubuntu-18.04-llvm-xdk -DNAME_SUFFIX:string=-glibc-2.27 - ctest -V -S CI/superbuild_packaging.cmake -DIMAGE_NAME:string=ubuntu-22.04-llvm-xdk-full -DPACKAGE_BY_MODULE:BOOL=ON
- mv build_packages/OTB-*.run . || true - ctest -V -S CI/superbuild_packaging.cmake -DIMAGE_NAME:string=ubuntu-22.04-llvm-xdk-full -DPACKAGE_BY_MODULE:BOOL=OFF
dependencies: - mv build_packages/OTB-*.tar.gz . || true
- ubuntu-xdk-prepare needs:
- job: ubuntu-22-prepare
artifacts: true
## CentOS superbuild # Ubuntu 24 build needed for gdal bindings with python 3.12. We package the compiled bindings for python 3.12, this package will be downloaded and extracted automatically when
centos-xdk-prepare: # a user lauches the otbenv profile after unpacking the official archive for the first time (which contains bindings for ubuntu 20 and python 3.8 initially)
extends: .common-prepare python3.12-gdal-bindings:
image: $BUILD_IMAGE_REGISTRY/otb-centos-superbuild-base:6.6
script:
- ctest -VV -S CI/prepare_superbuild.cmake -DIMAGE_NAME:string=centos-6.6-gcc
centos-xdk-build:
extends: .common-build extends: .common-build
image: $BUILD_IMAGE_REGISTRY/otb-centos-superbuild-base:6.6 image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-base:24.04
only:
refs:
- /^release-[0-9]+\.[0-9]+$/
script: script:
- xvfb-run -a -n 1 -s "-screen 0 1024x768x24 -dpi 96" ctest -V -S CI/main_superbuild.cmake -DIMAGE_NAME:string=centos-6.6-gcc - |
- xvfb-run -a -n 1 -s "-screen 0 1024x768x24 -dpi 96" ctest -V -S CI/main_packages.cmake -DIMAGE_NAME:string=centos-6.6-gcc MAJOR_VERSION=$(egrep "set\(OTB_VERSION_MAJOR" < CMakeLists.txt | egrep -o "[0-9]+")
- mv build_packages/OTB-*.run . || true MINOR_VERSION=$(egrep "set\(OTB_VERSION_MINOR" < CMakeLists.txt | egrep -o "[0-9]+")
dependencies: PATCH_VERSION=$(egrep "set\(OTB_VERSION_PATCH" < CMakeLists.txt | egrep -o "[0-9]+")
- centos-xdk-prepare PACKAGE_OTB_VERSION="$MAJOR_VERSION.$MINOR_VERSION.$PATCH_VERSION"
- find xdk/lib/python3/dist-packages/osgeo/ -type f -name "*.so" -printf "%P\n" | tar -czf OTB-$PACKAGE_OTB_VERSION-GDAL-bindings-py312.tar.gz --no-recursion -C xdk/lib/python3/dist-packages/osgeo -T -
needs:
- job: ubuntu-24-prepare
artifacts: true
## MacOS superbuild ## RedHat superbuild
macos-xdk-prepare: redhat-prepare:
extends: .common-prepare extends: .common-prepare
tags: image: $BUILD_IMAGE_REGISTRY/otb-redhat-superbuild-base-py312:8
- macos
script: script:
- ctest -VV -S CI/prepare_superbuild.cmake -DIMAGE_NAME:string=macos-10.11.6-clang - ctest -VV -S CI/prepare_superbuild.cmake -DIMAGE_NAME:string=redhat-8-gcc -DOTB_FULL_BUILD:BOOL=ON
macos-xdk-build: redhat-build:
tags:
- macos
extends: .common-build extends: .common-build
image: $BUILD_IMAGE_REGISTRY/otb-redhat-superbuild-base-py312:8
script: script:
- ctest -V -S CI/main_superbuild.cmake -DIMAGE_NAME:string=macos-10.11.6-clang - ctest -V -S CI/main_superbuild.cmake -DIMAGE_NAME:string=redhat-8-gcc
- ctest -V -S CI/main_packages.cmake -DIMAGE_NAME:string=macos-10.11.6-clang - ctest -V -S CI/superbuild_packaging.cmake -DIMAGE_NAME:string=redhat-8-gcc -DPACKAGE_BY_MODULE:BOOL=ON
- mv build_packages/OTB-*.run . || true - ctest -V -S CI/superbuild_packaging.cmake -DIMAGE_NAME:string=redhat-8-gcc -DPACKAGE_BY_MODULE:BOOL=OFF
dependencies: # change package names to RedHat
- macos-xdk-prepare - |
# use "find" to select only packages that matters
rh_packages=$(find build_packages -type f -name "OTB*Linux*.tar.gz")
for pkg in $rh_packages
do
new_name=$(sed "s/-Linux/-Linux_RedHat/g" <<< "$pkg")
mv $pkg $new_name
done
- mv build_packages/OTB-*.tar.gz . || true
needs:
- job: redhat-prepare
artifacts: true
## Windows ## Windows
.windows-prepare: .windows-prepare:
...@@ -207,14 +245,19 @@ macos-xdk-build: ...@@ -207,14 +245,19 @@ macos-xdk-build:
before_script: before_script:
# This override the previous before_script # This override the previous before_script
- set GIT_LFS_SKIP_SMUDGE=1 - set GIT_LFS_SKIP_SMUDGE=1
- git checkout -f -q %CI_COMMIT_SHA% - git checkout -f -q $CI_COMMIT_SHA
- set GIT_LFS_SKIP_SMUDGE=0 - set GIT_LFS_SKIP_SMUDGE=0
.windows-build: .windows-build:
extends: .common-build extends: .common-build
before_script: before_script:
- git lfs fetch origin %CI_COMMIT_SHA% - git lfs fetch origin $CI_COMMIT_SHA
- git checkout -f -q %CI_COMMIT_SHA% - git checkout -f -q $CI_COMMIT_SHA
# Obviously Windows does not use same executable name as linux...
after_script:
# need to setup path to be able to use python
- .\CI\setup_python.ps1 x64
- python -u CI/cdash_handler.py
# - Win10 # - Win10
windows-10-prepare: windows-10-prepare:
...@@ -222,52 +265,29 @@ windows-10-prepare: ...@@ -222,52 +265,29 @@ windows-10-prepare:
tags: tags:
- windows10 - windows10
script: script:
- call ./CI/dev_env.bat x64 xdk 10 - .\CI\dev_env.ps1 x64 xdk 10
- clcache.exe -s - buildcache.exe -s
- ctest -C Release -V -S CI/prepare_superbuild.cmake - ctest -C Release -VV -S CI/prepare_superbuild.cmake -DOTB_FULL_BUILD:BOOL=ON -DPython_ROOT_DIR:STRING="C:/tools/Python310-x64"
- clcache.exe -s - buildcache.exe -s
windows-10-build: windows-10-build:
extends: .windows-build extends: .windows-build
tags: tags:
- windows10 - windows10
script: script:
- call ./CI/dev_env.bat x64 otb 10 - .\CI\dev_env.ps1 x64 otb 10
- clcache.exe -s - buildcache.exe -s
- ctest -V -S CI/main_superbuild.cmake - ctest -V -S CI/main_superbuild.cmake -DPython_ROOT_DIR:STRING="C:/tools/Python310-x64"
- clcache.exe -s - buildcache.exe -s
- ctest -V -S CI/main_packages.cmake - .\CI\copy_boost_dlls.ps1
- move "build_packages\OTB-*.zip" . || dir build_packages - ctest -V -S CI/superbuild_packaging.cmake -DPACKAGE_BY_MODULE:BOOL=OFF
dependencies:
- windows-10-prepare
# - Win8.1
windows-8-prepare:
extends: .windows-prepare
tags:
- windows8
script:
- call ./CI/dev_env.bat x86 xdk 8.1
- clcache.exe -s
- ctest -C Release -V -S CI/prepare_superbuild.cmake
- clcache.exe -s
windows-8-build:
extends: .windows-build
tags:
- windows8
script:
- call ./CI/dev_env.bat x86 otb 8.1
- clcache.exe -s
- ctest -V -S CI/main_superbuild.cmake
- clcache.exe -s
- ctest -V -S CI/main_packages.cmake
- move "build_packages\OTB-*.zip" . || dir build_packages - move "build_packages\OTB-*.zip" . || dir build_packages
dependencies: needs:
- windows-8-prepare - job: windows-10-prepare
artifacts: true
#------------------------- QA related jobs ------------------------------------- #------------------------- QA related jobs -------------------------------------
ubuntu-xdk-qa-code-coverage: ubuntu-qa-code-coverage:
extends: .common-build extends: .common-build
only: only:
refs: refs:
...@@ -276,20 +296,17 @@ ubuntu-xdk-qa-code-coverage: ...@@ -276,20 +296,17 @@ ubuntu-xdk-qa-code-coverage:
- /^release-[0-9]+\.[0-9]+$/ - /^release-[0-9]+\.[0-9]+$/
variables: variables:
- $SONAR_OTB_TOKEN - $SONAR_OTB_TOKEN
image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-qa:18.04 image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-qa:22.04
script: script:
- xvfb-run -a -n 1 -s "-screen 0 1024x768x24 -dpi 96" - ctest -V -S CI/main_qa.cmake
ctest -V -S CI/main_qa.cmake -DIMAGE_NAME:string=ubuntu-22.04-llvm-qa
-DIMAGE_NAME:string=ubuntu-18.04-llvm-qa -DQA:BOOL=ON
-DQA:BOOL=ON
- ./CI/otb_coverage.sh - ./CI/otb_coverage.sh
- saxon-xslt -o build/ctest_report.xml needs:
build/Testing/`head -n 1 build/Testing/TAG`/Test.xml - job: ubuntu-22-prepare
CI/ctest2junit.xsl artifacts: true
dependencies:
- ubuntu-xdk-prepare
ubuntu-xdk-qa-static-analysis: ubuntu-qa-static-analysis:
extends: .common-build extends: .common-build
only: only:
refs: refs:
...@@ -298,7 +315,7 @@ ubuntu-xdk-qa-static-analysis: ...@@ -298,7 +315,7 @@ ubuntu-xdk-qa-static-analysis:
- /^release-[0-9]+\.[0-9]+$/ - /^release-[0-9]+\.[0-9]+$/
variables: variables:
- $SONAR_OTB_TOKEN - $SONAR_OTB_TOKEN
image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-qa:18.04 image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-qa:22.04
script: script:
- find Modules -type f -regextype posix-extended -regex '.*\.(h|hxx)$' -exec dirname '{}' \; | - find Modules -type f -regextype posix-extended -regex '.*\.(h|hxx)$' -exec dirname '{}' \; |
grep -vE '^Modules/ThirdParty/' | grep -vE '^Modules/ThirdParty/' |
...@@ -309,14 +326,15 @@ ubuntu-xdk-qa-static-analysis: ...@@ -309,14 +326,15 @@ ubuntu-xdk-qa-static-analysis:
-i Modules/ThirdParty Modules -i Modules/ThirdParty Modules
2> build/cppcheck_report.xml 2> build/cppcheck_report.xml
after_script: [] after_script: []
dependencies: needs:
- ubuntu-xdk-prepare - job: ubuntu-22-prepare
artifacts: true
ubuntu-xdk-report: ubuntu-sonar-report:
extends: .common extends: .common
variables: variables:
GIT_DEPTH: "" GIT_DEPTH: ""
image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-qa:18.04 image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-qa:22.04
stage: report stage: report
only: only:
refs: refs:
...@@ -334,9 +352,11 @@ ubuntu-xdk-report: ...@@ -334,9 +352,11 @@ ubuntu-xdk-report:
-Dsonar.branch.name=$CI_COMMIT_REF_NAME -Dsonar.branch.name=$CI_COMMIT_REF_NAME
after_script: [] after_script: []
dependencies: needs:
- ubuntu-xdk-qa-code-coverage - job: ubuntu-qa-code-coverage
- ubuntu-xdk-qa-static-analysis artifacts: true
- job: ubuntu-qa-static-analysis
artifacts: true
#---------------------------- Deploy job --------------------------------------- #---------------------------- Deploy job ---------------------------------------
deploy: deploy:
...@@ -347,32 +367,83 @@ deploy: ...@@ -347,32 +367,83 @@ deploy:
extends: .general extends: .general
only: only:
- develop@orfeotoolbox/otb - develop@orfeotoolbox/otb
- /^release-[0-9]+\.[0-9]+$/@orfeotoolbox/otb - /^release-[0-9]+\.[0-9]+$/
before_script: before_script:
# Provision efficiently the local LFS cache before checkout # Provision efficiently the local LFS cache before checkout
- git lfs fetch origin $CI_COMMIT_SHA - git lfs fetch origin $CI_COMMIT_SHA
- git checkout -f -q $CI_COMMIT_SHA - git checkout -f -q $CI_COMMIT_SHA
script: script:
- ./CI/deploy.sh $CI_COMMIT_REF_NAME $RC_NUMBER - ./CI/deploy.sh $CI_COMMIT_REF_NAME $RC_NUMBER
dependencies: needs:
- ubuntu-xdk-build-doc - job: ubuntu-22-build
- centos-xdk-build artifacts: true
- macos-xdk-build - job: windows-10-build
- windows-8-build artifacts: true
- windows-10-build - job: redhat-build
artifacts: true
release-container: update-archive:
image: $BUILD_IMAGE_REGISTRY/otb-alpine:3.7 tags:
- deploy
image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-base:22.04
stage: deploy stage: deploy
extends: .general extends: .general
only:
- develop
- /^release-[0-9]+\.[0-9]+$/@orfeotoolbox/otb
before_script:
# Provision efficiently the local LFS cache before checkout
- git lfs fetch origin $CI_COMMIT_SHA
- git checkout -f -q $CI_COMMIT_SHA
script:
- ./CI/SuperbuildDownloadList.sh download build_archive
- ./CI/deploy-archive.sh build_archive
needs:
# don't push the archive if Superbuild was not successful
- job: ubuntu-22-prepare
artifacts: false
# release-container:
# image: $BUILD_IMAGE_REGISTRY/otb-alpine:3.7
# stage: deploy
# extends: .general
# only:
# refs:
# - tags@orfeotoolbox/otb
# variables:
# - $CI_COMMIT_TAG =~ /^[0-9]+\.[0-9]+\.[0-9]+$/
# script:
# - curl --request POST
# --form token=$K8S_SECRET_RELEASE
# --form ref=master
# --form variables[OTB_TAG]=$CI_COMMIT_TAG
# https://gitlab.orfeo-toolbox.org/api/v4/projects/126/trigger/pipeline
release-docker:
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
stage: docker
only: only:
refs: refs:
- tags@orfeotoolbox/otb - /^release-[0-9]+\.[0-9]+$/
variables: needs:
- $CI_COMMIT_TAG =~ /^[0-9]+\.[0-9]+\.[0-9]+$/ - job: ubuntu-22-build
artifacts: true
script: script:
- curl --request POST # to authenticate in docker hub, kaniko needs a config file located at
--form token=$K8S_SECRET_RELEASE # /kaniko/.docker/config.json
--form ref=master - mkdir -p /kaniko/.docker || true
--form variables[OTB_TAG]=$CI_COMMIT_TAG - echo "{\"auths\":{\"https://index.docker.io/v1/\":{\"auth\":\"$(printf "%s:%s" "${DOCKER_HUB_USER}" "${DOCKER_HUB_PWD}" | base64 | tr -d '\n')\"}}}" > /kaniko/.docker/config.json
https://gitlab.orfeo-toolbox.org/api/v4/projects/126/trigger/pipeline # get the package version from archive name
- |
PACKAGE_OTB_VERSION=$(ls -1 OTB-*.tar.gz |
head -n 1 |
egrep -o "([0-9]+\.){2}[0-9]+")
- /kaniko/executor --cleanup
--verbosity warn
--context $CI_PROJECT_DIR
--build-arg "OTB_RELEASE=$PACKAGE_OTB_VERSION"
--dockerfile $CI_PROJECT_DIR/Docker/Dockerfile_CI
--destination orfeotoolbox/otb:$CI_COMMIT_TAG
# Description
<!-- Quick issue description -->
# Definition of Ready
## Generic:
* [ ] If this issue is consequent, it is splitted in subtasks with priority and complexity evaluated. Theses subtasks should be linked to this issue. (To do on gitlab interface after writting this issue)
* [ ] Issue complexity evaluated
* [ ] Priority of issue evaluated
* [ ] If there is specific test data needed, it should be detailled and available
* [ ] If there is specific documentation/specification need, it should be available to the development team
* [ ] Time during the sprint to realise this issue
* [ ] Blocking elements resolved (check if non applicable, detail otherwise the resolved elements)
## Specific:
# Definition of Done
## Generic:
* [ ] No test regression on CI
* [ ] Code reviewed by pairs
* [ ] Code cleaned, no "debug" traces or "TODO" comment kept.
* [ ] New code documented
## Specific:
...@@ -5,3 +5,5 @@ Can be a combination of CookBook, doxygen, blog, applications doc, websites ...@@ -5,3 +5,5 @@ Can be a combination of CookBook, doxygen, blog, applications doc, websites
### Change requested ### Change requested
Describe precisely the changes that are required. Describe precisely the changes that are required.
/label ~documentation
We are ready to release OTB version MAJOR.MINOR.PATCH. The following steps need to be done: We are ready to release OTB version MAJOR.MINOR.PATCH. The following steps need to be done:
## Release Candidate
### 1. Branches ### 1. Branches
* [ ] **(if major or minor release)** Feature freeze: [create the new release branch](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#create-release-branch) * [ ] **(if major or minor release)** Feature freeze: [create the new release branch](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#create-release-branch)
...@@ -8,21 +10,55 @@ We are ready to release OTB version MAJOR.MINOR.PATCH. The following steps need ...@@ -8,21 +10,55 @@ We are ready to release OTB version MAJOR.MINOR.PATCH. The following steps need
### 2. Housekeeping ### 2. Housekeeping
* [ ] In this story, make a list of blocking issues for the release (if any) * [ ] In this story, make a list of blocking issues for the release (if any)
* [ ] [Update the SuperBuild archive](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#superbuild-archive) (if needed)
* [ ] Update release notes (walk the GitLab MR merged history and log all improvements) * [ ] Update release notes (walk the GitLab MR merged history and log all improvements)
* [ ] Update the date in RELEASE_NOTES.txt * [ ] Update the date in RELEASE_NOTES.txt
* [ ] Check [SonarQube](https://sonar.orfeo-toolbox.org/dashboard?id=orfeotoolbox-otb)
* [ ] Run Debian [spelling](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#spelling-check) checker
* [ ] Run shellcheck script from [OTB-Devutils/Scripts/](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb-devutils/blob/master/Scripts/run_shellcheck.sh)
* [ ] [Sanity check the binary packages](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#standalone-packages-sanity-check)
* [ ] Windows
* [ ] Linux
* [ ] QGIS plugin
### 3. Actual release candidate
Once all blocking issues are closed, and the previous steps are done:
* [ ] [Tag the release candidate](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#release-tag)
* [ ] Update GIT_TAG for all official remote modules (if needed)
### 4. Publish and plan next release
* [ ] [Prepare and upload source packages](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#prepare-and-upload-source-packages)
* [ ] [Promote staging packages](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#promote-staging-packages)
* [ ] [Update documentation](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#update-documentation)
* [ ] Cookbook. If it is a patch version, overwrite in [version.html file](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/blob/develop/Documentation/Cookbook/_static/html/versions.html) the previous minor version to only keep one minor version. This will be updated when merged in develop.
* [ ] Doxygen
* [ ] [Update the SuperBuild archive](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#superbuild-archive)
* [ ] Release Candidate announcement on the forum
* [ ] Add the new release to TRex https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/wikis/Help-for-release-actions#update-otb-on-trex-cluster
## Release
### 1. Branches
* [ ] Make sure the version number in `CMakeLists.txt` is MAJOR.MINOR.PATCH
### 2. Housekeeping
* [ ] In this story, make a list of blocking issues for the release (if any)
* [ ] Fix compilation warnings on CI
* [ ] Update release notes (walk the GitLab MR merged history and log all improvements)
* [ ] Update the date in RELEASE_NOTES.txt
* [ ] Check [SonarQube](https://sonar.orfeo-toolbox.org/dashboard?id=orfeotoolbox-otb)
* [ ] Run Debian [spelling](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#spelling-check) checker * [ ] Run Debian [spelling](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#spelling-check) checker
* [ ] Run shellcheck script from [OTB-Devutils/Scripts/](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb-devutils/blob/master/Scripts/run_shellcheck.sh) * [ ] Run shellcheck script from [OTB-Devutils/Scripts/](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb-devutils/blob/master/Scripts/run_shellcheck.sh)
* [ ] [Update translation](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#translation-for-monteverdi-mapla) for Monteverdi and Mapla
* [ ] [Sanity check the binary packages](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#standalone-packages-sanity-check) * [ ] [Sanity check the binary packages](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#standalone-packages-sanity-check)
* [ ] Windows * [ ] Windows
* [ ] Linux * [ ] Linux
* [ ] Mac * [ ] QGIS plugin
### 3. Actual release ### 3. Actual release
Once all blocking issues are closed, and the previous steps are done: Once all blocking issues are closed, and the previous steps are done:
* [ ] [Tag the release or RC](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#release-tag) * [ ] [Tag the release](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#release-tag)
* [ ] **(if major or minor release)**: Merge the release into develop * [ ] **(if major or minor release)**: Merge the release into develop
* [ ] **(if it's the latest release)**: Merge the release into master * [ ] **(if it's the latest release)**: Merge the release into master
* [ ] **(if patch release)**: Backport fixes * [ ] **(if patch release)**: Backport fixes
...@@ -34,13 +70,16 @@ Once all blocking issues are closed, and the previous steps are done: ...@@ -34,13 +70,16 @@ Once all blocking issues are closed, and the previous steps are done:
* [ ] [Update documentation](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#update-documentation) * [ ] [Update documentation](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#update-documentation)
* [ ] Cookbook * [ ] Cookbook
* [ ] Doxygen * [ ] Doxygen
* [ ] WordPress page "Home" and "Download" pages * [ ] WordPress page ["Home"](https://www.orfeo-toolbox.org/) and ["Download"](https://www.orfeo-toolbox.org/download/) pages
* [ ] Add the release to "Releases" page of the project
* [ ] [Update the SuperBuild archive](https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/wikis/Help-for-release-actions#superbuild-archive)
* [ ] Upload OTB source archive to [Zenodo](https://zenodo.org/) to create a unique Digital Object Identifier (DOI) * [ ] Upload OTB source archive to [Zenodo](https://zenodo.org/) to create a unique Digital Object Identifier (DOI)
* [ ] Send email to mailing list to announce the release * [ ] Release announcement
* [ ] Release announcement on the blog * [ ] On the [forum](https://forum.orfeo-toolbox.org/)
* [ ] Announcement on social networks (twitter, google+) * [ ] On the [blog](https://www.orfeo-toolbox.org/blog/)
* [ ] Update the Wikipedia page with the version number and release date (https://en.wikipedia.org/wiki/Orfeo_toolbox)
* [ ] Forward announcement to news_item@osgeo.org ([OSGeo news](https://www.osgeo.org/foundation-news/)) * [ ] Forward announcement to news_item@osgeo.org ([OSGeo news](https://www.osgeo.org/foundation-news/))
* [ ] Plan the next release (nominate new release manager, setup PSC meeting on IRC)
* [ ] Remove public branches related to MR or bugfix merged before the release * [ ] Remove public branches related to MR or bugfix merged before the release
* [ ] Add the new release to TRex https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/wikis/Help-for-release-actions#update-otb-on-trex-cluster
/label ~story /label ~story
...@@ -20,7 +20,8 @@ Describe any changes made to existing applications, or new applications that hav ...@@ -20,7 +20,8 @@ Describe any changes made to existing applications, or new applications that hav
<!--- <!---
##### Tests ##### Tests
Describe the testing strategy for new features. Describe the testing strategy for new features.
- [ ] validated through ... unitary test
--> -->
<!--- <!---
......
Alexandre Fiche <alexandre.fiche@csgroup.eu>
Alexandre Fiche <alexandre.fiche@csgroup.eu> afiche <alexandre.fiche@csgroup.eu>
Alexia Mondot <alexia.mondot@c-s.fr> Alexia Mondot <alexia.mondot@c-s.fr>
Amit Kulkarni <amitkulz@gmail.com> Amit Kulkarni <amitkulz@gmail.com>
Angelos Tzotsos <tzotsos@gmail.com> Angelos Tzotsos <tzotsos@gmail.com>
...@@ -5,21 +7,27 @@ Antoine Regimbeau <antoine.regimbeau@c-s.fr> ...@@ -5,21 +7,27 @@ Antoine Regimbeau <antoine.regimbeau@c-s.fr>
Antoine Regimbeau <antoine.regimbeau@c-s.fr> aregimbe <antoine.regimbeau@c-s.fr> Antoine Regimbeau <antoine.regimbeau@c-s.fr> aregimbe <antoine.regimbeau@c-s.fr>
Antoine Regimbeau <antoine.regimbeau@c-s.fr> aregimbeau <antoine.regimbeau@c-s.fr> Antoine Regimbeau <antoine.regimbeau@c-s.fr> aregimbeau <antoine.regimbeau@c-s.fr>
Arnaud Jaen <arnaud.jaen@c-s.fr> Arnaud Jaen <arnaud.jaen@c-s.fr>
Aurelien Bricier <aurelien.bricier@c-s.fr> Arthur Vincent <arthur.vincent@c-s.fr>
Arthur Vincent <arthur.vincent@c-s.fr> Arthur Vincent <vincenta@cesbio.cnes.fr>
Aurélie Emilien <aurelie.emilien@c-s.fr> Aurélie Emilien <aurelie.emilien@c-s.fr>
Aurélie Emilien <aurelie.emilien@c-s.fr> Aurelie Emilien <aurelie.emilien@c-s.fr> Aurélie Emilien <aurelie.emilien@c-s.fr> Aurelie Emilien <aurelie.emilien@c-s.fr>
Aurelien Bricier <aurelien.bricier@c-s.fr>
Bas Couwenberg <sebastic@debian.org> Bas Couwenberg <sebastic@debian.org>
Bas Couwenberg <sebastic@debian.org> Bas Couwenberg <sebastic@xs4all.nl> Bas Couwenberg <sebastic@debian.org> Bas Couwenberg <sebastic@xs4all.nl>
Brad Hards <bradh@frogmouth.net>
Carole Amiot <carole.amiot@cnes.fr>
Carole Amiot <carole.amiot@cnes.fr> Carole Amiot <carole.amiot@thales-services.fr>
Caroline Ruffel <caroline.ruffel@c-s.fr> Caroline Ruffel <caroline.ruffel@c-s.fr>
Cédric Traizet <cedric.traizet@c-s.fr> Cedric <cedric.traizet@c-s.fr>
Cédric Traizet <cedric.traizet@c-s.fr> Cédric Traizet <cedric.traizet@csgroup.eu>
Cédric Traizet <cedric.traizet@c-s.fr> Cédric Traizet <traizetc@cesbio.cnes.fr>
Cédric Traizet <cedric.traizet@c-s.fr> Traizet Cedric <cedric.traizet@cesbio.cnes.fr>
Cédric Traizet <cedric.traizet@c-s.fr> ctraizet <cedric.traizet@c-s.fr>
Charles Peyrega <charles.peyrega@c-s.fr> Charles Peyrega <charles.peyrega@c-s.fr>
Chia Aik Song <crscas@nus.edu.sg> Chia Aik Song <crscas@nus.edu.sg>
Christophe Palmann <christophe.palmann@c-s.fr> Christophe Palmann <christophe.palmann@c-s.fr>
Conrad Bielski <conrad.bielski@yahoo.com> Conrad Bielski <conrad.bielski@yahoo.com>
Cyrille Valladeau <cyrille.valladeau@c-s.fr> Cyrille Valladeau <cyrille.valladeau@c-s.fr>
Cédric Traizet <cedric.traizet@c-s.fr> Cedric <cedric.traizet@c-s.fr>
Cédric Traizet <cedric.traizet@c-s.fr> Cédric Traizet <traizetc@cesbio.cnes.fr>
Cédric Traizet <cedric.traizet@c-s.fr> Traizet Cedric <cedric.traizet@cesbio.cnes.fr>
Cédric Traizet <cedric.traizet@c-s.fr> ctraizet <cedric.traizet@c-s.fr>
Daniel McInerney <daniel.o.mcinerney@gmail.com> Daniel McInerney <daniel.o.mcinerney@gmail.com>
Daniel McInerney <daniel.o.mcinerney@gmail.com> dmci <daniel.o.mcinerney@gmail.com> Daniel McInerney <daniel.o.mcinerney@gmail.com> dmci <daniel.o.mcinerney@gmail.com>
Daphne Deleflie <daphne.deleflie@thalesgroup.com> Daphne Deleflie <daphne.deleflie@thalesgroup.com>
...@@ -38,20 +46,26 @@ Guillaume Borrut <guillaume.borrut@c-s.fr> ...@@ -38,20 +46,26 @@ Guillaume Borrut <guillaume.borrut@c-s.fr>
Guillaume Pasero <guillaume.pasero@c-s.fr> Guillaume Pasero <guillaume.pasero@c-s.fr>
Guillaume Pernot <guillaume.pernot@c-s.fr> Guillaume Pernot <guillaume.pernot@c-s.fr>
Guillaume Pernot <guillaume.pernot@c-s.fr> gpernot <guillaume.pernot@c-s.fr> Guillaume Pernot <guillaume.pernot@c-s.fr> gpernot <guillaume.pernot@c-s.fr>
janestar <janestar92@163.com>
Jee Roen <jeroen.staab@posteo.de> Jee Roen <jeroen.staab@posteo.de>
Jonathan Guinet <jonathan.guinet@c-s.fr> Jonathan Guinet <jonathan.guinet@c-s.fr>
Jordi Inglada <jordi.inglada@cesbio.eu> Jordi Inglada <jordi.inglada@cesbio.eu>
Jordi Inglada <jordi.inglada@cesbio.eu> Jordi Inglada <jordi.inglada@cesbio.cnes.fr> Jordi Inglada <jordi.inglada@cesbio.eu> Jordi Inglada <jordi.inglada@cesbio.cnes.fr>
Jordi Inglada <jordi.inglada@cesbio.eu> Jordi Inglada <jordi.inglada@orfeo-toolbox.org> Jordi Inglada <jordi.inglada@cesbio.eu> Jordi Inglada <jordi.inglada@orfeo-toolbox.org>
Julie Brossard <julie.brossard@c-s.fr>
Julien Cabieces <julien.cabieces@oslandia.com>
Julien Malik <julien.malik@c-s.fr> Julien Malik <julien.malik@c-s.fr>
Julien Malik <julien.malik@c-s.fr> Julien Malik <julien.malik@gmail.com> Julien Malik <julien.malik@c-s.fr> Julien Malik <julien.malik@gmail.com>
Julien Malik <julien.malik@c-s.fr> Julien Malik <julien.malik@orfeo-toolbox.org> Julien Malik <julien.malik@c-s.fr> Julien Malik <julien.malik@orfeo-toolbox.org>
Julien Michel <julien.michel@cnes.fr> Julien Michel <julien.michel@cnes.fr>
Julien Michel <julien.michel@cnes.fr> Julien Michel <julien.michel@c-s.fr> Julien Michel <julien.michel@cnes.fr> Julien Michel <julien.michel@c-s.fr>
Julien Michel <julien.michel@cnes.fr> Julien Michel <julien.michel@orfeo-toolbox.org> Julien Michel <julien.michel@cnes.fr> Julien Michel <julien.michel@orfeo-toolbox.org>
Julien Osman <julien.osman@csgroup.eu> Julien Osman <julien.osman@c-s.fr>
Laurențiu Nicola <lnicola@dend.ro> Laurentiu Nicola <lnicola@dend.ro> Laurențiu Nicola <lnicola@dend.ro> Laurentiu Nicola <lnicola@dend.ro>
Laurențiu Nicola <lnicola@dend.ro> Laurențiu Nicola <grayshade@gmail.com> Laurențiu Nicola <lnicola@dend.ro> Laurențiu Nicola <grayshade@gmail.com>
Luc Hermitte <luc.hermitte@c-s.fr> Luc Hermitte <luc.hermitte@csgroup.eu> Luc Hermitte <luc.hermitte@cnes.fr>
Luc Hermitte <luc.hermitte@csgroup.eu> Luc Hermitte <luc.hermitte@c-s.fr>
Luc Hermitte <luc.hermitte@csgroup.eu> Luc Hermitte <9-lhermitte@users.noreply.gitlab.orfeo-toolbox.org>
Ludovic Hussonnois <ludovic.hussonnois@c-s.fr> Ludovic Hussonnois <ludovic.hussonnois@c-s.fr>
Manuel Grizonnet <manuel.grizonnet@cnes.fr> Manuel Grizonnet <manuel.grizonnet@cnes.fr>
Manuel Grizonnet <manuel.grizonnet@cnes.fr> Grizonnet Manuel <manuel.grizonnet@cnes.fr> Manuel Grizonnet <manuel.grizonnet@cnes.fr> Grizonnet Manuel <manuel.grizonnet@cnes.fr>
...@@ -71,27 +85,39 @@ Rashad Kanavath <rashad.kanavath@c-s.fr> Rashad Kanavath <moham ...@@ -71,27 +85,39 @@ Rashad Kanavath <rashad.kanavath@c-s.fr> Rashad Kanavath <moham
Rashad Kanavath <rashad.kanavath@c-s.fr> Rashad Kanavath <rashad.kanavath.email.com> Rashad Kanavath <rashad.kanavath@c-s.fr> Rashad Kanavath <rashad.kanavath.email.com>
Rashad Kanavath <rashad.kanavath@c-s.fr> Rashad Kanavath <rashad.kanvath@c-s.fr> Rashad Kanavath <rashad.kanavath@c-s.fr> Rashad Kanavath <rashad.kanvath@c-s.fr>
Rashad Kanavath <rashad.kanavath@c-s.fr> Rashad M <rashad.kanavath@c-s.fr> Rashad Kanavath <rashad.kanavath@c-s.fr> Rashad M <rashad.kanavath@c-s.fr>
Romain Garrigues <romain.garrigues@c-s.fr>
Rosa Ruiloba <rosario.ruiloba@c-s.fr>
Rémi Cresson <remi.cresson@irstea.fr> Remi Cresson <remi.cresson@irstea.fr> Rémi Cresson <remi.cresson@irstea.fr> Remi Cresson <remi.cresson@irstea.fr>
Rémi Cresson <remi.cresson@irstea.fr> Rémi <remi.cresson@teledetection.fr> Rémi Cresson <remi.cresson@irstea.fr> Rémi <remi.cresson@teledetection.fr>
Rémi Cresson <remi.cresson@irstea.fr> remi <remi.cresson@irstea.fr> Rémi Cresson <remi.cresson@irstea.fr> remi <remi.cresson@irstea.fr>
Rémi Cresson <remi.cresson@irstea.fr> remi cresson <remi.cresson@teledetection.fr> Rémi Cresson <remi.cresson@irstea.fr> remi cresson <remi.cresson@teledetection.fr>
Rémi Cresson <remi.cresson@irstea.fr> remicres <remi.cresson@teledetection.fr> Rémi Cresson <remi.cresson@irstea.fr> remicres <remi.cresson@teledetection.fr>
Rémi Cresson <remi.cresson@irstea.fr> remi cresson <remi.cresson@inrae.fr>
Rémi Cresson <remi.cresson@irstea.fr> Rémi <remi.cresson@inrae.fr>
Rémi Cresson <remi.cresson@irstea.fr> Rémi Cresson <remi.cresson@inrae.fr>
Romain Garrigues <romain.garrigues@c-s.fr>
Rosa Ruiloba <rosario.ruiloba@c-s.fr>
Sébastien Dinot <sebastien.dinot@cs-soprasteria.com>
Sébastien Dinot <sebastien.dinot@cs-soprasteria.com> Achille Talon <atalon@dinot.net>
Sébastien Dinot <sebastien.dinot@cs-soprasteria.com> Sebastien Dinot <sebastien.dinot@c-s.fr>
Sébastien Dinot <sebastien.dinot@cs-soprasteria.com> Sébastien Dinot <sebastien.dinot@c-s.fr>
Sébastien Dinot <sebastien.dinot@cs-soprasteria.com> Sébastien Dinot <sebastien.dinot@csgroup.eu>
Sébastien Dinot <sebastien.dinot@cs-soprasteria.com> Sebastien Dinot <sebastien@palabritudes.net>
Sebastien Harasse <sebastien.harasse@c-s.fr> Sebastien Harasse <sebastien.harasse@c-s.fr>
Stephane Albert <stephane.albert@c-s.fr> Stephane Albert <stephane.albert@c-s.fr>
Stephane Albert <stephane.albert@c-s.fr> Stephane ALBERT <stephane.albert@c-s.fr> Stephane Albert <stephane.albert@c-s.fr> Stephane ALBERT <stephane.albert@c-s.fr>
Stephane Albert <stephane.albert@c-s.fr> Stephane Albert <salbert@dora.si.c-s.fr> Stephane Albert <stephane.albert@c-s.fr> Stephane Albert <salbert@dora.si.c-s.fr>
Sylvain Poulain <kikislater@users.noreply.github.com> Sylvain POULAIN <kikislater@users.noreply.github.com> Sylvain Poulain <kikislater@users.noreply.github.com> Sylvain POULAIN <kikislater@users.noreply.github.com>
Sébastien Dinot <sebastien.dinot@c-s.fr> Thibaut Romain <thibaut.romain@cs-soprasteria.com>
Sébastien Dinot <sebastien.dinot@c-s.fr> Achille Talon <atalon@dinot.net> Thibaut Romain <thibaut.romain@cs-soprasteria.com> Thibaut <thibaut.romain@csgroup.eu>
Sébastien Dinot <sebastien.dinot@c-s.fr> Sebastien Dinot <sebastien.dinot@c-s.fr> Thibaut Romain <thibaut.romain@cs-soprasteria.com> Thibaut ROMAIN <thibaut.romain@csgroup.eu>
Thomas Feuvrier <thomas.feuvrier@c-s.fr> Thomas Feuvrier <thomas.feuvrier@c-s.fr>
Tishampati Dhar <devnull@localhost> Tishampati Dhar <devnull@localhost>
Tristan Laurent <tristan.laurent@cs-soprasteria.com>
Tristan Laurent <tristan.laurent@cs-soprasteria.com> Tristan Laurent <tristan.laurent@csgroup.eu>
Valentin Genin <valentin.genin@cnes.fr>
Victor Poughon <victor.poughon@cnes.fr> Victor Poughon <victor.poughon@cnes.fr>
Vincent Delbar <vincent.delbar@latelescop.fr>
Vincent Poulain <vincent.poulain@thalesgroup.com> Vincent Poulain <vincent.poulain@thalesgroup.com>
Yannick Tanguy <yannick.tanguy@cnes.fr> Yannick TANGUY <tanguyy@visu01.sis.cnes.fr> Yannick Tanguy <yannick.tanguy@cnes.fr> Yannick TANGUY <tanguyy@visu01.sis.cnes.fr>
Yannick Tanguy <yannick.tanguy@cnes.fr> Yannick TANGUY <yannick.tanguy@cnes.fr> Yannick Tanguy <yannick.tanguy@cnes.fr> Yannick TANGUY <yannick.tanguy@cnes.fr>
Yannick Tanguy <yannick.tanguy@cnes.fr> ytanguy <yannick.tanguy@cnes.fr> Yannick Tanguy <yannick.tanguy@cnes.fr> ytanguy <yannick.tanguy@cnes.fr>
Yin Tiangang <crsyt@nus.edu.sg> Yin Tiangang <crsyt@nus.edu.sg>
janestar <janestar92@163.com>
#
# Copyright (C) 2005-2024 Centre National d'Etudes Spatiales (CNES)
#
# This file is part of Orfeo Toolbox
#
# https://www.orfeo-toolbox.org/
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
include( "${CMAKE_CURRENT_LIST_DIR}/macros.cmake" )
get_filename_component(OTB_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR} DIRECTORY)
set (ENV{LANG} "C") # Only ascii output
# Build Configuration : Release, Debug..
if(ci_build_type)
set (CTEST_BUILD_CONFIGURATION ${ci_build_type})
else()
set (CTEST_BUILD_CONFIGURATION "Release")
endif()
set (CTEST_CMAKE_GENERATOR "Ninja")
# detect short sha
if(NOT DEFINED ENV{CI_COMMIT_SHORT_SHA})
execute_process(COMMAND git log -1 --pretty=format:%h
WORKING_DIRECTORY ${OTB_SOURCE_DIR}
OUTPUT_VARIABLE ci_short_sha)
else()
set(ci_short_sha "$ENV{CI_COMMIT_SHORT_SHA}")
endif()
# Find the build name and CI profile. Customize it with FFTW
set_dash_build_name()
set (CTEST_BUILD_NAME "FFTW Tests ${ci_ref_name} P-${ci_pipeline_id}")
# Detect site
if(NOT DEFINED IMAGE_NAME)
if(DEFINED ENV{IMAGE_NAME})
set(IMAGE_NAME $ENV{IMAGE_NAME})
endif()
endif()
set (CTEST_SITE "${IMAGE_NAME}")
# Directory variable
set (CTEST_SOURCE_DIRECTORY "${OTB_SOURCE_DIR}")
if(BUILD_DIR)
set (CTEST_BINARY_DIRECTORY "${BUILD_DIR}")
else()
set (CTEST_BINARY_DIRECTORY "${OTB_SOURCE_DIR}/build/")
endif()
set (CTEST_INSTALL_DIRECTORY "${OTB_SOURCE_DIR}/install/")
set (PROJECT_SOURCE_DIR "${OTB_SOURCE_DIR}")
# Ctest command value
set (CMAKE_COMMAND "cmake")
message(STATUS "CI profile : ${ci_profile}")
# Sources are already checked out : do nothing for update
set(CTEST_GIT_UPDATE_CUSTOM "${CMAKE_COMMAND}" "-E" "echo" "No update")
# Look for a GIT command-line client.
find_program(CTEST_GIT_COMMAND NAMES git git.cmd)
ctest_start (Experimental TRACK CI_Build)
ctest_update()
# Run only onverlapSave tests
ctest_test(PARALLEL_LEVEL 8
RETURN_VALUE _test_rv
CAPTURE_CMAKE_ERROR _test_error
INCLUDE "OverlapSave"
)
# Test log
file ( WRITE
"${OTB_SOURCE_DIR}/log/test_return_value_log.txt" "${_test_rv}")
file ( WRITE
"${OTB_SOURCE_DIR}/log/test_cmake_error_log.txt" "${_test_error}")
if ( NOT _test_rv EQUAL 0 )
message( SEND_ERROR "An error occurs during ctest_test.")
endif()
ctest_submit()
#requires -version 5.0
# File takes from https://github.com/Wintellect/WintellectPowerShell/blob/master/Code/Invoke-CmdScript.ps1
# it invoke a CMD script and transfer env variables from cmd to pwsh
# Currently used to setup M$ compilation toolset as M$ does not provide
# powershell script...
###############################################################################
# WintellectPowerShell Module
# Copyright (c) 2010-2017 - John Robbins/Wintellect
#
# Do whatever you want with this module, but please do give credit.
###############################################################################
# Always make sure all variables are defined and all best practices are
# followed.
Set-StrictMode -version Latest
function Invoke-CmdScript
{
<#
.SYNOPSIS
Executes the specified command script and imports the environment into current
PowerShell instance.
.DESCRIPTION
Running development tools at the command line in PowerShell can be a hassle since
they rely on environment variables and those are set through batch files. This
cmdlet runs those batch files and imports any set environment variables into
the running PowerShell instance.
.PARAMETER script
The required batch file to run.
.PARAMETER parameters
The optional parameters to pass to the batch file.
.NOTES
The original script is by Lee Holmes. I updated the script to make removing environment variables
work.
.LINK
http://www.leeholmes.com/blog/2006/05/11/nothing-solves-everything-%e2%80%93-powershell-and-other-technologies/
https://github.com/Wintellect/WintellectPowerShell
#>
param
(
[Parameter(Mandatory=$true,
Position=0,
HelpMessage="Please specify the command script to execute.")]
[string] $script,
[Parameter(Position=1)]
[string] $parameters=""
)
# Save off the current environment variables in case there's an issue
$oldVars = $(Get-ChildItem -Path env:\)
$tempFile = [IO.Path]::GetTempFileName()
try
{
## Store the output of cmd.exe. We also ask cmd.exe to output
## the environment table after the batch file completes
cmd /c " `"$script`" $parameters && set > `"$tempFile`" "
if ($LASTEXITCODE -ne 0)
{
throw "Error executing CMD.EXE: $LASTEXITCODE"
}
# Before we delete the environment variables get the output into a string
# array.
$vars = Get-Content -Path $tempFile
# Clear out all current environment variables in PowerShell.
Get-ChildItem -Path env:\ | Foreach-Object {
set-item -force -path "ENV:\$($_.Name)" -value ""
}
## Go through the environment variables in the temp file.
## For each of them, set the variable in our local environment.
$vars | Foreach-Object {
if($_ -match "^(.*?)=(.*)$")
{
Set-Content -Path "env:\$($matches[1])" -Value $matches[2]
}
}
}
catch
{
"ERROR: $_"
# Any problems, restore the old environment variables.
$oldVars | ForEach-Object { Set-Item -Force -Path "ENV:\$($_.Name)" -value $_.Value }
}
finally
{
Remove-Item -Path $tempFile -Force -ErrorAction SilentlyContinue
}
}
#!/usr/bin/env bash #!/usr/bin/env bash
# #
# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES) # Copyright (C) 2005-2024 Centre National d'Etudes Spatiales (CNES)
# #
# This file is part of Orfeo Toolbox # This file is part of Orfeo Toolbox
# #
...@@ -35,21 +35,26 @@ WGET=$(which wget) ...@@ -35,21 +35,26 @@ WGET=$(which wget)
CUR_DIR="$( cd "$( dirname "$0" )" && pwd )" CUR_DIR="$( cd "$( dirname "$0" )" && pwd )"
SB_CMAKE_DIR_REL=$CUR_DIR/../../SuperBuild/CMake SB_CMAKE_DIR_REL=$CUR_DIR/../SuperBuild/CMake
SB_CMAKE_DIR=$(readlink -f "${SB_CMAKE_DIR_REL}") SB_CMAKE_DIR=$(readlink -f "${SB_CMAKE_DIR_REL}")
cd "$CUR_DIR/../../" || echo "cannot cd to CUR_DIR/../../" cd "$CUR_DIR/../" || echo "cannot cd to CUR_DIR/../"
GIT_BRANCH=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p')
#if a branch contains release-X.Y then xdk is taken from packages/xdk/OTB-X.Y GIT_BRANCH=$(git name-rev --name-only "${GIT_HASH}")
if [[ "$GIT_BRANCH" =~ release-* ]]; then
VERSION=$(echo "${GIT_BRANCH}"| sed 's/.*release-//'| cut -d'-' -f 1) # the version is the branch name for develop and release-X.Y branches and the commit short hash for other branches
if [[ ${CI_COMMIT_REF_NAME} =~ develop|release-+[0-9]+\.[0-9] ]] ; then
VERSION=${CI_COMMIT_REF_NAME}
else else
VERSION="develop" GIT_HASH=$(git rev-parse --short HEAD)
VERSION=${GIT_HASH}
fi fi
CMAKE_FILES=$(find "${SB_CMAKE_DIR}" -maxdepth 1 -type f -name "External_*") CMAKE_FILES=$(find "${SB_CMAKE_DIR}" -maxdepth 1 -type f -name "External_*")
DOWNLOAD_NAMES= DOWNLOAD_NAMES=
mkdir -p "${DOWNLOAD_DIR}" mkdir -p "${DOWNLOAD_DIR}"
cd "${DOWNLOAD_DIR}" || echo "cannot cd to DOWNLOAD_DIR" cd "${DOWNLOAD_DIR}" || echo "cannot cd to DOWNLOAD_DIR"
echo "Downloading files to ${DOWNLOAD_DIR}/" echo "Downloading files to ${DOWNLOAD_DIR}/"
for cmake in ${CMAKE_FILES}; do for cmake in ${CMAKE_FILES}; do
...@@ -77,8 +82,10 @@ done ...@@ -77,8 +82,10 @@ done
ARCHIVE_NAME="SuperBuild-archives-$VERSION" ARCHIVE_NAME="SuperBuild-archives-$VERSION"
echo "Creating archive ${OUTPUT_DIR}/$ARCHIVE_NAME.tar.bz2" echo "Creating archive ${OUTPUT_DIR}/$ARCHIVE_NAME.tar.bz2"
cd "${OUTPUT_DIR}" || echo "cannot cd to OUTPUT_DIR"
mkdir -p "${OUTPUT_DIR}"
cd "${OUTPUT_DIR}" || echo "cannot cd to ${OUTPUT_DIR}"
touch "${DOWNLOAD_DIR}/OTBSuperBuild.readme" touch "${DOWNLOAD_DIR}/OTBSuperBuild.readme"
tar -cjf "$ARCHIVE_NAME.tar.bz2" -C "${DOWNLOAD_DIR}" "${DOWNLOAD_NAMES}" OTBSuperBuild.readme tar -cjf "$ARCHIVE_NAME.tar.bz2" -C "${DOWNLOAD_DIR}" .
echo "Saving md5sum to ${OUTPUT_DIR}/$ARCHIVE_NAME.md5" echo "Saving md5sum to ${OUTPUT_DIR}/$ARCHIVE_NAME.md5"
md5sum "$ARCHIVE_NAME.tar.bz2" > "$ARCHIVE_NAME.md5" md5sum "$ARCHIVE_NAME.tar.bz2" > "$ARCHIVE_NAME.md5"
# #
# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES) # Copyright (C) 2005-2024 Centre National d'Etudes Spatiales (CNES)
# #
# This file is part of Orfeo Toolbox # This file is part of Orfeo Toolbox
# #
...@@ -22,6 +22,7 @@ import os ...@@ -22,6 +22,7 @@ import os
import os.path import os.path
import urllib.request import urllib.request
import urllib.parse import urllib.parse
import requests # to get the body of 400 error, not possible with urllib
import glob import glob
import re import re
import unittest import unittest
...@@ -31,7 +32,7 @@ import time ...@@ -31,7 +32,7 @@ import time
import xml.etree.ElementTree as ET import xml.etree.ElementTree as ET
trace = False trace = True
""" """
Check needed environment parameters Check needed environment parameters
...@@ -44,8 +45,11 @@ def CheckEnvParameters(params, verbose=True): ...@@ -44,8 +45,11 @@ def CheckEnvParameters(params, verbose=True):
return False return False
return True return True
class CDashException(Exception):
pass
""" """
Handler class to retrieve build informations Handler class to retrieve build information
""" """
class Handler: class Handler:
def __init__ (self): def __init__ (self):
...@@ -78,8 +82,7 @@ class Handler: ...@@ -78,8 +82,7 @@ class Handler:
print ( configure_xml ) print ( configure_xml )
self.configure_path = configure_xml self.configure_path = configure_xml
return self.configure_path return self.configure_path
print("Could not find the Configure.xml produced by ctest") raise CDashException("Could not find the Configure.xml produced by ctest")
sys.exit(1)
def ParseConfigureFile(self): def ParseConfigureFile(self):
""" """
...@@ -98,22 +101,19 @@ class Handler: ...@@ -98,22 +101,19 @@ class Handler:
if trace: if trace:
print( root.attrib ) print( root.attrib )
if not 'Name' in root.keys(): if not 'Name' in root.keys():
print("Can't find site name in Configure.XML") raise CDashException("Can't find site name in Configure.XML")
sys.exit(1)
if not 'BuildName' in root.keys(): if not 'BuildName' in root.keys():
print("Can't find build name in Configure.XML") raise CDashException("Can't find build name in Configure.XML")
sys.exit(1)
if not 'BuildStamp' in root.keys(): if not 'BuildStamp' in root.keys():
print("Can't find build stamp in Configure.XML") raise CDashException("Can't find build stamp in Configure.XML")
sys.exit(1)
self.site = root.get('Name') self.site = root.get('Name')
self.name = root.get('BuildName') self.name = root.get('BuildName')
self.stamp = root.get('BuildStamp') self.stamp = root.get('BuildStamp')
def GetBuildId (self, **kwargs): def GetBuildId (self, **kwargs):
""" """
This function is returning the buildid. Dict can be passed with the This function is returning the buildid. Dict can be passed with the
different informations different information
""" """
site = self.site site = self.site
stamp = self.stamp stamp = self.stamp
...@@ -129,8 +129,7 @@ class Handler: ...@@ -129,8 +129,7 @@ class Handler:
if key == "project": if key == "project":
project = value project = value
if ( site == "" or stamp == "" or name == "" or project == ""): if ( site == "" or stamp == "" or name == "" or project == ""):
print( "Missing argument for buildid request site:"+site+", stamp:"+stamp+", name:"+name+", project:"+project+".") raise CDashException("Missing argument for buildid request site:"+site+", stamp:"+stamp+", name:"+name+", project:"+project+".")
sys.exit(1)
elif trace: elif trace:
print( "Argument for buildid request site:"+site+", stamp:"+stamp+", name:"+name+", project:"+project+".") print( "Argument for buildid request site:"+site+", stamp:"+stamp+", name:"+name+", project:"+project+".")
buildid_api = "/api/v1/getbuildid.php?" buildid_api = "/api/v1/getbuildid.php?"
...@@ -142,7 +141,7 @@ class Handler: ...@@ -142,7 +141,7 @@ class Handler:
nb_try = max_retry nb_try = max_retry
build_id_regex = re.compile( "<buildid>([0-9]+)</buildid>" ) build_id_regex = re.compile( "<buildid>([0-9]+)</buildid>" )
while nb_try: while nb_try:
response = urllib.request.urlopen(full_url).read().decode() response = requests.get(full_url).text
if trace: if trace:
print ( "response: " + response ) print ( "response: " + response )
buildid = build_id_regex.search( response ) buildid = build_id_regex.search( response )
...@@ -157,8 +156,7 @@ class Handler: ...@@ -157,8 +156,7 @@ class Handler:
print ( "build id is ", self.buildid) print ( "build id is ", self.buildid)
return buildid.group(1) return buildid.group(1)
else: else:
print("Error in recovering buildid") raise CDashException("Error in recovering buildid")
sys.exit(1)
def GetBuildUrl (self , buildid = "" ): def GetBuildUrl (self , buildid = "" ):
""" """
...@@ -184,7 +182,7 @@ class Handler: ...@@ -184,7 +182,7 @@ class Handler:
if ( buildid == "" ): if ( buildid == "" ):
print( "Missing argument to build Status") print( "Missing argument to build Status")
return return
full_url = self.url + "/api/v1/buildSummary.php?buildid=" + buildid full_url = self.url + "/api/buildSummary.php?buildid=" + buildid
response = urllib.request.urlopen(full_url).read().decode() response = urllib.request.urlopen(full_url).read().decode()
full_status = json.loads(response) full_status = json.loads(response)
state = "success" state = "success"
...@@ -247,6 +245,9 @@ if __name__ == "__main__": ...@@ -247,6 +245,9 @@ if __name__ == "__main__":
print("Usage : "+sys.argv[0]+" commit_sha1 project_id project_directory token ref_name") print("Usage : "+sys.argv[0]+" commit_sha1 project_id project_directory token ref_name")
sys.exit(1) sys.exit(1)
if os.environ.get('CI_SKIP_CDASH', False):
sys.exit(0)
allow_failure = os.environ.get('CI_ALLOW_FAILURE', False) allow_failure = os.environ.get('CI_ALLOW_FAILURE', False)
if ( len(sys.argv) >= 6): if ( len(sys.argv) >= 6):
...@@ -275,23 +276,28 @@ if __name__ == "__main__": ...@@ -275,23 +276,28 @@ if __name__ == "__main__":
if trace: if trace:
print("build_dir is: " + build_dir) print("build_dir is: " + build_dir)
handler.build_dir = build_dir handler.build_dir = build_dir
handler.GetConfigureFile()
handler.ParseConfigureFile()
if handler.GetBuildId() is None:
cdash_url = "https://cdash.orfeo-toolbox.org"
state = 'failed'
error = "Failed to get build id"
else:
cdash_url = handler.GetBuildUrl()
( state , error ) = handler.GetLogStatus( os.path.join( pdir , "log") )
print("CDash build URL : "+cdash_url)
if token is None:
sys.exit(0)
gitlab_url = "https://gitlab.orfeo-toolbox.org/api/v4/projects/"
gitlab_url += proj + "/statuses/" + sha1
if allow_failure: try:
state = 'success' handler.GetConfigureFile()
handler.ParseConfigureFile()
if handler.GetBuildId() is None:
cdash_url = "https://cdash.orfeo-toolbox.org"
state = 'failed'
error = "Failed to get build id"
else:
cdash_url = handler.GetBuildUrl()
( state , error ) = handler.GetLogStatus( os.path.join( pdir , "log") )
print("CDash build URL : "+cdash_url)
if token is None:
sys.exit(0)
gitlab_url = "https://gitlab.orfeo-toolbox.org/api/v4/projects/"
gitlab_url += proj + "/statuses/" + sha1
except CDashException as e:
if allow_failure:
state = 'success'
else:
print(e)
sys.exit(1)
params = urllib.parse.urlencode({'name':'cdash:' + handler.site , 'state': state ,\ params = urllib.parse.urlencode({'name':'cdash:' + handler.site , 'state': state ,\
'target_url' : cdash_url , 'description' : error , 'ref' : refn }) 'target_url' : cdash_url , 'description' : error , 'ref' : refn })
......
# #
# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES) # Copyright (C) 2005-2024 Centre National d'Etudes Spatiales (CNES)
# #
# This file is part of Orfeo Toolbox # This file is part of Orfeo Toolbox
# #
......
#!/usr/bin/env bash
#
# Copyright (C) 2005-2024 Centre National d'Etudes Spatiales (CNES)
#
# This file is part of Orfeo Toolbox
#
# https://www.orfeo-toolbox.org/
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# This script aims to identify the unreferenced authors to invite the team to
# check if they have already signed the contributor license agreement (CLA).
# When this is done, the author must be added to the reference list.
source /build/anaconda3/bin/activate
cd /build/staged-recipes/recipes/ || exit
conda build "${CONDA_BUILD_OPTIONS}" muparserx
conda build "${CONDA_BUILD_OPTIONS}" shark
conda build "${CONDA_BUILD_OPTIONS}" tinyxml
conda build "${CONDA_BUILD_OPTIONS}" libitk
conda build "${CONDA_BUILD_OPTIONS}" otb
mkdir "${CI_PROJECT_DIR}/conda-bld"
mv /build/anaconda3/conda-bld/linux-64/*.tar.bz2 "${CI_PROJECT_DIR}/conda-bld"
#!/usr/bin/env bash
#
# Copyright (C) 2005-2024 Centre National d'Etudes Spatiales (CNES)
#
# This file is part of Orfeo Toolbox
#
# https://www.orfeo-toolbox.org/
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# This script aims to identify the unreferenced authors to invite the team to
# check if they have already signed the contributor license agreement (CLA).
# When this is done, the author must be added to the reference list.
source /build/anaconda3/bin/activate
ANACONDA_ORGANIZATION="orfeotoolbox"
anaconda login --username ${ANACONDA_LOGIN} --password ${ANACONDA_PASSWORD} --hostname ${CI_JOB_ID}
anaconda upload --force --user ${ANACONDA_ORGANIZATION} conda-bld/*.tar.bz2 || /bin/true
# #
# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES) # Copyright (C) 2005-2024 Centre National d'Etudes Spatiales (CNES)
# #
# This file is part of Orfeo Toolbox # This file is part of Orfeo Toolbox
# #
...@@ -27,37 +27,28 @@ ...@@ -27,37 +27,28 @@
set (otb_build_project_option set (otb_build_project_option
"BUILD_COOKBOOK:BOOL=OFF "BUILD_COOKBOOK:BOOL=OFF
BUILD_EXAMPLES:BOOL=ON BUILD_EXAMPLES:BOOL=OFF
BUILD_SHARED_LIBS:BOOL=ON BUILD_SHARED_LIBS:BOOL=ON
BUILD_TESTING:BOOL=ON") BUILD_TESTING:BOOL=ON")
if(WIN32)
set(otb_build_project_option
"${otb_build_project_option}
CMAKE_C_COMPILER_LAUNCHER=buildcache
CMAKE_CXX_COMPILER_LAUNCHER=buildcache")
endif()
set (otb_qa_option set (otb_qa_option
"CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON") "CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON")
set (otb_use_option set (otb_use_option
"OTB_USE_6S:BOOL=ON "OTB_USE_6S:BOOL=ON
OTB_USE_CURL:BOOL=ON OTB_USE_CURL:BOOL=ON
OTB_USE_GLEW:BOOL=ON
OTB_USE_GLFW:BOOL=ON
OTB_USE_GLUT:BOOL=ON
OTB_USE_GSL:BOOL=ON OTB_USE_GSL:BOOL=ON
OTB_USE_LIBKML:BOOL=OFF OTB_USE_LIBKML:BOOL=OFF
OTB_USE_LIBSVM:BOOL=ON
OTB_USE_MPI:BOOL=OFF
OTB_USE_MUPARSER:BOOL=ON
OTB_USE_MUPARSERX:BOOL=ON
OTB_USE_OPENCV:BOOL=ON
OTB_USE_OPENGL:BOOL=ON
OTB_USE_OPENMP:BOOL=OFF
OTB_USE_QT:BOOL=ON
OTB_USE_QWT:BOOL=ON
OTB_USE_SHARK:BOOL=ON
OTB_USE_SIFTFAST:BOOL=ON OTB_USE_SIFTFAST:BOOL=ON
OTB_USE_SPTW:BOOL=ON
OTB_USE_SSE_FLAGS:BOOL=ON") OTB_USE_SSE_FLAGS:BOOL=ON")
# Useful if MPI is ON : OTB_MPIEXEC_OPT:STRING=--allow-run-as-root
set (otb_wrap_option set (otb_wrap_option
"OTB_WRAP_PYTHON:BOOL=ON") "OTB_WRAP_PYTHON:BOOL=ON")
...@@ -66,11 +57,11 @@ set (cmake_configure_option ...@@ -66,11 +57,11 @@ set (cmake_configure_option
CMAKE_INSTALL_PREFIX:PATH=${CTEST_INSTALL_DIRECTORY}") CMAKE_INSTALL_PREFIX:PATH=${CTEST_INSTALL_DIRECTORY}")
# extra options for XDK builds # extra options for XDK builds
if(XDK_PATH) if(XDK_INSTALL_PATH)
set(cmake_configure_option set(cmake_configure_option
"${cmake_configure_option} "${cmake_configure_option}
CMAKE_PREFIX_PATH=${XDK_PATH}") CMAKE_PREFIX_PATH=${XDK_INSTALL_PATH}")
foreach(remote_module OTBTemporalGapFilling SertitObject otbGRM DiapOTBModule) foreach(remote_module OTBTemporalGapFilling SertitObject otbGRM S1TilingSupportApplications) #DiapOTBModule
set(cmake_configure_option set(cmake_configure_option
"${cmake_configure_option} "${cmake_configure_option}
Module_${remote_module}:BOOL=ON") Module_${remote_module}:BOOL=ON")
......
#!/bin/bash #!/bin/bash
# #
# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES) # Copyright (C) 2005-2024 Centre National d'Etudes Spatiales (CNES)
# #
# This file is part of Orfeo Toolbox # This file is part of Orfeo Toolbox
# #
......
# #
# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES) # Copyright (C) 2005-2024 Centre National d'Etudes Spatiales (CNES)
# #
# This file is part of Orfeo Toolbox # This file is part of Orfeo Toolbox
# #
...@@ -16,7 +16,5 @@ ...@@ -16,7 +16,5 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
#
project(OTBAppChangeDetection) mv C:\build\otb\xdk\lib\*.dll C:\build\otb\xdk\bin
otb_module_impl()
#!/bin/bash
# #
# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES) # Copyright (C) 2005-2024 Centre National d'Etudes Spatiales (CNES)
# #
# This file is part of Orfeo Toolbox # This file is part of Orfeo Toolbox
# #
...@@ -18,23 +19,17 @@ ...@@ -18,23 +19,17 @@
# limitations under the License. # limitations under the License.
# #
set( OTBQtAdapters_SRC jobs_directory=/home/otbpush/test
otbQtAdapters.cxx
)
set( OTBQtAdapters_HEADERS_MOC build_dir=$(readlink -f "$1")
# otbQtAdapters.h
)
add_to_qt_i18n_sources( ${OTBQtAdapters_SRCS} ) scp "${build_dir}"/SuperBuild-archives-*.{tar.bz2,md5} otbpush@otb5-vm2.orfeo-toolbox.org:${jobs_directory}/.
add_to_qt_i18n_headers( "../include" ${OTBQtAdapters_SRCS} )
qt5_wrap_cpp( OTBQtAdapters_SRC_MOC ${OTBQtAdapters_HEADERS_MOC} OPTIONS -p "." ) if [ "$CI_COMMIT_REF_NAME" = "develop" ] # check if the branch name is develop or not
then # we are on develop
add_library( OTBQtAdapters ${OTBQtAdapters_SRC} ${OTBQtAdapters_SRC_MOC}) ssh otbpush@otb5-vm2.orfeo-toolbox.org \
mv ${jobs_directory}/SuperBuild-archives-*.{tar.bz2,md5} ${jobs_directory}/superbuild_archive
target_link_libraries( OTBQtAdapters else # we are on a release branch
${OTBQt_LIBRARIES} ssh otbpush@otb5-vm2.orfeo-toolbox.org \
) mv ${jobs_directory}/SuperBuild-archives-*.{tar.bz2,md5} ${jobs_directory}/staging/
fi
otb_module_target( OTBQtAdapters )
#!/bin/bash
#
# Copyright (C) 2005-2024 Centre National d'Etudes Spatiales (CNES)
#
# This file is part of Orfeo Toolbox
#
# https://www.orfeo-toolbox.org/
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# This script aims at moving and renaming source, packages and documentation from
# staging area to production area
staging_area=/home/otbpush/test/staging
#check if we are dealing with the right packages
pack_suffix=-$(echo "$CI_COMMIT_TAG" | grep -o "rc[0-9]*") # this retrieve the rc number
echo "pack_suffix=${pack_suffix}"
echo "Renaming binary packages"
# find build_packages/. -name "*.run" \
# -exec sh -c 'mv "$1" "${1%.run}${pack_suffix}.run"' _ {} \;
packages_list=$(ls ${staging_area} | grep -E "OTB-[0-9]*.[0-9]*.[0-9]*-.*\.(run|zip)")
ls -all build_packages/
for name in $packages_list
do
len=${#name}
#add pack_suffix to the name
mv "$name" "${name:0:$len-4}${pack_suffix}${name:$len-4}"
done
# TO REMOVE
###########
ls -all build_packages/
###########
#!/bin/bash #!/bin/bash
# #
# Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES) # Copyright (C) 2005-2024 Centre National d'Etudes Spatiales (CNES)
# #
# This file is part of Orfeo Toolbox # This file is part of Orfeo Toolbox
# #
...@@ -19,70 +19,95 @@ ...@@ -19,70 +19,95 @@
# limitations under the License. # limitations under the License.
# #
# Configure git for tar.xz if [ "$CI_COMMIT_REF_NAME" = "develop" ] # check if the branch name is develop or not
git config tar.tar.xz.command "xz -c"
pack_suffix=""
if [ $1 = "develop" ] # check if the branch name is develop or not
then # we are on develop then # we are on develop
jobs_directory=/home/otbpush/test/$(date +%F) jobs_directory=/home/otbpush/test/$(date +%F)
else # we are on a release branch else # we are on a release branch
jobs_directory=/home/otbpush/test/staging jobs_directory=/home/otbpush/test/staging
if [ "$#" -eq 2 ]
then # there is a rc tag, we need a suffix for packages
pack_suffix=-$(echo "$2" | grep -o "rc[0-9]*") # this retrieve the rc number
fi
fi fi
echo "jobs_directory=${jobs_directory}" echo "jobs_directory=${jobs_directory}"
echo "pack_suffix=${pack_suffix}"
# Create today's directory on serveur otb5-vm2 # Create today's directory on serveur otb5-vm2
echo "Creating today's directory" echo "Creating today's directory"
ssh otbpush@otb5-vm2.orfeo-toolbox.org mkdir -p ${jobs_directory} ssh otbpush@otb5-vm2.orfeo-toolbox.org mkdir -p "${jobs_directory}"
# Delete latest # Delete latest
echo "Deleting latest directory" echo "Deleting latest directory"
if [ $1 = "develop" ] if [ "$CI_COMMIT_REF_NAME" = "develop" ]
then # On develop then # On develop
ssh otbpush@otb5-vm2.orfeo-toolbox.org rm -rf /home/otbpush/test/latest ssh otbpush@otb5-vm2.orfeo-toolbox.org rm -rf /home/otbpush/test/latest
# Create symilink # Create symilink
ssh otbpush@otb5-vm2.orfeo-toolbox.org ln -s ${jobs_directory} /home/otbpush/test/latest ssh otbpush@otb5-vm2.orfeo-toolbox.org ln -s "${jobs_directory}" /home/otbpush/test/latest
# Cleaning old directory # Cleaning old directory
matching_dirs=$(ls -1 | grep -oE '^20[0-9]{2}-[0-9]{2}-[0-9]{2}$' | sort) matching_dirs=$(ls -1 | grep -oE '^20[0-9]{2}-[0-9]{2}-[0-9]{2}$' | sort)
history_length=11 history_length=11
rm -rf $(echo $matching_dirs | tr ' ' '\n' | head -n -${history_length}) rm -rf "$(echo "$matching_dirs" | tr ' ' '\n' | head -n -${history_length})"
else # On release else # On release
# Remove what is inside staging area # Remove what is inside staging area
ssh otbpush@otb5-vm2.orfeo-toolbox.org rm -rf ${jobs_directory}/* ssh otbpush@otb5-vm2.orfeo-toolbox.org rm -rf "${jobs_directory}"/*
fi fi
# Remove old package and source file
echo "Removing old package and sources"
ssh otbpush@otb5-vm2.orfeo-toolbox.org \
rm "${jobs_directory}"/OTB-*.zip \
"${jobs_directory}"/OTB-*.tar.*
# Push package # Push package
echo "Renaming binary packages" echo "Pushing new binary and sources packages"
for name in $(find . -regex "./OTB-.*\(run\|zip\)"); do scp OTB-*.{tar.gz,zip} otbpush@otb5-vm2.orfeo-toolbox.org:"${jobs_directory}"/.
len=(${#name})
mv "$name" "${name:0:$len-4}${pack_suffix}${name:$len-4}"
done echo "Removing old CookBook"
ssh otbpush@otb5-vm2.orfeo-toolbox.org \
echo "Pushing binary packages" rm "${jobs_directory}"/CookBook-*-html.tar.gz
scp OTB-*.{run,zip} otbpush@otb5-vm2.orfeo-toolbox.org:${jobs_directory}/.
echo "Removing old Doxygen"
ssh otbpush@otb5-vm2.orfeo-toolbox.org \
rm "${jobs_directory}"/OTB-Doxygen-*.tar.bz2
# Push doc # Push doc
echo "Pushing documentation" echo "Pushing new documentation"
scp {CookBook-*-html.tar.gz,OTB-Doxygen-*.tar.bz2} otbpush@otb5-vm2.orfeo-toolbox.org:${jobs_directory}/. scp {CookBook-*-html.tar.gz,OTB-Doxygen-*.tar.bz2} otbpush@otb5-vm2.orfeo-toolbox.org:"${jobs_directory}"/.
# Create zip, tar.gz and tar.xy source # Create zip, tar.gz and tar.xy source
echo "Creating source tarball and zip" echo "Creating source tarball and zip"
git archive --format=zip -o OTB-sources-$CI_COMMIT_SHORT_SHA.zip HEAD git archive --format=zip -o OTB-sources-"$CI_COMMIT_SHORT_SHA".zip HEAD
git archive --format=tgz -o OTB-sources-$CI_COMMIT_SHORT_SHA.tar.gz HEAD git archive --format=tgz -o OTB-sources-"$CI_COMMIT_SHORT_SHA".tar.gz HEAD
git archive --format=tar.xz -o OTB-sources-$CI_COMMIT_SHORT_SHA.tar.xz HEAD git archive --format=tar.xz -o OTB-sources-"$CI_COMMIT_SHORT_SHA".tar.xz HEAD
# Remove old source file # Remove old source file
echo "Removing old sources" #echo "Removing old sources"
ssh otbpush@otb5-vm2.orfeo-toolbox.org \ #ssh otbpush@otb5-vm2.orfeo-toolbox.org \
rm ${jobs_directory}/OTB-sources-*.zip \ #rm "${jobs_directory}"/OTB-sources-*.zip \
${jobs_directory}/OTB-sources-*.tar.* #"${jobs_directory}"/OTB-sources-*.tar.*
# Push new source file # Push new source file
echo "Pushing new sources" echo "Pushing new sources"
scp OTB-sources-$CI_COMMIT_SHORT_SHA.* \ scp OTB-sources-"$CI_COMMIT_SHORT_SHA".* \
otbpush@otb5-vm2.orfeo-toolbox.org:${jobs_directory}/ otbpush@otb5-vm2.orfeo-toolbox.org:"${jobs_directory}"/
echo "${CI_COMMIT_SHA}" > ref.sha
echo "Pushing ref.sha"
scp ref.sha otbpush@otb5-vm2.orfeo-toolbox.org:"${jobs_directory}"/
#Untar doc
if [ "$CI_COMMIT_REF_NAME" = "develop" ]
then
#Cookbook
ssh otbpush@otb5-vm2.orfeo-toolbox.org \
tar -xf "${jobs_directory}"/CookBook-*-html.tar.gz -C "${jobs_directory}"/
ssh otbpush@otb5-vm2.orfeo-toolbox.org \
rm -rf /home/otbpush/test/CookBook/*
ssh otbpush@otb5-vm2.orfeo-toolbox.org \
mv "${jobs_directory}"/CookBook-*/* /home/otbpush/test/CookBook/.
# Doxygen
ssh otbpush@otb5-vm2.orfeo-toolbox.org \
rm -rf /home/otbpush/test/Doxygen/*
# Strip first component of the tar (Doxygen/html/...)
ssh otbpush@otb5-vm2.orfeo-toolbox.org \
tar -xf "${jobs_directory}"/OTB-Doxygen-*.tar.bz2 -C /home/otbpush/test/Doxygen/ --strip-components=1
fi