diff options
Diffstat (limited to 'Jenkinsfile')
| -rw-r--r-- | Jenkinsfile | 104 | 
1 files changed, 51 insertions, 53 deletions
| diff --git a/Jenkinsfile b/Jenkinsfile index c95b0eb..2d8d7da 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,56 +1,54 @@ -pipeline { -	agent { label 'c++20' } -	stages { -		stage('Clean') { -			steps { -				echo 'Cleaning workspace ...' -				sh 'rm -Rf build*' -			} -		} -		stage('Build-gcc') { -			steps { -				echo 'Building (gcc) ...' -				sh 'BUILDDIR=build-gcc CXX=g++ ./bootstrap.sh' -			} -		} -		stage('Test-gcc') { -			steps { -				echo 'Testing (gcc) ...' -				sh './ctor check' -			} -		} -		stage('Test-suite-gcc') { -			steps { -				echo 'Testing suite (gcc) ...' -				sh '(cd test/suite; CTORDIR=../../build-gcc CXX=g++ ./test.sh)' -			} -		} -		stage('Build-clang') { -			steps { -				echo 'Building (clang) ...' -				sh 'BUILDDIR=build-clang CXX=clang++ ./bootstrap.sh' -			} -		} -		stage('Test-clang') { -			steps { -				echo 'Testing (clang) ...' -				sh './ctor check' -			} -		} -		stage('Test-suite-clang') { -			steps { -				echo 'Testing suite (clang) ...' -				sh '(cd test/suite; CTORDIR=../../build-clang CXX=clang++ ./test.sh)' -			} -		} -	} -	post { -		always { -			xunit(thresholds: [ skipped(failureThreshold: '0'), -			                    failed(failureThreshold: '0') ], -			      tools: [ CppUnit(pattern: 'build-*/test/*.xml') ]) -		} -	} +matrix { +    axes { +        axis { +            name 'PLATFORM' +            values 'linux', 'mac', 'windows' +        } +        axis { +            name 'BROWSER' +            values 'chrome', 'edge', 'firefox', 'safari' +        } +        axis { +            name 'ARCHITECTURE' +            values '32-bit', '64-bit' +        } +    } +    excludes { +        exclude { +            // 4 cells +            axis { +                name 'PLATFORM' +                values 'mac' +            } +            axis { +                name 'ARCHITECTURE' +                values '32-bit' +            } +        } +        exclude { +            // 2 cells +            axis { +                name 'PLATFORM' +                values 'linux' +            } +            axis { +                name 'BROWSER' +                values 'safari' +            } +        } +        exclude { +            // 3 more cells and '32-bit, mac' (already excluded) +            axis { +                name 'PLATFORM' +                notValues 'windows' +            } +            axis { +                name 'BROWSER' +                values 'edge' +            } +        } +    }  } + | 
