Improved Jenkinsfile

This commit is contained in:
Artur Nowakowski 2019-11-30 22:28:17 +01:00
parent e2bba0f0b4
commit 424cdfe994

14
Jenkinsfile vendored
View File

@ -3,27 +3,23 @@ node {
stage('Checkout') { stage('Checkout') {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], browser: [$class: 'GogsGit', repoUrl: 'https://git.wmi.amu.edu.pl/s416138/ClearBowl.git'], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'target']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'jenkins_git.wmi.amu.edu.pl', url: 'git@git.wmi.amu.edu.pl:s416138/ClearBowl.git']]]) checkout([$class: 'GitSCM', branches: [[name: '*/master']], browser: [$class: 'GogsGit', repoUrl: 'https://git.wmi.amu.edu.pl/s416138/ClearBowl.git'], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'target']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'jenkins_git.wmi.amu.edu.pl', url: 'git@git.wmi.amu.edu.pl:s416138/ClearBowl.git']]])
} }
stage('API'){
dir('target/api'){ dir('target/api'){
docker.image('mysql:latest').withRun('-e "MYSQL_ROOT_PASSWORD=8fcXUlCgC6JCqpoWX64" -e "MYSQL_DATABASE=clearbowl" -e "MYSQL_USER=api" -e "MYSQL_PASSWORD=R23qarINlcALOk2nDg6LbJelaqk"') { c -> docker.image('mysql:latest').withRun('-e "MYSQL_ROOT_PASSWORD=8fcXUlCgC6JCqpoWX64" -e "MYSQL_DATABASE=clearbowl" -e "MYSQL_USER=api" -e "MYSQL_PASSWORD=R23qarINlcALOk2nDg6LbJelaqk"') { c ->
docker.image('mysql:latest').inside("--link ${c.id}:db") { docker.image('mysql:latest').inside("--link ${c.id}:db") {
stage("Initialize DB"){ stage("API: Initialize DB"){
sh 'while ! mysqladmin ping -hdb --silent; do sleep 1; done' sh 'while ! mysqladmin ping -hdb --silent; do sleep 1; done'
} }
} }
docker.image('circleci/php:7.4').inside("--user 0:0 --link ${c.id}:db") { docker.image('circleci/php:7.4').inside("--user 0:0 --link ${c.id}:db") {
stage("Prepare container") { sh 'docker-php-ext-install -j$(nproc) pdo_mysql' } stage("API: Prepare container") { sh 'docker-php-ext-install -j$(nproc) pdo_mysql' }
stage("Build") { sh 'composer install && mv .env.example .env' } stage("API: Build") { sh 'composer install && mv .env.example .env' }
stage("Test") { sh 'vendor/bin/phpunit' } stage("API: Test") { sh 'vendor/bin/phpunit' }
} }
} }
} }
}
stage('Frontend'){
dir('target/front'){ dir('target/front'){
docker.image('circleci/node:10'){ docker.image('circleci/node:10'){
stage("Build") { sh 'npm install && npm run build' } stage("Frontend: Build") { sh 'npm install && npm run build' }
} }
} }
}
} }