Archived
0
0
Fork 0
This repository has been archived on 2024-02-06. You can view files and clone it, but cannot push or open issues or pull requests.
library/Jenkinsfile

103 lines
2.5 KiB
Groovy

pipeline {
agent {
docker {
image 'node:14'
}
}
environment {
GITEA_URL = 'https://code.relms.dev/NeonJS/library'
GITEA_TOKEN = credentials('GITEA_TOKEN')
NPM_TOKEN = credentials('NPM_TOKEN')
DISCORD_WEBHOOK = credentials('DISCORD_WEBHOOK')
GIT_AUTHOR_NAME = 'JenkinsCI'
GIT_AUTHOR_EMAIL = 'jenkins@relms.dev'
GIT_COMMITTER_NAME = 'JenkinsCI'
GIT_COMMITTER_EMAIL = 'jenkins@relms.dev'
}
stages {
stage('Checkout') {
steps {
script {
echo '==========Checking out=========='
if (sh (script: "git log -1 | grep '.*\\[ci skip\\].*'", returnStatus: true)) {
error "'[ci skip]' found in git commit message. Aborting."
currentBuild.result = 'NOT_BUILT'
}
}
}
}
stage('Dependencies') {
steps {
echo '==========Installing Dependencies=========='
sh 'yarn install'
}
}
stage('Build') {
steps {
echo '==========Bundling Application=========='
sh 'yarn build'
}
}
stage('Publish') {
steps {
script {
echo '==========Publishing to NPM=========='
if (env.BRANCH_NAME == 'master') {
echo '==========Publishing as Development Version=========='
sh 'echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ~/.npmrc'
sh 'yarn version $(node -pe \'require("./package.json").version\')-$(git rev-parse HEAD).$(date +%s)'
sh 'npm publish --tag dev --access public'
} else if (env.BRANCH_NAME == 'stable') {
echo '==========Publishing as Stable Version=========='
sh 'semantic-release'
}
}
}
}
}
post {
always {
deleteDir()
cleanWs()
}
success {
sh 'tar -cf - dist/ | xz -9 -c - > neonjs-library.tar.xz'
archiveArtifacts artifacts: 'neonjs-library.tar.xz', fingerprint: true
discordSend description: 'CI build was a Success',
link: env.BUILD_URL,
result: 'SUCCESS',
title: env.JOB_NAME,
webhookURL: env.DISCORD_WEBHOOK
}
unstable {
sh 'tar -cf - dist/ | xz -9 -c - > neonjs-library.tar.xz'
archiveArtifacts artifacts: 'neonjs-library.tar.xz', fingerprint: true
discordSend description: 'CI build was Unstable.',
link: env.BUILD_URL,
result: 'UNSTABLE',
title: env.JOB_NAME,
webhookURL: env.DISCORD_WEBHOOK
}
failure {
discordSend description: 'CI build has Failed.',
link: env.BUILD_URL,
result: 'FAILURE',
title: env.JOB_NAME,
webhookURL: env.DISCORD_WEBHOOK
}
aborted {
discordSend description: 'CI build was Aborted',
link: env.BUILD_URL,
result: 'ABORTED',
title: env.JOB_NAME,
webhookURL: env.DISCORD_WEBHOOK
}
}
}