Удалён Jenkins pipeline.
All checks were successful
build / build_windows (push) Successful in 33s
build / build (push) Successful in 41s

This commit is contained in:
Алексей Бадяев 2024-10-12 16:20:03 +07:00
parent 506ce529ac
commit 950aecc036
Signed by: alexey
GPG Key ID: 686FBC1363E4AFAE

226
build/ci/Jenkinsfile vendored
View File

@ -1,226 +0,0 @@
// MouseSoft Draw.io Export jenkins declarative pipeline
pipeline {
agent { label 'go' }
options {
ansiColor('css')
timestamps()
buildDiscarder(logRotator(numToKeepStr: '10'))
skipDefaultCheckout()
timeout(time: 8, unit: 'MINUTES', activity: true)
}
environment {
PROJECT_OWNER = 'ms'
PROJECT_ID = 'drawio-export'
PROJECT_NAME = 'MouseSoft Draw.IO Export'
ROCKET_TITLE = "${currentBuild.fullDisplayName} (<${env.BUILD_URL}|Open>)"
RELEASE_ID = 0
}
stages {
stage('Build') {
parallel {
stage('Build Linux') {
steps {
echo "***** BUILD ${PROJECT_NAME} on Linux *****"
msSendRocketChat("${ROCKET_TITLE}", msBuildInfo(currentBuild), 'black')
cleanWs(disableDeferredWipeout: true, deleteDirs: true)
checkout scm
sh '''#!/bin/bash
make clean vendor lint build dist doc
'''
}
}
stage('Build Windows') {
agent{ label 'windows' }
environment {
GO_OPT = ' '
CGO_ENABLED = 0
}
steps {
echo "***** BUILD ${PROJECT_NAME} on Windows *****"
cleanWs(disableDeferredWipeout: true, deleteDirs: true)
catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') {
checkout scm
bat 'make clean vendor build dist'
}
}
post {
always {
script {
if (getContext(hudson.FilePath)) {
archiveArtifacts (
artifacts: 'out/*.zip,out/*.msi',
allowEmptyArchive: true,
fingerprint: true,
onlyIfSuccessful: true,
)
}
}
}
}
}
}
}
stage('Test') {
environment {
EXPORT_RESULT = true
COVERAGE_FORMAT = 'xml'
}
steps {
echo "===== TEST ${PROJECT_NAME} ====="
sh '''#!/bin/bash
make test coverage
'''
}
}
stage('Doc') {
when { anyOf {
branch 'main'
branch 'develop'
branch 'release/*'
branch 'support/*'
tag 'v*'
} }
environment {
DOC_FORMAT = 'pdf'
}
steps {
echo "===== MAKE ${PROJECT_NAME} Documentation ====="
sh '''#!/bin/bash
make doc
'''
}
}
stage('Draft Release') {
when { tag 'v*' }
steps {
script {
def version = "${TAG_NAME}".substring(1)
RELEASE_ID = msCreateRelease(
"${PROJECT_OWNER}",
"${PROJECT_ID}",
"${TAG_NAME}",
"${PROJECT_NAME}",
)
}
}
}
stage('Release') {
parallel {
stage('Release Linux') {
when { tag 'v*' }
environment {
OUTDIR = 'dist'
DIST_TAG = 'empty'
GO_LDFLAGS = '-w'
GO_OPT = ' '
}
steps {
echo "***** RELEASE ${PROJECT_NAME} for Linux *****"
sh '''#!/bin/bash
make build package
find -O1 dist/ -name '*.changes' -exec dput mousesoft \\{\\} \\;
'''
script {
msUploadFilesToRelease(
"${PROJECT_OWNER}",
"${PROJECT_ID}",
RELEASE_ID,
['dist/*.deb'],
)
if( currentBuild.currentResult == 'SUCCESS' ) {
currentBuild.keepLog = true
}
}
msSendRocketChat("${ROCKET_TITLE}", "Released assets for Linux", 'blue')
}
}
stage('Release Windows') {
agent{ label 'windows' }
when { tag 'v*' }
environment {
OUTDIR = 'dist'
DIST_TAG = 'empty'
GO_LDFLAGS = '-w'
GO_OPT = ' '
}
steps {
echo "***** RELEASE ${PROJECT_NAME} for Windows *****"
bat 'make build package'
script {
msUploadFilesToRelease(
"${PROJECT_OWNER}",
"${PROJECT_ID}",
RELEASE_ID,
['dist/*.msi'],
)
if( currentBuild.currentResult == 'SUCCESS' ) {
currentBuild.keepLog = true
}
}
msSendRocketChat("${ROCKET_TITLE}", "Released assets for Windows", 'blue')
}
post {
success {
archiveArtifacts (
artifacts: 'dist/*.msi',
allowEmptyArchive: false,
fingerprint: true,
)
}
}
}
}
}
}
post {
always {
script {
if (getContext(hudson.FilePath)) {
junit (
testResults: 'out/junit-report.xml',
allowEmptyResults: true,
skipPublishingChecks: true,
)
cobertura (
coberturaReportFile: 'out/coverage.xml',
failNoReports: false,
)
archiveArtifacts (
artifacts: 'out/*.tar.*,out/*.zip',
allowEmptyArchive: false,
fingerprint: true,
onlyIfSuccessful: true,
)
archiveArtifacts (
artifacts: 'out/doc/*.pdf',
allowEmptyArchive: true,
fingerprint: true,
onlyIfSuccessful: true,
)
if (currentBuild.result == 'SUCCESS') {
publishHTML(target: [
allowMissing: true,
alwaysLinkToLastBuild: true,
keepAll: false,
reportDir: 'out/doc/html',
reportFiles: 'index.html',
reportTitles: 'Техническая документация',
reportName: 'Documentation',
])
}
}
if( currentBuild.result != 'SUCCESS' ) {
currentBuild.keepLog = false
}
def timeSec = currentBuild.duration / 1000
msSendRocketChat(
"${ROCKET_TITLE}",
"Build ${currentBuild.result} after ${timeSec} sec",
msBuildResultColor(),
)
}
}
}
}