32 lines
1.2 KiB
Plaintext
Executable File
32 lines
1.2 KiB
Plaintext
Executable File
node {
|
|
def commit_id
|
|
stage('Preparation') {
|
|
checkout scm
|
|
sh "git rev-parse --short HEAD > .git/commit-id"
|
|
commit_id = readFile('.git/commit-id').trim()
|
|
}
|
|
stage('test') {
|
|
def myTestContainer = docker.image('node:4.6')
|
|
myTestContainer.pull()
|
|
myTestContainer.inside {
|
|
sh 'npm install --only=dev'
|
|
sh 'npm test'
|
|
}
|
|
}
|
|
stage('test with a DB') {
|
|
def mysql = docker.image('mysql').run("-e MYSQL_ALLOW_EMPTY_PASSWORD=yes")
|
|
def myTestContainer = docker.image('node:4.6')
|
|
myTestContainer.pull()
|
|
myTestContainer.inside("--link ${mysql.id}:mysql") { // using linking, mysql will be available at host: mysql, port: 3306
|
|
sh 'npm install --only=dev'
|
|
sh 'npm test'
|
|
}
|
|
mysql.stop()
|
|
}
|
|
stage('docker build/push') {
|
|
docker.withRegistry('https://index.docker.io/v1/', 'dockerhub') {
|
|
def app = docker.build("wardviaene/docker-nodejs-demo:${commit_id}", '.').push()
|
|
}
|
|
}
|
|
}
|