-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path.drone.yml
94 lines (88 loc) · 2.08 KB
/
.drone.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
kind: pipeline
name: default
workspace:
path: /data/drone
steps:
- name: publish_api
image: plugins/docker
settings:
repo: wugge/battery-price-monitor-api
tags: [ "${DRONE_COMMIT_SHA:0:7}","latest" ]
username:
from_secret: docker_username
password:
from_secret: docker_password
dockerfile: 'docker/api/Dockerfile'
when:
branch:
- main
- name: publish_frontend
image: plugins/docker
settings:
repo: wugge/battery-price-monitor-frontend
tags: [ "${DRONE_COMMIT_SHA:0:7}","latest" ]
username:
from_secret: docker_username
password:
from_secret: docker_password
dockerfile: 'docker/frontend/Dockerfile'
context: 'frontend'
when:
branch:
- main
- name: run_migrations
image: node:22 # or your API image if typeorm is inside
environment:
DB_HOST:
from_secret: DB_HOST_OUTSIDE
DB_PORT:
from_secret: DB_PORT_OUTSIDE
DB_NAME:
from_secret: DB_NAME
DB_USER:
from_secret: DB_USER
DB_PASSWORD:
from_secret: DB_PASSWORD
commands:
- cd api # navigate to API directory if needed
- npm install
- npx typeorm-ts-node-commonjs migration:run -d data-source.ts
depends_on:
- publish_api
when:
branch:
- main
event:
- push
- name: deploy
image: docker/compose
when:
branch:
- main
volumes:
- name: docker_sock
path: /var/run/docker.sock
environment:
DOCKER_USERNAME:
from_secret: docker_username
DOCKER_PASSWORD:
from_secret: docker_password
# DB
DB_HOST:
from_secret: DB_HOST
DB_NAME:
from_secret: DB_NAME
DB_USER:
from_secret: DB_USER
DB_PASSWORD:
from_secret: DB_PASSWORD
commands:
- echo "$DOCKER_PASSWORD" | docker login --username $DOCKER_USERNAME --password-stdin
- docker-compose -f docker-compose.prod.yml down && docker-compose -f docker-compose.prod.yml pull && docker-compose -f docker-compose.prod.yml up -d
depends_on:
- publish_api
- publish_frontend
volumes:
- name: docker_sock
host:
path: /var/run/docker.sock