123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- pipeline {
- agent {
- node {
- label '112.74.105.17'
- }
- }
- environment {
- _productFileName = buildProductFileName()
- _remote = "root@47.97.230.53"
- _productBackupPath = '/app/csair/backup'
- }
- triggers {
- gitlab(
- triggerOnPush: true,
- triggerOnMergeRequest: true,
- triggerOnNoteRequest: true,
- branchFilterType: 'All',
- secretToken: 'asdfghjkl'
- )
- }
- options {
- buildDiscarder(logRotator(numToKeepStr: '10'))
- disableConcurrentBuilds()
-
- retry(1)
- timestamps()
- timeout(time: 15, unit: 'MINUTES')
- gitLabConnection('gitlab')
- }
- post {
- always {
- cleanWs()
- }
- failure {
- updateGitlabCommitStatus name: 'build', state: 'failed'
- }
- success {
- updateGitlabCommitStatus name: 'build', state: 'success'
- }
- }
- stages {
- stage('Env & Param') {
- parallel {
- stage('Env') {
- steps {
- sh 'printenv'
- echo "系统当前用户 [${env.USER}]"
- echo "WORKSPACE [${env.WORKSPACE}]"
- echo "JENKINS_URL [${env.JENKINS_URL}]"
- echo "${_productFileName}"
- }
- }
- stage('Job') {
- steps {
- echo "Running [${env.BUILD_NUMBER}] on [${env.BUILD_URL}]"
- echo "BRANCH_NAME [${env.BRANCH_NAME}] GIT_BRANCH [${env.GIT_BRANCH}]"
- }
- }
- }
- }
- stage('NPM Install') {
- steps {
- sh 'npm install'
- }
- }
- stage('Static check') {
- parallel {
- stage('eslint') {
- steps {
- echo 'eslint'
- }
- }
- }
- }
- stage('NPM build') {
- steps {
- sh 'npm run build'
- }
- }
- stage('Product') {
- steps {
- dir("${env.WORKSPACE}/dist") {
- sh "tar -zcvf ${env.WORKSPACE}/${_productFileName} ./"
- }
- archiveArtifacts(artifacts: '*.tar.gz', caseSensitive: true, fingerprint: true)
- }
- }
- stage('Release') {
- parallel {
- stage('Master') {
- when {
- branch 'master'
- }
- steps {
- script {
- sh "scp -r ${WORKSPACE}/${_productFileName} ${_remote}:${_productBackupPath}"
- sh """
- ssh ${_remote} "
- source /etc/profile
- rm -rf /app/csair/admin/*
- tar -zxvf ${_productBackupPath}/${_productFileName} -C /app/csair/admin
- "
- """
- }
- }
- }
- }
- }
- }
- }
- def buildProductFileName() {
- String projectName = "${env.JOB_NAME}".tokenize('//')[0]
- String branchName = "${env.JOB_NAME}".tokenize('//')[1]
- String date = new Date().format('yyyyMMddHHmmss')
- return "${projectName}-${branchName}-${date}.tar.gz"
- }
|