diff --git a/utils/ci/Jenkinsfile.e2e b/utils/ci/Jenkinsfile.e2e new file mode 100644 index 0000000000000000000000000000000000000000..e9a4f3ee363f319f11b8012a2ce6332b32af78fd --- /dev/null +++ b/utils/ci/Jenkinsfile.e2e @@ -0,0 +1,79 @@ +/******************************************************************************** + * Copyright (c) 2025 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + ********************************************************************************/ + +pipeline { + agent none + parameters { + string(name: 'OPTESTRUNNER_URL', defaultValue: 'https://ci.eclipse.org/openpass/job/opTestrunner/job/add-invocations-random-seed/1/artifact/repo/plugin/optestrunner/dist/pytest_optestrunner-1.1-py3-none-any.whl', description: 'URL to download opTestrunner binaries') + string(name: 'GECCO_URL', defaultValue: 'https://ci.eclipse.org/openpass/job/gecco/view/change-requests/job/MR-4/3/artifact/artifacts/gecco.tar.gz', description: 'URL to download gecco binaries') + string(name: 'GTGEN_CLI_URL', defaultValue: 'https://ci.eclipse.org/openpass/job/GT-Gen-Simulator-PreMerge-Gate/view/tags/job/v11.3.0/lastSuccessfulBuild/artifact/artifacts/gtgen-cli_1.1.0_amd64.deb', description: 'URL to download gtgen cli binaries') + string(name: 'GTGEN_SIM_URL', defaultValue: 'https://ci.eclipse.org/openpass/job/GT-Gen-Simulator-PreMerge-Gate/view/tags/job/v11.3.0/lastSuccessfulBuild/artifact/artifacts/gtgen-simulator_11.3.0_amd64.deb', description: 'URL to download gtgen simulator binaries') + } + options { + checkoutToSubdirectory('repo') + timeout(time: 10, unit: 'HOURS') + timestamps() + disableConcurrentBuilds(abortPrevious: true) + buildDiscarder(logRotator(numToKeepStr: '10', artifactNumToKeepStr: '2')) + } + stages { + stage('Run E2E tests') { + parallel { + stage('Linux') { + agent { + kubernetes { + customWorkspace 'ope2e' + yamlFile 'utils/ci/openpassAgentPod.yaml' + } + } + environment { + PYTHON_EXECUTABLE = 'python3' + } + stages { + stage('Linux: Cleanup') { + steps { + container('openpass-build') { + sh 'bash repo/utils/ci/scripts/10_prepare.sh' + } + } + } + stage('Linux: Fetch binaries') { + steps { + container('openpass-build') { + sh 'bash repo/utils/ci/scripts/pull_gecco.sh' + sh 'bash repo/utils/ci/scripts/pull_optestrunner.sh' + // sh 'bash repo/utils/ci/scripts/pull_gtgen.sh' + sh 'bash repo/utils/ci/scripts/build_gtgen.sh' + } + } + } + stage('Linux: Run E2E') { + steps { + container('openpass-build') { + sh 'bash repo/utils/ci/scripts/run_gtgen.sh' + sh 'bash repo/utils/ci/scripts/55_endtoend.sh' + } + } + } + } + post { + always { + script { + sh 'bash repo/utils/ci/scripts/90_pack_artifacts.sh' + archiveArtifacts allowEmptyArchive: true, artifacts: 'artifacts/**', followSymlinks: false + junit allowEmptyResults: true, testResults: 'build/**/*Tests.xml,repo/sim/tests/endToEndTests/pyOpenPASS/result_*.xml' + } + } + } + } + } + } + } +}