split frontend from project and Implement ci/cd
This commit is contained in:
91
.gitlab-ci.yml
Normal file
91
.gitlab-ci.yml
Normal file
@@ -0,0 +1,91 @@
|
||||
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
|
||||
- coman=$(ls && pwd)
|
||||
- echo "'$coman'"
|
||||
- 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 --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"'
|
||||
|
||||
Reference in New Issue
Block a user