void checkout_project(String repoUrl, String branch = 'develop') { checkout([ $class: 'GitSCM', branches: [ [name: "*/${branch}"] ], extensions: [ [$class: 'CleanBeforeCheckout'], [$class: 'SubmoduleOption', disableSubmodules: false, parentCredentials: true, recursiveSubmodules: true, reference: '', trackingSubmodules: false] ], submoduleCfg: [], userRemoteConfigs: [ [credentialsId: 'gitea-jenkins', url: repoUrl] ] ]) } pipeline { agent { docker { image 'git.minres.com/tooling/riscof_sail:latest' args ' -e CONAN_USER_HOME=/var/jenkins_home/workspace/riscof_sail' } } stages { stage("Checkout TGC-ISS"){ steps { checkout_project("https://git.minres.com/TGFS/TGC-ISS.git", "develop") } } stage("build TGC-ISS"){ steps { sh 'conan profile new default --detect --force ' sh 'cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DWITH_ASMJIT=ON -DWITH_TCC=ON -DWITH_LLVM=ON' sh 'cmake --build build -j' } } stage("Checkout TGC-Compliance"){ steps { dir("TGC-COMPLIANCE"){ checkout_project("https://git.minres.com/TGFS/TGC-COMPLIANCE.git", "master") } } } stage("Test backends"){ parallel { stage("Test interp") { steps { sh "mkdir interp" sh "python3 TGC-COMPLIANCE/run_act.py -core TGC5C -sim build/dbt-rise-tgc/tgc-sim -w interp --dockerless --backend interp" } } stage("Test tcc") { steps { sh "mkdir tcc" sh "python3 TGC-COMPLIANCE/run_act.py -core TGC5C -sim build/dbt-rise-tgc/tgc-sim -w tcc --dockerless --backend tcc" } } stage("Test asmjit") { steps { sh "mkdir asmjit" sh "python3 TGC-COMPLIANCE/run_act.py -core TGC5C -sim build/dbt-rise-tgc/tgc-sim -w asmjit --dockerless --backend asmjit" } } stage("Test llvm") { steps { sh "mkdir llvm" sh "python3 TGC-COMPLIANCE/run_act.py -core TGC5C -sim build/dbt-rise-tgc/tgc-sim -w llvm --dockerless --backend llvm" } } } } } }