Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #41260 from qgis/test-focal
Update test base image and move CI to Github workflow
  • Loading branch information
nyalldawson committed Feb 8, 2021
2 parents e533b26 + 721c3c5 commit 5a46dee
Show file tree
Hide file tree
Showing 169 changed files with 4,094 additions and 5,308 deletions.
28 changes: 9 additions & 19 deletions .ci/travis/travis.ctest → .ci/config.ctest
Expand Up @@ -5,19 +5,10 @@ SET (CTEST_BINARY_DIRECTORY $ENV{CTEST_BUILD_DIR}/build)

SET (CTEST_CMAKE_COMMAND "cmake")
SET (CTEST_BUILD_COMMAND $ENV{CTEST_BUILD_COMMAND})
SET (CTEST_SITE "travis-ci.org")
IF ($ENV{TRAVIS_PULL_REQUEST} STREQUAL "false")
# No pull request
SET (CTEST_BUILD_NAME "$ENV{TRAVIS_BRANCH} ($ENV{BUILD}) ($ENV{TRAVIS_COMMIT})")
ELSE()
SET (CTEST_BUILD_NAME "PR: $ENV{TRAVIS_PULL_REQUEST} / $ENV{TRAVIS_BRANCH} ($ENV{BUILD}) ($ENV{TRAVIS_COMMIT})")
ENDIF()
SET (CTEST_SITE "github.com")
SET (CTEST_BUILD_NAME "$ENV{CTEST_BUILD_NAME}")
SET (CTEST_BUILD_CONFIGURATION "Release")
IF ($ENV{TRAVIS_CONFIG} STREQUAL "code_layout")
SET (CTEST_TEST_TIMEOUT 600) # 600 seconds, spelling test might take some time
ELSE()
SET (CTEST_TEST_TIMEOUT 60) # 60 seconds
ENDIF()
SET (CTEST_TEST_TIMEOUT 60) # 60 seconds
IF(DEFINED ENV{CTEST_PARALLEL_LEVEL})
SET(PARALLEL_LEVEL $ENV{CTEST_PARALLEL_LEVEL})
ELSE(DEFINED ENV{CTEST_PARALLEL_LEVEL})
Expand Down Expand Up @@ -61,10 +52,10 @@ ctest_start(Experimental)
ctest_build (BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE BUILDRES NUMBER_WARNINGS NUMWARN NUMBER_ERRORS NUMERR)

# Create link to test results
# CDash on OTB requires the date to be set for the search to work and that's the timezone this requires
SET(ENV{TZ} "UTC-6")
# CDash on OTB requires the date to be set for the search to work (used to be UTC-6, seems to be UTC now)
SET(ENV{TZ} "UTC")
EXECUTE_PROCESS(COMMAND date +%Y-%m-%d OUTPUT_VARIABLE CDASH_DATE)
SET(RESULT_LINK "http://cdash.orfeo-toolbox.org/index.php?project=QGIS&filtercount=1&showfilters=1&field1=buildname/string&compare1=63&value1=$ENV{TRAVIS_COMMIT}&date=${CDASH_DATE}")
SET(RESULT_LINK "http://cdash.orfeo-toolbox.org/index.php?project=QGIS&filtercount=1&showfilters=1&field1=buildname/string&compare1=63&value1=$ENV{CTEST_BUILD_NAME}&date=${CDASH_DATE}")
EXECUTE_PROCESS(COMMAND curl --data-urlencode "url=${RESULT_LINK}" -s http://tinyurl.com/api-create.php
OUTPUT_VARIABLE SHORTURL)

Expand All @@ -73,8 +64,7 @@ IF(NOT IGNORE_BUILD_FAILURES)
IF(NOT ${BUILDRES} EQUAL 0 OR NOT ${NUMERR} EQUAL 0)
ctest_submit (RETRY_COUNT 3 RETRY_DELAY 30)
MESSAGE("")
MESSAGE(" ${Yellow}Test results submitted to${ColorReset}")
MESSAGE(" ${BoldYellow}${SHORTURL}${ColorReset}")
MESSAGE(" ${Yellow}Test results submitted to:${ColorReset} ${SHORTURL}")
MESSAGE("")
MESSAGE( FATAL_ERROR " ${Red}Build failed. Not running tests.${ColorReset}" )
MESSAGE("")
Expand All @@ -84,8 +74,7 @@ ctest_test (BUILD "${CTEST_BINARY_DIRECTORY}" PARALLEL_LEVEL ${PARALLEL_LEVEL} R
IF(NOT ${NUMWARN} EQUAL 0 OR NOT ${TESTRES} EQUAL 0)
ctest_submit (RETRY_COUNT 3 RETRY_DELAY 30)
MESSAGE("")
MESSAGE(" ${Yellow}Test results submitted to${ColorReset}")
MESSAGE(" ${BoldYellow}${SHORTURL}${ColorReset}" )
MESSAGE(" ${Yellow}Test results submitted to:${ColorReset} ${SHORTURL}" )
MESSAGE("")
SET(LEVEL "")
IF(NOT ${TESTRES} EQUAL 0)
Expand All @@ -106,4 +95,5 @@ IF(NOT ${TESTRES} EQUAL 0)
MESSAGE(" ${BoldGreen}Success${ColorReset}")
MESSAGE(" ${Green}All tests passed successfully.${ColorReset}")
MESSAGE("")
MESSAGE("")
ENDIF(NOT ${TESTRES} EQUAL 0)
20 changes: 11 additions & 9 deletions .ci/travis/scripts/ctest2travis.py → .ci/ctest2ci.py
Expand Up @@ -3,7 +3,7 @@

"""
***************************************************************************
ctest2travis.py
ctest2ci.py
---------------------
Date : March 2017
Copyright : (C) 2017 by Matthias Kuhn
Expand All @@ -27,30 +27,28 @@
# This script parses output from ctest and injects
#
# - Colors for failing unit tests and test cases
#
# - `travis_fold` control sequences to hide uninteresting output by default
# - Group control sequences to hide uninteresting output by default

import sys
import re
import shlex
import subprocess
from termcolor import colored

fold_stack = list()


def start_fold(tag):
sys.stdout.write('travis_fold:start:{}\n'.format(tag))
sys.stdout.write('::group::{}\n'.format(tag))
fold_stack.append(tag)


def end_fold():
try:
tag = fold_stack.pop()
sys.stdout.write('travis_fold:end:{}\n'.format(tag))
sys.stdout.write('::endgroup::\n')
except IndexError:
updated_line = colored("======================", 'magenta')
updated_line += colored("ctest2travis error when processing the following line:", 'magenta')
updated_line += colored("ctest2ci error when processing the following line:", 'magenta')
updated_line += colored("----------------------", 'magenta')
updated_line += colored(updated_line, 'magenta')
updated_line += colored("----------------------", 'magenta')
Expand All @@ -63,7 +61,7 @@ def end_fold():

def start_test_fold():
global test_count
sys.stdout.write('Running tests')
sys.stdout.write('Running tests\n')
start_fold('test.{}'.format(test_count))
test_count += 1

Expand All @@ -80,7 +78,7 @@ def start_test_fold():
updated_line = '{title}\n{line}'.format(title=colored('Running tests...', 'yellow', attrs=['bold']),
line=updated_line)

elif re.match('Test project /home/travis/build/qgis/QGIS/build', updated_line):
elif re.match('Test project /home/runner/QGIS/QGIS/build', updated_line):
end_fold() # tag=build
start_test_fold()

Expand Down Expand Up @@ -110,6 +108,8 @@ def start_test_fold():
in_failure = True

if not in_failing_test and re.search('[0-9]+% tests passed, [0-9]+ tests failed out of', updated_line):
tests_failing = re.match(r'.* ([0-9]+) tests failed', updated_line).group(1)
updated_line += '\n::set-output name=TESTS_FAILING::{}'.format(tests_failing)
end_fold()

if re.search('100% tests passed', updated_line):
Expand All @@ -118,6 +118,8 @@ def start_test_fold():
if re.match('Submit files', updated_line):
start_fold('submit')
elif re.search('Test results submitted to', updated_line):
cdash_url = re.match(r'.*(http.*)$', updated_line).group(1)
updated_line += '\n::set-output name=CDASH_URL::{}'.format(cdash_url)
end_fold()

sys.stdout.write(updated_line)
Expand Down
File renamed without changes.
Expand Up @@ -11,7 +11,6 @@ qgis_sip_include
qgis_sip_uptodate

# Need a local postgres installation
PyQgsAuthManagerPKIPostgresTest
PyQgsAuthManagerOgrPostgresTest
PyQgsDbManagerPostgis

Expand All @@ -24,5 +23,7 @@ qgis_layerdefinition
# MSSQL requires the MSSQL docker
PyQgsProviderConnectionMssql

# Broken - segfaults on Travis, likely due to a real issue in the server code
# PyQgsServerWMSGetPrint
# Oracle image is temporarily disabled in the Github Actions builds
PyQgsOracleProvider


Expand Up @@ -7,6 +7,3 @@ qgis_ziplayertest
# Flaky, the ms odbc driver crashes a lot on the ubuntu docker image. Retest when
# the docker base image is upgraded
PyQgsMssqlProvider

# Flaky
PyQgsPostgresRasterProvider
21 changes: 0 additions & 21 deletions .ci/travis/code_layout/before_install.sh

This file was deleted.

15 changes: 0 additions & 15 deletions .ci/travis/code_layout/before_script.sh

This file was deleted.

24 changes: 0 additions & 24 deletions .ci/travis/code_layout/install.sh

This file was deleted.

25 changes: 0 additions & 25 deletions .ci/travis/code_layout/script.sh

This file was deleted.

16 changes: 0 additions & 16 deletions .ci/travis/linux/before_install.sh

This file was deleted.

45 changes: 0 additions & 45 deletions .ci/travis/linux/before_script.sh

This file was deleted.

31 changes: 0 additions & 31 deletions .ci/travis/linux/docker-variables.env

This file was deleted.

18 changes: 0 additions & 18 deletions .ci/travis/linux/install.sh

This file was deleted.

0 comments on commit 5a46dee

Please sign in to comment.