diff --git a/utils/ci/Jenkinsfile.e2e b/utils/ci/Jenkinsfile.e2e new file mode 100644 index 0000000000000000000000000000000000000000..d387f2a4550b8500c3c65e6fab7de041bdff4573 --- /dev/null +++ b/utils/ci/Jenkinsfile.e2e @@ -0,0 +1,78 @@ +/******************************************************************************** + * 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://download.eclipse.org/openpass/snapshots/opTestrunner/pytest_optestrunner-0.0.1-py3-none-any.whl', description: 'URL to download opTestrunner binaries') + string(name: 'GECCO_URL', defaultValue: 'https://ci.eclipse.org/openpass/job/gecco/job/gecco-release-handling/4/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_e2e/10_prepare.sh' + } + } + } + stage('Linux: Fetch binaries') { + steps { + container('openpass-build') { + sh 'bash repo/utils/ci/scripts_e2e/pull_gecco.sh' + sh 'bash repo/utils/ci/scripts_e2e/pull_optestrunner.sh' + // sh 'bash repo/utils/ci/scripts_e2e/pull_gtgen.sh' + sh 'bash repo/utils/ci/scripts_e2e/build_gtgen.sh' + } + } + } + stage('Linux: Run E2E') { + steps { + container('openpass-build') { + sh 'bash repo/utils/ci/scripts_e2e/55_endtoend.sh' + } + } + } + } + post { + always { + script { + sh 'bash repo/utils/ci/scripts_e2e/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' + } + } + } + } + } + } + } +} diff --git a/utils/ci/openpassAgentPod.yaml b/utils/ci/openpassAgentPod.yaml index 12ea3bcbd547a4442d2768f7a5711ac63860d065..60deee1aaae1133d445503fc3c71a00a1bdc540b 100644 --- a/utils/ci/openpassAgentPod.yaml +++ b/utils/ci/openpassAgentPod.yaml @@ -12,7 +12,7 @@ kind: Pod spec: containers: - name: openpass-build - image: "eclipseopenpass/opsim-ci:v1.2.1" + image: "eclipseopenpass/opsim-ci:v1.2.8" tty: true resources: limits: