92 lines
2.5 KiB
YAML
92 lines
2.5 KiB
YAML
default:
|
|
image: witel/rms:1.0
|
|
|
|
|
|
stages:
|
|
- test
|
|
- lint
|
|
- deploy
|
|
|
|
variables:
|
|
TAG_LATEST: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:latest
|
|
TAG_COMMIT: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHORT_SHA
|
|
TARGET_BRANCH_NAME: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
|
|
GIT_STRATEGY: fetch
|
|
GIT_DEPTH: 10
|
|
GIT_HTTP_LOW_SPEED_LIMIT: 1000 # Bytes per second
|
|
GIT_HTTP_LOW_SPEED_TIME: 30
|
|
MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD
|
|
|
|
# https://docs.gitlab.com/ee/ci/yaml/index.html#cache
|
|
cache:
|
|
paths:
|
|
- vendor/
|
|
|
|
services:
|
|
- name: mysql:latest
|
|
alias: mysql
|
|
|
|
before_script:
|
|
- apk update
|
|
- command=$(ls && pwd)
|
|
- echo "'$command'"
|
|
- cp .env.example .env
|
|
- composer install
|
|
- php artisan key:generate
|
|
- apk add --no-cache ca-certificates
|
|
- update-ca-certificates
|
|
- git fetch
|
|
|
|
|
|
test:
|
|
stage: test
|
|
script:
|
|
- php artisan config:clear
|
|
- cp .env.example .env.testing
|
|
- sed -i "s/DB_HOST=127.0.0.1/DB_HOST=mysql/" .env.testing
|
|
- sed -i "s/DB_DATABASE=/DB_DATABASE=$MYSQL_DATABASE/" .env.testing
|
|
- sed -i "s/DB_USERNAME=/DB_USERNAME=$MYSQL_USERNAME/" .env.testing
|
|
- sed -i "s/DB_PASSWORD=/DB_PASSWORD=$MYSQL_ROOT_PASSWORD/" .env.testing
|
|
- cat .env.testing
|
|
- php artisan key:generate --env=testing
|
|
- php artisan migrate --path=/database/old_migrations/ --path=database/migrations --env=testing --force
|
|
- php artisan test
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
|
when: always
|
|
|
|
.lint:
|
|
stage: lint
|
|
script:
|
|
- log=$(git log && git log -p)
|
|
- echo "'$log'"
|
|
- echo "'$CI_COMMIT_SHA'"
|
|
- CHANGED_FILES=$( git diff-tree --name-only -r origin/$TARGET_BRANCH_NAME -r $CI_COMMIT_SHA)
|
|
- echo $CHANGED_FILES
|
|
- composer require --dev squizlabs/php_codesniffer
|
|
- vendor/bin/phpcs --standard=PSR12 $CHANGED_FILES
|
|
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
|
when: always
|
|
allow_failure: true
|
|
|
|
#deploy:
|
|
# stage: deploy
|
|
# script:
|
|
# - apt-get update && add --no-cache openssh-client
|
|
# - chmod og-rwx $ID_RSA
|
|
# - ssh -i $ID_RSA -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "
|
|
# echo -e '$SHECAN_DNS' | sudo tee /etc/resolv.conf &&
|
|
# dns=\$(cat /etc/resolv.conf) &&
|
|
# echo \"\$dns\" &&
|
|
# cd $PROJECT_PATH &&
|
|
# git checkout $TARGET_BRANCH_NAME &&
|
|
# ssh -T git@gitlab.com &&
|
|
# git pull ssh-origin $TARGET_BRANCH_NAME &&
|
|
# echo -e '$DEFAULT_DNS' | sudo tee /etc/resolv.conf"
|
|
# resource_group: develop_deploy
|
|
# rules:
|
|
# - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == "develop"'
|
|
|