mirror of
https://github.com/Minres/RISCV-VP.git
synced 2025-12-17 08:51:35 +00:00
initial version
This commit is contained in:
109
Jenkinsfile
vendored
Normal file
109
Jenkinsfile
vendored
Normal file
@@ -0,0 +1,109 @@
|
||||
def getBranch() {
|
||||
if (env.BRANCH_NAME != null && !env.BRANCH_NAME.isEmpty() ) {
|
||||
return env.BRANCH_NAME
|
||||
} else {
|
||||
return 'develop'
|
||||
}
|
||||
}
|
||||
|
||||
void checkout_tgc_vp() {
|
||||
sh("rm -rf *")
|
||||
checkout([
|
||||
$class: 'GitSCM',
|
||||
branches: [
|
||||
[name: 'refs/heads/' + getBranch()]
|
||||
],
|
||||
extensions: [
|
||||
[$class: 'CleanBeforeCheckout'],
|
||||
[$class: 'SubmoduleOption',
|
||||
disableSubmodules: false,
|
||||
recursiveSubmodules: true,
|
||||
trackingSubmodules: false,
|
||||
parentCredentials: true,
|
||||
shallow: true
|
||||
]
|
||||
],
|
||||
submoduleCfg: [],
|
||||
userRemoteConfigs: [
|
||||
[url: 'https://github.com/Minres/TGC-VP.git']
|
||||
]
|
||||
])
|
||||
}
|
||||
|
||||
void build_tgc_vp() {
|
||||
try {
|
||||
sh("conan profile new default --detect --force")
|
||||
sh("conan profile update settings.compiler.libcxx=libstdc++11 default")
|
||||
sh("conan remote add minres https://git.minres.com/api/packages/Tooling/conan --force")
|
||||
sh("conan --version && cmake --version")
|
||||
}
|
||||
catch (exc) {
|
||||
echo 'Conan configured'
|
||||
}
|
||||
sh("rm -rf build")
|
||||
sh("git submodule update --recursive")
|
||||
sh("cmake -S . -B build -DWITH_TCC=OFF && cmake --build build -j16")
|
||||
fingerprint 'build/src/tgc-vp'
|
||||
}
|
||||
|
||||
pipeline {
|
||||
agent none
|
||||
|
||||
options {
|
||||
// using the Timestamper plugin we can add timestamps to the console log
|
||||
timestamps()
|
||||
skipStagesAfterUnstable()
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('TGC-VP pipeline') {
|
||||
parallel {
|
||||
stage('ubuntu20'){
|
||||
agent {docker { image 'ubuntu-20.04' } }
|
||||
stages {
|
||||
stage('Checkout on Ubuntu20.04') { steps { checkout_tgc_vp() }}
|
||||
stage('Build') { steps { build_tgc_vp() } }
|
||||
}
|
||||
}
|
||||
stage('ubuntu22'){
|
||||
agent {docker { image 'ubuntu-22.04' } }
|
||||
stages {
|
||||
stage('Checkout on Ubuntu22.04') { steps { checkout_tgc_vp() }}
|
||||
stage('Build') { steps { build_tgc_vp() } }
|
||||
}
|
||||
}
|
||||
stage('CentOS7'){
|
||||
agent {docker { image 'centos7' } }
|
||||
stages {
|
||||
stage('Checkout on Ubuntu') { steps {checkout_tgc_vp()}}
|
||||
stage('Build') { steps {build_tgc_vp()}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('RockyLinux8'){
|
||||
agent {docker { image 'rockylinux8' } }
|
||||
stages {
|
||||
stage('Checkout on Ubuntu') { steps {checkout_tgc_vp()}}
|
||||
stage('Build') { steps {build_tgc_vp()}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
post {
|
||||
success {
|
||||
rocketSend ":thumbsup: TGC-VP verification run passed, results at ${env.RUN_DISPLAY_URL} "
|
||||
}
|
||||
failure {
|
||||
archiveArtifacts artifacts: 'failed_seeds_*.txt', followSymlinks: false, onlyIfSuccessful: false
|
||||
rocketSend ":thumbsdown: TGC-VP verification failed, please check ${env.RUN_DISPLAY_URL} "
|
||||
emailext recipientProviders: [culprits(), requestor()],
|
||||
subject: "TGC-VP Pipeline Failed: ${currentBuild.fullDisplayName}",
|
||||
body: """
|
||||
<p>Build Status: ${currentBuild.currentResult}</p>
|
||||
<p> Check logs at <a href='${env.BUILD_URL}console'> Build Console Logs </a> or at <a href='${env.RUN_DISPLAY_URL}'> Overview </a></p>
|
||||
"""
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user