-
Notifications
You must be signed in to change notification settings - Fork 1
/
.gitlab-ci.yml
43 lines (37 loc) · 1.45 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
stages:
- build
- deploy
variables:
REGISTRY: "registry.gitlab.com/isametoff/laravelcicd"
before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
app_build:
stage: build
tags:
- build
only:
- develop
script:
- docker build --build-arg NODE_ENV="dev" -t "$REGISTRY/dev/app:$CI_COMMIT_SHA" -f ./_docker/gitlab/app/Dockerfile .
- docker push "$REGISTRY/dev/app:$CI_COMMIT_SHA"
prod_deploy:
stage: deploy
tags:
- cicd
only:
- develop
script:
- export CONTAINER_PREFIX=project
- docker stop $(docker ps -a | grep ${CONTAINER_PREFIX}_ | awk '{print $1}') || true
- docker rm $(docker ps -a | grep ${CONTAINER_PREFIX}_ | awk '{print $1}') || true
- docker volume rm $(docker volume ls | grep ${CONTAINER_PREFIX}_ | awk '{print $2}') || true
- docker-compose -p ${CONTAINER_PREFIX} -f docker-compose.prod.yml up -d
- docker exec ${CONTAINER_PREFIX}_app composer update
- docker exec ${CONTAINER_PREFIX}_app composer install
- docker exec ${CONTAINER_PREFIX}_app php artisan migrate
- docker exec ${CONTAINER_PREFIX}_app php artisan cache:clear
- docker exec ${CONTAINER_PREFIX}_app php artisan config:cache
- docker exec ${CONTAINER_PREFIX}_app php artisan route:cache
- docker exec ${CONTAINER_PREFIX}_app php artisan optimize
- docker exec ${CONTAINER_PREFIX}_app php artisan key:generate
- docker exec ${CONTAINER_PREFIX}_app php artisan jwt:secret