70 lines
1.6 KiB
Groovy
70 lines
1.6 KiB
Groovy
pipeline {
|
|
agent any
|
|
|
|
environment {
|
|
DOCKER_HUB_CREDENTIAL = credentials('dockerHub')
|
|
GITHUB_CREDENTIAL = credentials('github')
|
|
}
|
|
|
|
tools {
|
|
nodejs 'nodejs_24'
|
|
}
|
|
|
|
options {
|
|
// Configure an overall timeout for the build.
|
|
timeout(time: 1, unit: 'HOURS')
|
|
disableConcurrentBuilds()
|
|
}
|
|
|
|
stages {
|
|
stage('Compile') {
|
|
steps {
|
|
sh '''
|
|
cat > .npmrc << EOF
|
|
@linagora:registry=https://npm.pkg.github.com/
|
|
//npm.pkg.github.com/:_authToken=${GITHUB_CREDENTIAL_PSW}
|
|
EOF
|
|
'''
|
|
sh 'npm install'
|
|
}
|
|
}
|
|
stage('Test') {
|
|
steps {
|
|
sh 'npm run test'
|
|
}
|
|
}
|
|
stage('Check Formatting') {
|
|
steps {
|
|
sh 'npx prettier --check .'
|
|
}
|
|
}
|
|
stage('Deploy docker images') {
|
|
when {
|
|
anyOf {
|
|
branch 'main'
|
|
buildingTag()
|
|
}
|
|
}
|
|
steps {
|
|
script {
|
|
env.DOCKER_TAG = 'branch-master'
|
|
if (env.TAG_NAME) {
|
|
env.DOCKER_TAG = env.TAG_NAME
|
|
}
|
|
|
|
echo "Docker tag: ${env.DOCKER_TAG}"
|
|
sh 'npm run build'
|
|
sh 'docker build -t linagora/twake-calendar-web:$DOCKER_TAG .'
|
|
sh 'docker login -u $DOCKER_HUB_CREDENTIAL_USR -p $DOCKER_HUB_CREDENTIAL_PSW'
|
|
sh 'docker push linagora/twake-calendar-web:$DOCKER_TAG'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
post {
|
|
always {
|
|
deleteDir() /* clean up our workspace */
|
|
}
|
|
}
|
|
}
|