From cea46d85e6a6999ad470bdbb4f15d7cf75f0cac0 Mon Sep 17 00:00:00 2001 From: Romulus21 Date: Sat, 8 Aug 2020 16:34:08 +0200 Subject: [PATCH] test new gitlabci image & script --- .gitlab-ci.yml | 133 ++++++++++++++++++++++--------------------------- 1 file changed, 59 insertions(+), 74 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 728d425..d416eb4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,80 +1,65 @@ -# This file is a template, and might need editing before it works on your project. -# Official framework image. Look for the different tagged releases at: -# https://hub.docker.com/r/library/php -image: php:latest +image: lorisleiva/laravel-docker:latest -# Pick zero or more services to be used on all builds. -# Only needed when using a docker container to run your tests in. -# Check out: http://docs.gitlab.com/ce/ci/docker/using_docker_images.html#what-is-a-service -services: - - mysql:latest +# https://github.com/lorisleiva/laravel-docker/blob/master/gitlab/.gitlab-ci.deployments.yml -variables: - MYSQL_DATABASE: "portal" - MYSQL_USER: "root" - MYSQL_PASSWORD: "app" - MYSQL_ROOT_PASSWORD: "secret" +.init_ssh: &init_ssh | + eval $(ssh-agent -s) + echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null + mkdir -p ~/.ssh + chmod 700 ~/.ssh + [[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config -# This folder is cached between builds -# http://docs.gitlab.com/ce/ci/yaml/README.html#cache -cache: - paths: - - vendor/ - - node_modules/ + # Replace the last line with the following lines if you'd rather + # leave StrictHostKeyChecking enabled (replace yourdomain.com): + # + # ssh-keyscan yourdomain.com >> ~/.ssh/known_hosts + # chmod 644 ~/.ssh/known_hosts -# This is a basic example for a gem or script which doesn't use -# services such as redis or postgres -before_script: - # Update packages - - apt-get update -yqq - # Prep for Node - - apt-get install gnupg -yqq - # Upgrade to Node 8 - - curl -sL https://deb.nodesource.com/setup_8.x | bash - - # Install dependencies - - apt-get install git nodejs libcurl4-gnutls-dev libicu-dev libmcrypt-dev libvpx-dev libjpeg-dev libpng-dev libxpm-dev zlib1g-dev libfreetype6-dev libxml2-dev libexpat1-dev libbz2-dev libgmp3-dev libldap2-dev unixodbc-dev libpq-dev libsqlite3-dev libaspell-dev libsnmp-dev libpcre3-dev libtidy-dev -yqq - #- apt-get install php-mbstring php-curl php-json php-intl php-gd php-xml php-zip php-bz2 -yqq - - apt-get install mariadb-server -yqq - # Install php extensions - - docker-php-ext-install pdo pdo_mysql tokenizer xml pcntl curl json -# - docker-php-ext-install mbstring intl gd xml bz2 opcache pdo_mysql curl json zip - # Install php extensions - - docker-php-ext-install mbstring pdo_mysql curl json intl gd xml zip bz2 opcache - # Install & enable Xdebug for code coverage reports - - pecl install xdebug - - docker-php-ext-enable xdebug - # Install Composer and project dependencies. - - curl -sS https://getcomposer.org/installer | php - - php composer.phar install - # Install Node dependencies. - # comment this out if you don't have a node dependency - # - npm install - # Copy over testing configuration. - # Don't forget to set the database config in .env.testing correctly - # DB_HOST=mysql - # DB_DATABASE=project_name - # DB_USERNAME=root - # DB_PASSWORD=secret - - cp .env.testing .env - # Run npm build - # comment this out if you don't have a frontend build - # you can change this to to your frontend building script like - # npm run build - # - npm run dev - # Generate an application key. Re-cache. - - php artisan key:generate - - php artisan config:cache - # Run database migrations. - - php artisan migrate - # Run database seed - - php artisan db:seed +.change_file_permissions: &change_file_permissions | + find . -type f -not -path "./vendor/*" -exec chmod 664 {} \; + find . -type d -not -path "./vendor/*" -exec chmod 775 {} \; -test: +composer: + stage: build + cache: + key: ${CI_COMMIT_REF_SLUG}-composer + paths: + - vendor/ script: - # run laravel tests - - php vendor/bin/phpunit --coverage-text --colors=never - # run frontend tests - # if you have any task for testing frontend - # set it in your package.json script - # comment this out if you don't have a frontend test - - npm test + - composer install --prefer-dist --no-ansi --no-interaction --no-progress --no-scripts + - cp .env.example .env + - php artisan key:generate + artifacts: + expire_in: 1 month + paths: + - vendor/ + - .env + +npm: + stage: build + cache: + key: ${CI_COMMIT_REF_SLUG}-npm + paths: + - node_modules/ + script: + - npm install + - npm run production + artifacts: + expire_in: 1 month + paths: + - node_modules/ + - public/css/ + - public/js/ + +codestyle: + stage: test + dependencies: [] + script: + - phpcs --standard=PSR2 --extensions=php --ignore=app/Support/helpers.php app + +phpunit: + stage: test + dependencies: + - composer + script: + - phpunit --coverage-text --colors=never