mirror of
https://github.com/status-im/status-go.git
synced 2025-02-07 04:13:56 +00:00
f12803ec95
There are signs that test runs became unstable. Might be related to this commit. This reverts commit 9f168eaceabef14eb07bd3bed9eeaa01eab62bf8.
92 lines
2.4 KiB
Groovy
92 lines
2.4 KiB
Groovy
library 'status-jenkins-lib@v1.7.0'
|
|
|
|
pipeline {
|
|
agent { label 'linux' }
|
|
|
|
parameters {
|
|
string(
|
|
name: 'BRANCH',
|
|
defaultValue: 'develop',
|
|
description: 'Name of branch to build.'
|
|
)
|
|
booleanParam(
|
|
name: 'RELEASE',
|
|
defaultValue: false,
|
|
description: 'Enable to create a new release on GitHub and DigitalOcean Space.',
|
|
)
|
|
}
|
|
|
|
options {
|
|
/* Prevent Jenkins jobs from running forever */
|
|
timeout(time: 40, unit: 'MINUTES')
|
|
disableConcurrentBuilds()
|
|
/* Go requires a certain directory structure */
|
|
checkoutToSubdirectory('src/github.com/status-im/status-go')
|
|
/* manage how many builds we keep */
|
|
buildDiscarder(logRotator(
|
|
numToKeepStr: '5',
|
|
daysToKeepStr: '30',
|
|
))
|
|
}
|
|
|
|
environment {
|
|
REPO = "${env.WORKSPACE}/src/github.com/status-im/status-go"
|
|
GOPATH = "${env.WORKSPACE}"
|
|
PATH = "/usr/local/go/bin:${env.PATH}:${env.GOPATH}/bin"
|
|
/* This will override the var in Makefile */
|
|
RELEASE_DIR = "${env.WORKSPACE}/pkg"
|
|
}
|
|
|
|
stages {
|
|
stage('Build') {
|
|
parallel {
|
|
stage('iOS') { steps { script {
|
|
ios = jenkins.Build('status-go/platforms/ios')
|
|
} } }
|
|
stage('Android') { steps { script {
|
|
android = jenkins.Build('status-go/platforms/android')
|
|
} } }
|
|
stage('Linux') { steps { script {
|
|
linux = jenkins.Build('status-go/platforms/linux')
|
|
} } }
|
|
stage('Docker') { steps { script {
|
|
dock = jenkins.Build('status-go/platforms/docker')
|
|
} } }
|
|
} // parallel
|
|
} // stage(Build)
|
|
|
|
stage('Archive') {
|
|
steps { script {
|
|
sh "rm -fr ${env.RELEASE_DIR}"
|
|
sh "mkdir ${env.RELEASE_DIR}"
|
|
[ios, android, linux].each { platformBuild ->
|
|
jenkins.copyArts(platformBuild)
|
|
}
|
|
dir(env.RELEASE_DIR) {
|
|
/* generate sha256 checksums for upload */
|
|
sh 'sha256sum * | tee checksum.sha256'
|
|
archiveArtifacts('*')
|
|
}
|
|
} }
|
|
} // stage(Archive)
|
|
|
|
stage('Release') {
|
|
when { expression { params.RELEASE == true } }
|
|
steps { script {
|
|
dir (env.REPO) { version = utils.getVersion() }
|
|
github.publishReleaseFiles(
|
|
repo: 'status-go',
|
|
version: version,
|
|
desc: ':warning: Fill me in!',
|
|
)
|
|
} }
|
|
} // stage(Release)
|
|
} // stages
|
|
|
|
post {
|
|
always { dir(env.REPO) {
|
|
sh 'make clean-release'
|
|
} }
|
|
}
|
|
}
|