adds Jenkinsfile
This commit is contained in:
parent
dc8a74d787
commit
d0a24e9946
|
@ -0,0 +1,93 @@
|
||||||
|
def getBranch() {
|
||||||
|
if (env.BRANCH_NAME != null && !env.BRANCH_NAME.isEmpty() ) {
|
||||||
|
return env.BRANCH_NAME
|
||||||
|
} else {
|
||||||
|
return 'develop'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void checkout_tgc_vp() {
|
||||||
|
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("cmake --version")
|
||||||
|
}
|
||||||
|
catch (exc) {
|
||||||
|
echo 'Conan configured'
|
||||||
|
}
|
||||||
|
sh("rm -rf TGC-VP/build")
|
||||||
|
sh("mkdir -p TGC-VP/build")
|
||||||
|
sh("cd TGC-VP && git submodule update --recursive")
|
||||||
|
sh("cmake -S . -B build && cmake --build build -j16")
|
||||||
|
fingerprint 'TGC-VP/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('Fedora28'){
|
||||||
|
agent {docker { image 'fedora28' } }
|
||||||
|
stages {
|
||||||
|
stage('Checkout on Fedora') { 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()}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue