mirror of
https://github.com/ipfs/kubo.git
synced 2025-06-30 09:59:13 +08:00
ci: Add more timeouts to the pipeline
License: MIT Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
This commit is contained in:
127
ci/Jenkinsfile
vendored
127
ci/Jenkinsfile
vendored
@ -2,6 +2,13 @@ import groovy.transform.Field
|
|||||||
|
|
||||||
/* SETTINGS */
|
/* SETTINGS */
|
||||||
|
|
||||||
|
// in minutes
|
||||||
|
def global_timeout = 30
|
||||||
|
def sharness_timeout = 15
|
||||||
|
def gotest_timeout = 10
|
||||||
|
def build_timeout = 20
|
||||||
|
def check_timeout = 4
|
||||||
|
|
||||||
def test = 'go test -v ./...'
|
def test = 'go test -v ./...'
|
||||||
|
|
||||||
def fast_build_platforms = [
|
def fast_build_platforms = [
|
||||||
@ -64,21 +71,27 @@ def gobuild_step(list) {
|
|||||||
|
|
||||||
/* PIPELINE */
|
/* PIPELINE */
|
||||||
|
|
||||||
ansiColor('xterm') { withEnv(['TERM=xterm-color']) { timeout(time: 30, unit: 'MINUTES') {
|
ansiColor('xterm') { withEnv(['TERM=xterm-color']) { timeout(time: global_timeout, unit: 'MINUTES') {
|
||||||
stage('Checks') {
|
stage('Checks') {
|
||||||
parallel(
|
parallel(
|
||||||
'go fmt': {
|
'go fmt': {
|
||||||
setupStep('linux') { run ->
|
setupStep('linux') { run ->
|
||||||
run 'make test_go_fmt'
|
timeout(time: check_timeout, unit: 'MINUTES') {
|
||||||
|
run 'make test_go_fmt'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'go vet': {
|
'go vet': {
|
||||||
setupStep('linux') { run ->
|
setupStep('linux') { run ->
|
||||||
run 'go vet ./...'
|
timeout(time: check_timeout, unit: 'MINUTES') {
|
||||||
|
run 'go vet ./...'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'go build': {
|
'go build': {
|
||||||
gobuild_step(fast_build_platforms)
|
timeout(time: check_timeout, unit: 'MINUTES') {
|
||||||
|
gobuild_step(fast_build_platforms)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -86,81 +99,93 @@ ansiColor('xterm') { withEnv(['TERM=xterm-color']) { timeout(time: 30, unit: 'MI
|
|||||||
stage('Tests') {
|
stage('Tests') {
|
||||||
parallel(
|
parallel(
|
||||||
'go build (other platforms)': {
|
'go build (other platforms)': {
|
||||||
gobuild_step(build_platforms)
|
timeout(time: build_timeout, unit: 'MINUTES') {
|
||||||
|
gobuild_step(build_platforms)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
windows: {
|
windows: {
|
||||||
setupStep('windows') { run ->
|
setupStep('windows') { run ->
|
||||||
run 'go get -v github.com/jstemmer/go-junit-report github.com/whyrusleeping/gx github.com/whyrusleeping/gx-go'
|
timeout(time: gotest_timeout, unit: 'MINUTES') {
|
||||||
run "gx install --global"
|
run 'go get -v github.com/jstemmer/go-junit-report github.com/whyrusleeping/gx github.com/whyrusleeping/gx-go'
|
||||||
|
run "gx install --global"
|
||||||
|
|
||||||
try {
|
try {
|
||||||
run test + ' -tags="nofuse" > output & type output'
|
run test + ' -tags="nofuse" > output & type output'
|
||||||
run 'type output | go-junit-report > junit-report-windows.xml'
|
run 'type output | go-junit-report > junit-report-windows.xml'
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
throw err
|
throw err
|
||||||
} finally {
|
} finally {
|
||||||
/* IGNORE TEST FAILS */
|
/* IGNORE TEST FAILS */
|
||||||
/* junit allowEmptyResults: true, testResults: 'junit-report-*.xml' */
|
/* junit allowEmptyResults: true, testResults: 'junit-report-*.xml' */
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
linux: {
|
linux: {
|
||||||
setupStep('linux') { run ->
|
setupStep('linux') { run ->
|
||||||
run 'go get -v github.com/jstemmer/go-junit-report'
|
timeout(time: gotest_timeout, unit: 'MINUTES') {
|
||||||
run "make gx-deps"
|
run 'go get -v github.com/jstemmer/go-junit-report'
|
||||||
|
run "make gx-deps"
|
||||||
|
|
||||||
try {
|
try {
|
||||||
run test + ' -tags="nofuse" 2>&1 | tee output'
|
run test + ' -tags="nofuse" 2>&1 | tee output'
|
||||||
run 'cat output | go-junit-report > junit-report-linux.xml'
|
run 'cat output | go-junit-report > junit-report-linux.xml'
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
throw err
|
throw err
|
||||||
} finally {
|
} finally {
|
||||||
junit allowEmptyResults: true, testResults: 'junit-report-*.xml'
|
junit allowEmptyResults: true, testResults: 'junit-report-*.xml'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
linuxSharness: {
|
linuxSharness: {
|
||||||
setupStep('linux') { run ->
|
setupStep('linux') { run ->
|
||||||
run 'go get -v github.com/jstemmer/go-junit-report'
|
timeout(time: sharness_timeout, unit: 'MINUTES') {
|
||||||
run "make gx-deps"
|
run 'go get -v github.com/jstemmer/go-junit-report'
|
||||||
|
run "make gx-deps"
|
||||||
|
|
||||||
try {
|
try {
|
||||||
run "make -j12 -Otarget test/sharness/test-results/sharness.xml CONTINUE_ON_S_FAILURE=1 TEST_NO_FUSE=1 TEST_NO_DOCKER=1"
|
run "make -j12 -Otarget test/sharness/test-results/sharness.xml CONTINUE_ON_S_FAILURE=1 TEST_NO_FUSE=1 TEST_NO_DOCKER=1"
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
throw err
|
throw err
|
||||||
} finally {
|
} finally {
|
||||||
junit allowEmptyResults: true, testResults: 'test/sharness/test-results/sharness.xml'
|
junit allowEmptyResults: true, testResults: 'test/sharness/test-results/sharness.xml'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
macOS: {
|
macOS: {
|
||||||
setupStep('macos') { run ->
|
setupStep('macos') { run ->
|
||||||
run 'go get -v github.com/jstemmer/go-junit-report'
|
timeout(time: gotest_timeout, unit: 'MINUTES') {
|
||||||
run "make gx-deps"
|
run 'go get -v github.com/jstemmer/go-junit-report'
|
||||||
|
run "make gx-deps"
|
||||||
|
|
||||||
try {
|
try {
|
||||||
run test + ' -tags="nofuse" 2>&1 | tee output'
|
run test + ' -tags="nofuse" 2>&1 | tee output'
|
||||||
run 'cat output | go-junit-report > junit-report-macos.xml'
|
run 'cat output | go-junit-report > junit-report-macos.xml'
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
throw err
|
throw err
|
||||||
} finally {
|
} finally {
|
||||||
/* IGNORE TEST FAILS */
|
/* IGNORE TEST FAILS */
|
||||||
/* junit 'junit-report-*.xml' */
|
/* junit 'junit-report-*.xml' */
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
macSharness: {
|
macSharness: {
|
||||||
setupStep('macos') { run ->
|
setupStep('macos') { run ->
|
||||||
run 'go get -v github.com/jstemmer/go-junit-report'
|
timeout(time: sharness_timeout, unit: 'MINUTES') {
|
||||||
run "make gx-deps"
|
run 'go get -v github.com/jstemmer/go-junit-report'
|
||||||
|
run "make gx-deps"
|
||||||
|
|
||||||
try {
|
try {
|
||||||
run "make -j12 test/sharness/test-results/sharness.xml CONTINUE_ON_S_FAILURE=1 TEST_NO_FUSE=1"
|
run "make -j12 test/sharness/test-results/sharness.xml CONTINUE_ON_S_FAILURE=1 TEST_NO_FUSE=1"
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
throw err
|
throw err
|
||||||
} finally {
|
} finally {
|
||||||
/* IGNORE TEST FAILS */
|
/* IGNORE TEST FAILS */
|
||||||
/* junit allowEmptyResults: true, testResults: 'test/sharness/test-results/sharness.xml' */
|
/* junit allowEmptyResults: true, testResults: 'test/sharness/test-results/sharness.xml' */
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
Reference in New Issue
Block a user