-
Notifications
You must be signed in to change notification settings - Fork 103
154 lines (151 loc) · 4.49 KB
/
docker.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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
name: Docker
on:
push:
branches:
- develop
release:
types: [published]
jobs:
build-backend:
name: Build backend image
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
with:
submodules: True
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Login to GHCR
uses: docker/login-action@v2
if: github.event_name != 'pull_request'
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Generate metadata for wheels image
id: meta-wheels
uses: docker/metadata-action@v4
with:
images: ghcr.io/${{ github.repository_owner }}/geonature-backend
flavor: |
suffix=-wheels
tags: |
type=ref,event=branch
type=ref,event=tag
-
name: Build and export wheels image
id: build-wheels
uses: docker/build-push-action@v4
with:
context: .
file: ./backend/Dockerfile
target: wheels
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta-wheels.outputs.tags }}
labels: ${{ steps.meta-wheels.outputs.labels }}
-
name: Generate metadata for prod image
id: meta-prod
uses: docker/metadata-action@v4
with:
images: ghcr.io/${{ github.repository_owner }}/geonature-backend
tags: |
type=ref,event=branch
type=ref,event=tag
-
name: Build and export prod image
id: build-prod
uses: docker/build-push-action@v4
with:
context: .
file: ./backend/Dockerfile
target: prod
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta-prod.outputs.tags }}
labels: ${{ steps.meta-prod.outputs.labels }}
build-frontend:
name: Build frontend image
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
with:
submodules: True
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Login to GHCR
uses: docker/login-action@v2
if: github.event_name != 'pull_request'
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Generate metadata for source image
id: meta-source
uses: docker/metadata-action@v4
with:
images: ghcr.io/${{ github.repository_owner }}/geonature-frontend
flavor: |
suffix=-source
tags: |
type=ref,event=branch
type=ref,event=tag
-
name: Build and export source image
uses: docker/build-push-action@v4
with:
context: .
file: ./frontend/Dockerfile
target: source
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta-source.outputs.tags }}
labels: ${{ steps.meta-source.outputs.labels }}
-
name: Generate metadata for nginx image
id: meta-nginx
uses: docker/metadata-action@v4
with:
images: ghcr.io/${{ github.repository_owner }}/geonature-frontend
flavor: |
suffix=-nginx
tags: |
type=ref,event=branch
type=ref,event=tag
-
name: Build and export nginx image
uses: docker/build-push-action@v4
with:
context: .
file: ./frontend/Dockerfile
target: prod-base
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta-nginx.outputs.tags }}
labels: ${{ steps.meta-nginx.outputs.labels }}
-
name: Generate metadata for prod image
id: meta-prod
uses: docker/metadata-action@v4
with:
images: ghcr.io/${{ github.repository_owner }}/geonature-frontend
tags: |
type=ref,event=branch
type=ref,event=tag
-
name: Build and export prod image
uses: docker/build-push-action@v4
with:
context: .
file: ./frontend/Dockerfile
target: prod
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta-prod.outputs.tags }}
labels: ${{ steps.meta-prod.outputs.labels }}