297 lines
9.9 KiB
Plaintext
297 lines
9.9 KiB
Plaintext
def SETTINGS = "/var/jenkins_home/tools/apache-maven-3.6.0/settings.xml"
|
|
def ENCODE = "UTF-8"
|
|
def MODULO = "adm"
|
|
def TAG_SELECTOR = "UNINTIALIZED"
|
|
def changedLog = getChangedLog()
|
|
|
|
//======================================================================================================
|
|
def build(SETTINGS, ENCODE, jdk) {
|
|
if (jdk == 'JDK8.202') {
|
|
withEnv(["JAVA_HOME=/var/jenkins_home/tools/hudson.model.JDK/JDK8.202"]) {
|
|
sh "mvn -B -f pom.xml -s ${SETTINGS} clean deploy -DskipTests -Dfile.encoding=${ENCODE} -Dproject.build.sourceEncoding=${ENCODE}"
|
|
}
|
|
} else {
|
|
sh "mvn -B -f pom.xml -s ${SETTINGS} clean deploy -DskipTests -Dfile.encoding=${ENCODE} -Dproject.build.sourceEncoding=${ENCODE}"
|
|
}
|
|
}
|
|
|
|
//======================================================================================================
|
|
def deployNexus(projeto, SETTINGS, ENCODE) {
|
|
echo "Realizando deploy para o nexus: ${projeto}"
|
|
sh "mvn -B -s ${SETTINGS} deploy -DskipTests --file=pom.xml -Dfile.encoding=${ENCODE}"
|
|
}
|
|
|
|
//======================================================================================================
|
|
def geraVersao() {
|
|
TAG_SELECTOR = readMavenPom file: 'pom.xml'
|
|
VERSAO = TAG_SELECTOR.getVersion()
|
|
VERSAO_TEXTO = "Versao: ${VERSAO}@${env.BUILD_TIMESTAMP_VERSAO}"
|
|
|
|
currentBuild.displayName = "${VERSAO}"
|
|
currentBuild.description = "<img src='/static/be103e6b/images/48x48/package.png' style='width: 48px; height: 48px; ' class='icon-package icon-xlg'>"+
|
|
"<a href='http://52.5.53.15:8081/nexus/content/repositories/releases/br/com/rjconsultores/ventaboletosadm/${VERSAO}/ventaboletosadm-${VERSAO}.war'>"+
|
|
"Download Link ventaboletosadm-${VERSAO}.war</a>"
|
|
|
|
println(VERSAO_TEXTO)
|
|
writeFile file: "src/java/versionADM.info", text: VERSAO_TEXTO
|
|
}
|
|
|
|
//======================================================================================================
|
|
def gitCheckout(branch_name, url_name) {
|
|
if (branch_name == null || branch_name.isEmpty()) {
|
|
branch_name = "master"
|
|
}
|
|
|
|
SCM = checkout([
|
|
$class: 'GitSCM',
|
|
branches: [[name: "${branch_name}"]],
|
|
doGenerateSubmoduleConfigurations: false,
|
|
extensions: [[$class: 'AuthorInChangelog']],
|
|
submoduleCfg: [],
|
|
userRemoteConfigs: [[credentialsId: 'admin-gitea', url: url_name]]
|
|
])
|
|
}
|
|
|
|
//======================================================================================================
|
|
@NonCPS
|
|
def verificaTicket(mensagem) {
|
|
def M = mensagem =~ /#\D{2}-\d{4}/
|
|
if(M){
|
|
return M[0].substring(1)
|
|
}
|
|
}
|
|
|
|
//======================================================================================================
|
|
@NonCPS
|
|
String getChangedFilesList() {
|
|
if( tagName != 'master'){
|
|
return tagName
|
|
}
|
|
|
|
changedFiles = ""
|
|
for (changeLogSet in currentBuild.changeSets) {
|
|
for (entry in changeLogSet.getItems()) {
|
|
for (file in entry.getAffectedFiles()) {
|
|
changedFiles += "${file.editType.name} - ${file.path}\n"
|
|
}
|
|
}
|
|
}
|
|
return changedFiles
|
|
}
|
|
|
|
//======================================================================================================
|
|
@NonCPS
|
|
String getChangedLog() {
|
|
log = ""
|
|
for (changeLogSet in currentBuild.changeSets) {
|
|
for (entries in changeLogSet.getItems()) {
|
|
for (entry in entries) {
|
|
log += "*Commit: ${entry.commitId}\n"
|
|
log += "Message: ${entry.msg}\n"
|
|
for (file in entry.getAffectedFiles()) {
|
|
log += "${file.editType.name} - ${file.path}\n"
|
|
}
|
|
log += "Author: ${entry.author} \n"
|
|
}
|
|
}
|
|
}
|
|
return log
|
|
}
|
|
|
|
//======================================================================================================
|
|
@NonCPS
|
|
boolean isPullRequest() {
|
|
causas = ""
|
|
def causes = currentBuild.rawBuild.getCauses()
|
|
for (cause in causes) {
|
|
causas += "${cause.getShortDescription()} "
|
|
}
|
|
|
|
echo "Conteúdo da solicitação:"
|
|
echo "${causas}"
|
|
|
|
return causas.contains('Pull Request merged from Gitea')
|
|
}
|
|
|
|
//======================================================================================================
|
|
def archiveFile(arquivo) {
|
|
try {
|
|
archiveArtifacts artifacts: arquivo
|
|
} catch (err) {
|
|
echo err.getMessage()
|
|
}
|
|
}
|
|
|
|
//======================================================================================================
|
|
pipeline {
|
|
agent any
|
|
tools {
|
|
maven 'mvn_3.6.0'
|
|
jdk 'JDK8.202'
|
|
}
|
|
stages {
|
|
stage('Info') {
|
|
steps {
|
|
sh '''
|
|
echo "PATH = ${PATH}"
|
|
echo "M2_HOME = ${M2_HOME}"
|
|
'''
|
|
echo "VERSÃO: @${env.BUILD_TIMESTAMP_VERSAO}#${env.BUILD_NUMBER}"
|
|
echo "parametro ${tagName} "
|
|
}
|
|
}
|
|
|
|
stage('Checkout Git') {
|
|
steps {
|
|
script {
|
|
try {
|
|
gitCheckout(tagName, 'https://gitrj.rjconsultores.com.br/fabio/AdmMono.git')
|
|
} catch (err) {
|
|
echo err.getMessage()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* stage('Deps') {
|
|
steps {
|
|
script {
|
|
|
|
Auditador = build(job: "Adm/Lib-Auditador-Build", parameters: [
|
|
[$class: 'StringParameterValue', name: 'GIT', value: "master"]], propagate: true)
|
|
|
|
|
|
Integracao = build(job: "Adm/Lib-IntegracaoReceitaDespesa-Build", parameters: [
|
|
[$class: 'StringParameterValue', name: 'GIT', value: "master"]], propagate: true)
|
|
|
|
|
|
BoletoCnab = build(job: "Adm/Lib-GeneradorBoletosCNAB-Build", parameters: [
|
|
[$class: 'StringParameterValue', name: 'GIT', value: "master"]], propagate: true)
|
|
|
|
|
|
ModelWeb = build(job: "Adm/Lib-ModelWeb-Build", parameters: [
|
|
[$class: 'StringParameterValue', name: 'GIT', value: "master"]], propagate: true)
|
|
|
|
|
|
Flyway = build(job: "Adm/Lib-Flyway-Build", parameters: [
|
|
[$class: 'StringParameterValue', name: 'GIT', value: "master"]], propagate: true)
|
|
|
|
}
|
|
}
|
|
}
|
|
*/
|
|
stage('Auditador') {
|
|
steps {
|
|
script {
|
|
if( changedLog.contains('Auditador/') ){
|
|
echo "Auditador"
|
|
echo changedLog
|
|
TAG_SELECTOR = readMavenPom file: 'Auditador/pom.xml'
|
|
VERSAO = TAG_SELECTOR.getVersion()
|
|
VERSAO_TEXTO = "Versao: ${VERSAO}@${env.BUILD_TIMESTAMP_VERSAO}"
|
|
echo VERSAO_TEXTO
|
|
}else{
|
|
echo "Auditador Sem Alteracao"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Build') {
|
|
steps {
|
|
script {
|
|
echo getChangedLog()
|
|
echo getChangedFilesList()
|
|
// geraVersao()
|
|
// build(SETTINGS, ENCODE, 'JDK8.202')
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Test') {
|
|
steps {
|
|
echo "Em construção"
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
post {
|
|
success {
|
|
script {
|
|
if( getChangedFilesList()) {
|
|
//gravando e publicando as mudanças
|
|
def publisher = LastChanges.getLastChangesPublisher "PREVIOUS_REVISION", "LINE", "LINE", true, true, "", "", "", "", ""
|
|
publisher.publishLastChanges()
|
|
def changes = publisher.getLastChanges()
|
|
|
|
def textoJira = "Build SUCCESS: Versao ${VERSAO_TEXTO}\n" +
|
|
"(acesse http://18.235.188.113:1313/job/Adm/job/Adm-Project-Build/${env.BUILD_NUMBER}/)\n\n" +
|
|
"Download de versão ${VERSAO}\n" +
|
|
"(http://52.5.53.15:8081/nexus/content/repositories/releases/br/com/rjconsultores/ventaboletosadm/${VERSAO}/ventaboletosadm-${VERSAO}.war)\n\n" +
|
|
"Alterações do projeto VentaBoletosAdm\n" +
|
|
"${getChangedFilesList()}\n\n"
|
|
|
|
def textoTag = "TAG: **${VERSAO_TEXTO}** \n"
|
|
|
|
def changedLog = getChangedLog()
|
|
def TICKET = verificaTicket(changedLog)
|
|
|
|
for (commit in changes.getCommits()) {
|
|
def commitInfo = commit.getCommitInfo()
|
|
textoJira += "${commitInfo}\n\n"
|
|
|
|
textoTag += "- Commit: ${commitInfo.commitId} \n"+
|
|
"- Autor: ${commitInfo.committerEmail} \n"+
|
|
"- Data: ${commitInfo.commitDate} \n"+
|
|
"- Message: ${commitInfo.commitMessage} \n\n"
|
|
}
|
|
|
|
|
|
//geração automatica de versão
|
|
try {
|
|
def giteaversion = httpRequest contentType: 'APPLICATION_JSON', httpMode: 'POST', requestBody: '''{
|
|
"body": "'''+textoTag+'''",
|
|
"draft": false,
|
|
"name": "'''+VERSAO+'''",
|
|
"prerelease": false,
|
|
"tag_name": "'''+VERSAO+'''",
|
|
"target_commitish": "master"
|
|
}''', responseHandle: 'NONE', url: 'http://gitrj.rjconsultores.com.br/api/v1/repos/adm/VentaBoletosAdm/releases?access_token=6231bd083b69e47f5ad34329891ed6b3128a154e', wrapAsMultipart: false
|
|
} catch (err) {
|
|
echo err.getMessage()
|
|
}
|
|
|
|
|
|
if( TICKET ){
|
|
//integrando ao jira
|
|
jiraComment body: textoJira, issueKey: TICKET
|
|
|
|
//resolvendo o card
|
|
if( textoJira.contains('fix') || textoJira.contains('feat') || textoJira.contains('BREAKING CHANGE') ){
|
|
step([$class: 'JiraIssueUpdateBuilder', comment: '', jqlSearch: "issue = ${TICKET}", workflowActionName: 'RESOLVIDO'])
|
|
step([$class: 'JiraIssueUpdateBuilder', comment: '', jqlSearch: "issue = ${TICKET}", workflowActionName: 'TESTAR/PUBLICADO'])
|
|
}
|
|
} else {
|
|
echo 'Ticket não encontrado'
|
|
}
|
|
|
|
archiveFile("target/ventaboletosadm.war")
|
|
cleanWs(
|
|
cleanWhenAborted:true,
|
|
cleanWhenFailure: false,
|
|
cleanWhenNotBuilt: false,
|
|
cleanWhenSuccess: true,
|
|
cleanWhenUnstable: true,
|
|
deleteDirs: true,
|
|
notFailBuild: true,
|
|
disableDeferredWipeout: true,
|
|
patterns: [[ pattern: '.war' , type: 'EXCLUDE' ]]
|
|
)
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
*/
|
|
} |