mirror of
https://github.com/scroll-tech/scroll.git
synced 2026-01-14 08:28:02 -05:00
89 lines
3.0 KiB
Groovy
89 lines
3.0 KiB
Groovy
imagePrefix = 'scrolltech'
|
|
credentialDocker = 'dockerhub'
|
|
|
|
def boolean test_result = false
|
|
|
|
pipeline {
|
|
agent any
|
|
options {
|
|
timeout (20)
|
|
}
|
|
tools {
|
|
go 'go-1.18'
|
|
}
|
|
environment {
|
|
GO111MODULE = 'on'
|
|
// LOG_DOCKER = 'true'
|
|
}
|
|
stages {
|
|
stage('Build') {
|
|
when {
|
|
anyOf {
|
|
changeset "Jenkinsfile"
|
|
changeset "build/**"
|
|
changeset "go.work**"
|
|
changeset "bridge/**"
|
|
changeset "coordinator/**"
|
|
changeset "common/**"
|
|
changeset "database/**"
|
|
}
|
|
}
|
|
steps {
|
|
//start to build project
|
|
sh '''#!/bin/bash
|
|
export PATH=/home/ubuntu/go/bin:$PATH
|
|
make dev_docker
|
|
make -C bridge mock_abi
|
|
# check compilation
|
|
make -C bridge bridge
|
|
make -C coordinator coordinator
|
|
make -C database db_cli
|
|
# check docker build
|
|
make -C bridge docker
|
|
make -C coordinator docker
|
|
make -C database docker
|
|
'''
|
|
}
|
|
}
|
|
stage('Test') {
|
|
when {
|
|
anyOf {
|
|
changeset "Jenkinsfile"
|
|
changeset "build/**"
|
|
changeset "go.work**"
|
|
changeset "bridge/**"
|
|
changeset "coordinator/**"
|
|
changeset "common/**"
|
|
changeset "database/**"
|
|
}
|
|
}
|
|
steps {
|
|
sh "docker ps -aq | xargs -r docker stop"
|
|
sh "docker container prune -f"
|
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
|
sh '''
|
|
go test -v -race -coverprofile=coverage.txt -covermode=atomic -p 1 scroll-tech/database/...
|
|
go test -v -race -coverprofile=coverage.txt -covermode=atomic -p 1 scroll-tech/bridge/...
|
|
go test -v -race -coverprofile=coverage.txt -covermode=atomic -p 1 scroll-tech/common/...
|
|
go test -v -race -coverprofile=coverage.txt -covermode=atomic -p 1 scroll-tech/coordinator/...
|
|
cd ..
|
|
'''
|
|
script {
|
|
for (i in ['bridge', 'coordinator', 'database']) {
|
|
sh "cd $i && go test -v -race -coverprofile=coverage.txt -covermode=atomic \$(go list ./... | grep -v 'database\\|l2\\|l1\\|common\\|coordinator')"
|
|
}
|
|
}
|
|
|
|
script { test_result = true }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
post {
|
|
always {
|
|
cleanWs()
|
|
slackSend(message: "${JOB_BASE_NAME} ${GIT_COMMIT} #${BUILD_NUMBER} deploy ${currentBuild.result}")
|
|
}
|
|
}
|
|
}
|