mirror of
https://github.com/status-im/status-go.git
synced 2025-01-24 21:49:54 +00:00
Jakub Sokołowski
9dd80e7f1e
Installing the SDK via Ansible is prone to error and not exactly reproduceable. This way we can also track the exact tooling version as used in Status Mobile app: https://github.com/status-im/status-mobile/blob/develop/nix/pkgs.nix Signed-off-by: Jakub Sokołowski <jakub@status.im>
73 lines
1.6 KiB
Plaintext
73 lines
1.6 KiB
Plaintext
library 'status-jenkins-lib@v1.6.4'
|
|
|
|
pipeline {
|
|
agent { label 'linux && x86_64 && go-1.18' }
|
|
|
|
parameters {
|
|
string(
|
|
name: 'BRANCH',
|
|
defaultValue: 'develop',
|
|
description: 'Name of branch to build.'
|
|
)
|
|
}
|
|
|
|
options {
|
|
timestamps()
|
|
disableConcurrentBuilds()
|
|
/* manage how many builds we keep */
|
|
buildDiscarder(logRotator(
|
|
numToKeepStr: '5',
|
|
daysToKeepStr: '30',
|
|
))
|
|
}
|
|
|
|
environment {
|
|
TARGET = 'linux'
|
|
GOPATH = "${WORKSPACE_TMP}/go"
|
|
PATH = "${PATH}:${GOPATH}/bin"
|
|
REPO_SRC = "${GOPATH}/src/github.com/status-im/status-go"
|
|
}
|
|
|
|
stages {
|
|
stage('Prep') {
|
|
steps { /* Go needs to find status-go in GOPATH. */
|
|
sh "mkdir -p \$(dirname ${REPO_SRC})"
|
|
sh "ln -s ${WORKSPACE} ${REPO_SRC}"
|
|
}
|
|
}
|
|
|
|
stage('Vendor Check') {
|
|
steps { script {
|
|
nix.shell('make install-modvendor', pure: false)
|
|
nix.shell('make vendor', pure: false)
|
|
/* fail build if vendoring hasn't been done */
|
|
nix.shell('git diff --exit-code --no-color --stat vendor/')
|
|
} }
|
|
}
|
|
|
|
|
|
stage('Lint') {
|
|
steps { script {
|
|
nix.shell('make install-lint', pure: false)
|
|
nix.shell('make lint', pure: false)
|
|
} }
|
|
}
|
|
|
|
stage('Canary') {
|
|
steps { script {
|
|
nix.shell('make canary-test', pure: false)
|
|
} }
|
|
}
|
|
|
|
stage('Unit Tests') {
|
|
steps { script {
|
|
docker.image('postgres:9.6-alpine').withRun(
|
|
'-e POSTGRES_HOST_AUTH_METHOD=trust -p 5432:5432'
|
|
) { c ->
|
|
nix.shell('make test-unit V=1', pure: false)
|
|
}
|
|
} }
|
|
}
|
|
} // stages
|
|
} // pipeline
|