#!/usr/bin/env groovy library 'status-jenkins-lib@v1.8.10' pipeline { agent { label 'linux && x86_64 && nix-2.14' } parameters { string( name: 'BRANCH', defaultValue: 'develop', description: 'Name of branch to build.' ) booleanParam( name: 'RELEASE', defaultValue: false, description: 'Enable to create build for release.', ) } options { timestamps() /* Prevent Jenkins jobs from running forever */ timeout(time: 10, unit: 'MINUTES') disableConcurrentBuilds() /* manage how many builds we keep */ buildDiscarder(logRotator( numToKeepStr: '5', daysToKeepStr: '30', artifactNumToKeepStr: '1', )) } environment { PLATFORM = 'linux' TMPDIR = "${WORKSPACE_TMP}" GOPATH = "${WORKSPACE_TMP}/go" GOCACHE = "${WORKSPACE_TMP}/gocache" PATH = "${PATH}:${GOPATH}/bin" REPO_SRC = "${GOPATH}/src/github.com/status-im/status-go" ARTIFACT = utils.pkgFilename(name: "status-go", type: "desktop", ext: "zip", version: null) } stages { stage('Setup') { steps { /* Go needs to find status-go in GOPATH. */ sh "mkdir -p \$(dirname ${REPO_SRC})" sh "ln -s ${WORKSPACE} ${REPO_SRC}" } } /* Sanity-check C bindings */ stage('Build Static Lib') { steps { script { nix.shell('make statusgo-library', pure: false) } } } stage('Build Shared Lib') { steps { script { nix.shell('make statusgo-shared-library', pure: false) } } } stage('Archive') { steps { sh "zip -q -r ${ARTIFACT} build/bin" archiveArtifacts(ARTIFACT) } } stage('Upload') { steps { script { env.PKG_URL = s3.uploadArtifact(ARTIFACT) } } } } // stages post { success { script { github.notifyPR(true) } } failure { script { github.notifyPR(false) } } cleanup { sh 'make deep-clean' } } // post } // pipeline