#!/usr/bin/env groovy library 'status-jenkins-lib@v1.9.6' pipeline { agent { label 'linux && x86_64 && nix-2.19' } parameters { string( name: 'BRANCH', defaultValue: 'develop', description: 'Name of branch to build.' ) booleanParam( name: 'INTEGRATION_TESTS_REPORT_CODECOV', defaultValue: true, description: 'Should the job report test coverage to Codecov?' ) } options { timestamps() /* Prevent Jenkins jobs from running forever */ timeout(time: 30, unit: 'MINUTES') disableConcurrentBuilds() /* manage how many builds we keep */ buildDiscarder(logRotator( numToKeepStr: '5', daysToKeepStr: '30', artifactNumToKeepStr: '1', )) } environment { PLATFORM = 'tests-rpc' PKG_URL = "${currentBuild.absoluteUrl}/consoleText" /* Hack-fix for params not being set in env on first job run. */ BRANCH = "${params.BRANCH}" INTEGRATION_TESTS_REPORT_CODECOV = "${params.INTEGRATION_TESTS_REPORT_CODECOV}" } stages { stage('RPC Tests') { steps { script { withCredentials([ string( credentialsId: 'codecov-repository-upload-token', variable: 'CODECOV_TOKEN' ), ]) { nix.shell('make run-integration-tests', pure: false) } } } } } // stages post { always { script { archiveArtifacts( artifacts: 'integration-tests/reports/*.xml, integration-tests/*.log, integration-tests/coverage/coverage.html', allowEmptyArchive: true, ) junit( testResults: 'integration-tests/reports/*.xml', skipOldReports: true, skipPublishingChecks: true, skipMarkingBuildUnstable: true, ) } } success { script { github.notifyPR(true) } } failure { script { github.notifyPR(false) } } cleanup { sh 'make git-clean' } } // post } // pipeline