Initial commit
This commit is contained in:
72
Jenkinsfile
vendored
Normal file
72
Jenkinsfile
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
@Library('jenkins-common') _
|
||||
|
||||
utils.initProperties()
|
||||
|
||||
def appName = 'vendor-scheduler'
|
||||
|
||||
def databaseName = 'vendor-scheduler'
|
||||
def databaseHost = 'localhost'
|
||||
def databasePort = '5432'
|
||||
def databasePool = '10'
|
||||
def databaseUser = 'postgres'
|
||||
def databasePass = 'vaequ7Luah2gup7aaz3U'
|
||||
|
||||
testEnv = [
|
||||
"DATABASE_NAME=${databaseName}",
|
||||
"DATABASE_HOST=${databaseHost}",
|
||||
"DATABASE_PORT=${databasePort}",
|
||||
"DATABASE_POOL=${databasePool}",
|
||||
"DATABASE_USERNAME=${databaseUser}",
|
||||
"DATABASE_PASSWORD=${databasePass}",
|
||||
|
||||
"APP_NAME=${appName}",
|
||||
"LOG_LEVEL=debug",
|
||||
"RAILS_MAX_THREADS=5",
|
||||
"PORT=5090",
|
||||
"SECRET_KEY_BASE=abc123",
|
||||
"TMPDIR=/tmp"
|
||||
]
|
||||
|
||||
utils.onNode(nodeLabel: 'ubuntu-ruby-255') {
|
||||
String version = utils.stagesGitCheckout()
|
||||
|
||||
stage('Save version') {
|
||||
writeFile file: 'VERSION', text: version
|
||||
}
|
||||
|
||||
stage('Run tests') {
|
||||
withEnv(testEnv) {
|
||||
sh '''
|
||||
apt-get update
|
||||
apt-get -y install postgresql-client libcurl3
|
||||
gem install bundler --version=`sed -e '$!d' Gemfile.lock | xargs` --no-ri --no-rdoc
|
||||
bundle install --path vendor --without production --with test development
|
||||
docker run --rm --name postgres-${APP_NAME} -p${DATABASE_PORT}:5432 -e POSTGRES_PASSWORD=${DATABASE_PASSWORD} -d postgres:11
|
||||
bundle exec rake db:create db:schema:load db:migrate RAILS_ENV=test
|
||||
bundle exec rspec
|
||||
docker stop postgres-${APP_NAME}
|
||||
'''.stripIndent()
|
||||
}
|
||||
ruby.publishCoberturaReports()
|
||||
}
|
||||
|
||||
//ruby.stagesRunCheckstyle() // TODO: reenable when we move to Ruby 2.2/later
|
||||
|
||||
stage('Create artifact for S3') {
|
||||
withEnv([
|
||||
"appName=${appName}",
|
||||
"version=${version}"
|
||||
]) {
|
||||
sh '''
|
||||
mkdir ${appName}-synced
|
||||
rsync -av --exclude 'vendor' --exclude ${appName}-synced --exclude '.git' --include '*/' --include '*' . ${appName}-synced/
|
||||
mv ${appName}-synced ${appName}
|
||||
zip -r ${appName}-${version}.zip ${appName} -x '.git/*'
|
||||
'''.stripIndent()
|
||||
}
|
||||
}
|
||||
|
||||
withAWS(credentials:'aws-s3') {
|
||||
utils.stagesUploadArtifactToS3(includePathPattern:"${appName}*.zip", "${appName}", 'vle')
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user