api-cli/Jenkinsfile

59 lines
1.8 KiB
Plaintext
Raw Normal View History

2021-07-07 14:28:13 +02:00
pipeline {
agent any
environment {
2021-07-07 14:48:11 +02:00
NPM_REGISTRY = 'https://nexus.nclazz.de/repository/npm_releases'
2021-07-07 14:28:13 +02:00
NPM_CREDENTIALS = credentials('npm-publish')
2021-07-07 16:24:00 +02:00
GIT_CREDENTIALS = credentials('jenkins_git')
2021-07-07 14:28:13 +02:00
NPM_MAIL = 'info@nclazz.de'
2021-07-07 16:39:03 +02:00
TAG_NAME = sh(script: "git fetch --all --tags -q && git describe --tags --exact-match 2> /dev/null || echo ''", returnStdout: true).trim()
2021-07-07 14:28:13 +02:00
}
stages {
stage('Prepare') {
2021-07-07 14:51:31 +02:00
steps {
2021-07-07 15:55:07 +02:00
echo """
NPM_REGISTRY : $env.NPM_REGISTRY
NPM_MAIL : $env.NPM_MAIL
2021-07-07 16:39:03 +02:00
BRANCH_NAME : $BRANCH_NAME
2021-07-07 16:40:12 +02:00
TAG_NAME : $env.TAG_NAME
2021-07-07 15:55:07 +02:00
"""
sh 'npm install'
2021-07-07 16:24:00 +02:00
sh('git remote set-url origin \$(echo $GIT_URL | sed -e "s^//^//$GIT_CREDENTIALS@^")')
2021-07-07 14:51:31 +02:00
}
2021-07-07 14:28:13 +02:00
}
2021-07-07 22:42:26 +02:00
stage('Checks') {
2021-07-07 22:44:43 +02:00
steps {
sh 'npm run test'
}
2021-07-07 22:42:26 +02:00
}
2021-07-07 14:28:13 +02:00
stage('Set Version') {
2021-07-07 16:36:09 +02:00
when {
allOf {
expression { BRANCH_NAME == 'master' }
2021-07-07 16:44:54 +02:00
expression { env.TAG_NAME == null }
2021-07-07 16:36:09 +02:00
}
}
2021-07-07 14:28:13 +02:00
steps {
2021-07-07 16:15:16 +02:00
sh 'npm version patch -f'
2021-07-07 16:25:12 +02:00
sh 'git push origin HEAD:master --follow-tags --force'
2021-07-07 14:28:13 +02:00
}
}
stage('Deploy') {
2021-07-07 16:49:19 +02:00
when {
allOf {
expression { BRANCH_NAME == 'master' }
expression { env.TAG_NAME != null }
}
}
2021-07-07 14:28:13 +02:00
steps {
2021-07-07 15:55:07 +02:00
sh 'npx npm-cli-login -u $NPM_CREDENTIALS_USR -p $NPM_CREDENTIALS_PSW -e $NPM_MAIL -r $NPM_REGISTRY'
2021-07-07 14:28:13 +02:00
sh 'npm publish'
}
}
}
2021-07-07 15:55:07 +02:00
post {
always {
cleanWs()
}
}
2021-07-07 14:28:13 +02:00
}