diff --git a/Jenkinsfile b/Jenkinsfile index 53bca5a84..464e2de5f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -3,7 +3,7 @@ pipeline { environment { MY127WS_KEY = credentials('base-my127ws-key-20190523') } - triggers { cron(env.BRANCH_NAME == '0.2.x' ? 'H H(0-6) * * *' : '') } + triggers { cron(env.BRANCH_NAME == '0.3.x' ? 'H H(0-6) * * *' : '') } stages { stage('Test Matrix') { parallel { @@ -11,12 +11,24 @@ pipeline { // Drupal 8 stage('drupal8 (mode=dynamic)') { - agent { label "my127ws" } + agent { label "my127ws" } steps { sh './build && ./test drupal8 dynamic' } + post { + always { + sh 'ws destroy || true' + cleanWs() + } + } } stage('drupal8 (mode=static)') { agent { label "my127ws" } steps { sh './build && ./test drupal8 static' } + post { + always { + sh 'ws destroy || true' + cleanWs() + } + } } // Magento 1 @@ -24,10 +36,22 @@ pipeline { stage('magento1 (mode=dynamic)') { agent { label "my127ws" } steps { sh './build && ./test magento1 dynamic' } + post { + always { + sh 'ws destroy || true' + cleanWs() + } + } } stage('magento1 (mode=static)') { agent { label "my127ws" } steps { sh './build && ./test magento1 static' } + post { + always { + sh 'ws destroy || true' + cleanWs() + } + } } // Magento 2 @@ -35,10 +59,45 @@ pipeline { stage('magento2 (mode=dynamic)') { agent { label "my127ws" } steps { sh './build && ./test magento2 dynamic' } + post { + always { + sh 'ws destroy || true' + cleanWs() + } + } } - stage('magento2 (mode=static)') { + stage('magento2 (mode=static)') { agent { label "my127ws" } steps { sh './build && ./test magento2 static' } + post { + always { + sh 'ws destroy || true' + cleanWs() + } + } + } + + // PHP + + stage('php (mode=dynamic)') { + agent { label "my127ws" } + steps { sh './build && ./test php dynamic' } + post { + always { + sh 'ws destroy || true' + cleanWs() + } + } + } + stage('php (mode=static)') { + agent { label "my127ws" } + steps { sh './build && ./test php static' } + post { + always { + sh 'ws destroy || true' + cleanWs() + } + } } // Spryker @@ -46,10 +105,22 @@ pipeline { stage('spryker (mode=dynamic)') { agent { label "my127ws" } steps { sh './build && ./test spryker dynamic' } + post { + always { + sh 'ws destroy || true' + cleanWs() + } + } } stage('spryker (mode=static)') { agent { label "my127ws" } steps { sh './build && ./test spryker static' } + post { + always { + sh 'ws destroy || true' + cleanWs() + } + } } // Wordpress @@ -57,10 +128,22 @@ pipeline { stage('wordpress (mode=dynamic)') { agent { label "my127ws" } steps { sh './build && ./test wordpress dynamic' } + post { + always { + sh 'ws destroy || true' + cleanWs() + } + } } stage('wordpress (mode=static)') { agent { label "my127ws" } steps { sh './build && ./test wordpress static' } + post { + always { + sh 'ws destroy || true' + cleanWs() + } + } } } } diff --git a/src/_base/.ci/sample-dynamic/workspace.yml b/src/_base/.ci/sample-dynamic/workspace.yml new file mode 100644 index 000000000..e48301ee3 --- /dev/null +++ b/src/_base/.ci/sample-dynamic/workspace.yml @@ -0,0 +1,20 @@ +workspace('ci-php-sample'): + description: generated local workspace for ci-php-sample. + harness: inviqa/php + +attribute('aws.bucket'): null +attribute('app.repository'): null +attribute('aws.id'): null +attribute('aws.key'): null + +before('harness.install'): | + #!bash(workspace:/)|@ + if [ ! -d public/ ]; then + mkdir public + fi + if [ ! -d vendor/ ]; then + mkdir vendor + fi + if [ ! -f public/index.php ]; then + echo " public/index.php + fi diff --git a/src/_base/.ci/sample-static/workspace.yml b/src/_base/.ci/sample-static/workspace.yml new file mode 100644 index 000000000..da3a0718f --- /dev/null +++ b/src/_base/.ci/sample-static/workspace.yml @@ -0,0 +1,22 @@ +workspace('ci-php-sample'): + description: generated local workspace for ci-php-sample. + harness: inviqa/php + +attribute('app.build'): static + +attribute('aws.bucket'): null +attribute('app.repository'): null +attribute('aws.id'): null +attribute('aws.key'): null + +before('harness.install'): | + #!bash(workspace:/)|@ + if [ ! -d public/ ]; then + mkdir public + fi + if [ ! -d vendor/ ]; then + mkdir vendor + fi + if [ ! -f public/index.php ]; then + echo " public/index.php + fi diff --git a/src/_base/harness/config/confd.yml b/src/_base/harness/config/confd.yml index edcb97b59..0e4820a17 100644 --- a/src/_base/harness/config/confd.yml +++ b/src/_base/harness/config/confd.yml @@ -1,5 +1,6 @@ confd('harness:/'): + # base templates - { src: docker/image/console/Dockerfile } - { src: docker/image/console/root/home/build/.my.cnf } - { src: docker/image/console/root/lib/task/database/import.sh } @@ -11,6 +12,7 @@ confd('harness:/'): - { src: docker/image/console/root/usr/local/etc/php/php.ini } - { src: docker/image/console/root/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini } - { src: docker/image/nginx/Dockerfile } + - { src: docker/image/nginx/root/docker-entrypoint.d/config_render.sh } - { src: docker/image/nginx/root/etc/nginx/conf.d/0-nginx.conf } - { src: docker/image/nginx/root/etc/nginx/conf.d/default.conf.template } - { src: docker/image/nginx/root/etc/ssl/certs/app.crt } @@ -31,4 +33,3 @@ confd('harness:/'): - { src: helm/qa/requirements.yaml } - { src: helm/qa/values.yaml } - { src: helm/qa/Chart.yaml } - - { src: helm/qa/requirements.yaml } diff --git a/src/akeneo/harness/config/confd.yml b/src/akeneo/harness/config/confd.yml index 5eb8a80f5..8b37e8af8 100644 --- a/src/akeneo/harness/config/confd.yml +++ b/src/akeneo/harness/config/confd.yml @@ -1,5 +1,6 @@ confd('harness:/'): + # base templates - { src: docker/image/console/Dockerfile } - { src: docker/image/console/root/home/build/.my.cnf } - { src: docker/image/console/root/lib/task/database/import.sh } @@ -29,10 +30,9 @@ confd('harness:/'): - { src: docker-sync.yml, dst: workspace:/docker-sync.yml } - { src: helm/app/values.yaml } - { src: helm/app/Chart.yaml } + - { src: helm/qa/requirements.yaml } - { src: helm/qa/values.yaml } - { src: helm/qa/Chart.yaml } - - { src: helm/qa/requirements.yaml } # harness-akeneo templates - { src: application/overlay/app/config/parameters.yml } - - { src: docker/image/nginx/root/docker-entrypoint.d/config_render.sh } - { src: docker/image/job-queue-consumer/Dockerfile } diff --git a/src/drupal8/harness/config/confd.yml b/src/drupal8/harness/config/confd.yml index 6a8331460..743e3414e 100644 --- a/src/drupal8/harness/config/confd.yml +++ b/src/drupal8/harness/config/confd.yml @@ -3,6 +3,7 @@ confd('harness:/'): # base templates - { src: docker/image/console/Dockerfile } - { src: docker/image/console/root/home/build/.my.cnf } + - { src: docker/image/console/root/lib/task/database/import.sh } - { src: docker/image/console/root/lib/task/build/frontend.sh } - { src: docker/image/console/root/lib/task/build/backend.sh } - { src: docker/image/console/root/lib/task/init.sh } @@ -21,8 +22,8 @@ confd('harness:/'): - { src: docker/image/php-fpm/root/fix_app_permissions.sh } - { src: docker/image/php-fpm/root/usr/local/etc/php/php.ini } - { src: docker/image/php-fpm/root/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini } - - { src: application/overlay/auth.json } - { src: application/overlay/Jenkinsfile } + - { src: application/overlay/auth.json } - { src: application/overlay/.dockerignore, dst: workspace:/.dockerignore } - { src: application/skeleton/README.md } - { src: docker-compose.yml, dst: workspace:/docker-compose.yml } diff --git a/src/magento1/harness/config/confd.yml b/src/magento1/harness/config/confd.yml index 20e047f69..634876ede 100644 --- a/src/magento1/harness/config/confd.yml +++ b/src/magento1/harness/config/confd.yml @@ -3,6 +3,7 @@ confd('harness:/'): # base templates - { src: docker/image/console/Dockerfile } - { src: docker/image/console/root/home/build/.my.cnf } + - { src: docker/image/console/root/lib/task/database/import.sh } - { src: docker/image/console/root/lib/task/build/frontend.sh } - { src: docker/image/console/root/lib/task/build/backend.sh } - { src: docker/image/console/root/lib/task/init.sh } @@ -14,7 +15,6 @@ confd('harness:/'): - { src: docker/image/nginx/root/docker-entrypoint.d/config_render.sh } - { src: docker/image/nginx/root/etc/nginx/conf.d/0-nginx.conf } - { src: docker/image/nginx/root/etc/nginx/conf.d/default.conf.template } - - { src: docker/image/nginx/root/etc/nginx/conf.d/run-code-mapping.conf } - { src: docker/image/nginx/root/etc/ssl/certs/app.crt } - { src: docker/image/nginx/root/etc/ssl/private/app.key } - { src: docker/image/php-fpm/Dockerfile } @@ -22,8 +22,8 @@ confd('harness:/'): - { src: docker/image/php-fpm/root/fix_app_permissions.sh } - { src: docker/image/php-fpm/root/usr/local/etc/php/php.ini } - { src: docker/image/php-fpm/root/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini } - - { src: application/overlay/auth.json } - { src: application/overlay/Jenkinsfile } + - { src: application/overlay/auth.json } - { src: application/overlay/.dockerignore, dst: workspace:/.dockerignore } - { src: application/skeleton/README.md } - { src: docker-compose.yml, dst: workspace:/docker-compose.yml } @@ -37,3 +37,4 @@ confd('harness:/'): - { src: application/overlay/public/app/etc/local.xml } - { src: application/skeleton/behat.yml } - { src: application/skeleton/composer.json } + - { src: docker/image/nginx/root/etc/nginx/conf.d/run-code-mapping.conf } diff --git a/src/magento2/harness/config/confd.yml b/src/magento2/harness/config/confd.yml index 229293e9d..068617a26 100644 --- a/src/magento2/harness/config/confd.yml +++ b/src/magento2/harness/config/confd.yml @@ -3,6 +3,7 @@ confd('harness:/'): # base templates - { src: docker/image/console/Dockerfile } - { src: docker/image/console/root/home/build/.my.cnf } + - { src: docker/image/console/root/lib/task/database/import.sh } - { src: docker/image/console/root/lib/task/build/frontend.sh } - { src: docker/image/console/root/lib/task/build/backend.sh } - { src: docker/image/console/root/lib/task/init.sh } @@ -21,8 +22,8 @@ confd('harness:/'): - { src: docker/image/php-fpm/root/fix_app_permissions.sh } - { src: docker/image/php-fpm/root/usr/local/etc/php/php.ini } - { src: docker/image/php-fpm/root/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini } - - { src: application/overlay/auth.json } - { src: application/overlay/Jenkinsfile } + - { src: application/overlay/auth.json } - { src: application/overlay/.dockerignore, dst: workspace:/.dockerignore } - { src: application/skeleton/README.md } - { src: docker-compose.yml, dst: workspace:/docker-compose.yml } diff --git a/src/spryker/_twig/docker-compose.yml/application.yml.twig b/src/spryker/_twig/docker-compose.yml/application.yml.twig index df669b242..913c57ed6 100644 --- a/src/spryker/_twig/docker-compose.yml/application.yml.twig +++ b/src/spryker/_twig/docker-compose.yml/application.yml.twig @@ -65,6 +65,7 @@ {% if @('app.build') == 'dynamic' %} build: .my127ws/docker/image/php-fpm entrypoint: /entrypoint.dynamic.sh + command: [sleep, infinity] volumes: - {{ (dockersync) ? @('workspace.name') ~ '-sync:/app:nocopy' : './:/app:delegated' }} - ./.my127ws:/.my127ws diff --git a/src/spryker/_twig/docker-compose.yml/service/jenkins-runner.yml.twig b/src/spryker/_twig/docker-compose.yml/service/jenkins-runner.yml.twig index a860c1aaf..20c9663af 100644 --- a/src/spryker/_twig/docker-compose.yml/service/jenkins-runner.yml.twig +++ b/src/spryker/_twig/docker-compose.yml/service/jenkins-runner.yml.twig @@ -4,6 +4,7 @@ context: ./ dockerfile: .my127ws/docker/image/jenkins-runner/Dockerfile entrypoint: /entrypoint.jenkins_runner.dynamic.sh + command: [sleep, infinity] volumes: - {{ (dockersync) ? @('workspace.name') ~ '-sync:/app:nocopy' : './:/app:delegated' }} - ./.my127ws/application:/home/build/application diff --git a/src/spryker/harness/config/confd.yml b/src/spryker/harness/config/confd.yml index 1e9fdbf03..99de9bf50 100644 --- a/src/spryker/harness/config/confd.yml +++ b/src/spryker/harness/config/confd.yml @@ -3,6 +3,7 @@ confd('harness:/'): # base templates - { src: docker/image/console/Dockerfile } - { src: docker/image/console/root/home/build/.my.cnf } + - { src: docker/image/console/root/lib/task/database/import.sh } - { src: docker/image/console/root/lib/task/build/frontend.sh } - { src: docker/image/console/root/lib/task/build/backend.sh } - { src: docker/image/console/root/lib/task/init.sh } @@ -13,6 +14,7 @@ confd('harness:/'): - { src: docker/image/nginx/Dockerfile } - { src: docker/image/nginx/root/docker-entrypoint.d/config_render.sh } - { src: docker/image/nginx/root/etc/nginx/conf.d/0-nginx.conf } + #- { src: docker/image/nginx/root/etc/nginx/conf.d/default.conf.template } Deliberately missing - { src: docker/image/nginx/root/etc/ssl/certs/app.crt } - { src: docker/image/nginx/root/etc/ssl/private/app.key } - { src: docker/image/php-fpm/Dockerfile } diff --git a/src/wordpress/harness/config/confd.yml b/src/wordpress/harness/config/confd.yml index 3b8a081c9..0437891bd 100644 --- a/src/wordpress/harness/config/confd.yml +++ b/src/wordpress/harness/config/confd.yml @@ -3,6 +3,7 @@ confd('harness:/'): # base templates - { src: docker/image/console/Dockerfile } - { src: docker/image/console/root/home/build/.my.cnf } + - { src: docker/image/console/root/lib/task/database/import.sh } - { src: docker/image/console/root/lib/task/build/frontend.sh } - { src: docker/image/console/root/lib/task/build/backend.sh } - { src: docker/image/console/root/lib/task/init.sh } @@ -21,14 +22,15 @@ confd('harness:/'): - { src: docker/image/php-fpm/root/fix_app_permissions.sh } - { src: docker/image/php-fpm/root/usr/local/etc/php/php.ini } - { src: docker/image/php-fpm/root/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini } - - { src: application/overlay/auth.json } - { src: application/overlay/Jenkinsfile } + - { src: application/overlay/auth.json } - { src: application/overlay/.dockerignore, dst: workspace:/.dockerignore } - { src: application/skeleton/README.md } - { src: docker-compose.yml, dst: workspace:/docker-compose.yml } - { src: docker-sync.yml, dst: workspace:/docker-sync.yml } - { src: helm/app/values.yaml } - { src: helm/app/Chart.yaml } + - { src: helm/qa/requirements.yaml } - { src: helm/qa/values.yaml } - { src: helm/qa/Chart.yaml } # harness-wordpress templates diff --git a/test b/test index 54fdddc11..f64ca8485 100755 --- a/test +++ b/test @@ -21,14 +21,22 @@ function test() fi cp -ap "${path_harness}/.ci/sample-${mode}" "${path_test}" - cd ${path_test} + cd "${path_test}" cp -ap "../${path_harness}" "./.my127ws" ws install - ws exec composer test-quality - ws exec composer test-unit - ws exec composer test-acceptance + if [ "$(docker-compose -p "ci-${harness}-sample" ps | grep -c Exit)" -gt 0 ]; then + echo 'Some containers failed to start' + docker-compose -p "ci-${harness}-sample" ps + return 1 + fi + + if [ -f composer.json ]; then + ws exec composer test-quality + ws exec composer test-unit + ws exec composer test-acceptance + fi ws helm template qa >/dev/null @@ -41,8 +49,8 @@ function clean() local path_test="./tmp-test" if [ -d "$path_test" ]; then - (cd $path_test && ws destroy) - rm -rf $path_test + (cd "$path_test" && ws destroy) + rm -rf "$path_test" fi }