-
Notifications
You must be signed in to change notification settings - Fork 0
147 lines (120 loc) · 5.14 KB
/
Copy pathbuild-docker-images.yml
File metadata and controls
147 lines (120 loc) · 5.14 KB
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
name: build-docker-images.yml
on:
workflow_dispatch:
push:
branches:
- main
- '[1-9]+.[0-9]+.x'
tags:
- '*'
jobs:
build-database:
runs-on: ubuntu-latest
name: Build & push database
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Getting image tag
id: version
run: echo "VERSION=$(echo $GITHUB_REF | cut -d / -f 3)" >> $GITHUB_OUTPUT
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build database
run: |
docker compose --profile datafeeder build database
docker tag datafeeder-database:latest ghcr.io/georchestra/datafeeder/datafeeder-python-database:latest
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Push database
run: docker push ghcr.io/georchestra/datafeeder/datafeeder-python-database:latest
- name: Push release
if: endsWith(github.ref, '.x') || github.ref_type == 'tag'
run: |
docker tag ghcr.io/georchestra/datafeeder/datafeeder-python-database:latest ghcr.io/georchestra/datafeeder/datafeeder-python-database:${{ steps.version.outputs.VERSION }}
docker push ghcr.io/georchestra/datafeeder/datafeeder-python-database:${{ steps.version.outputs.VERSION }}
build-frontend:
runs-on: ubuntu-latest
name: Build & push frontend
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Getting image tag
id: version
run: echo "VERSION=$(echo $GITHUB_REF | cut -d / -f 3)" >> $GITHUB_OUTPUT
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build frontend
run: |
docker compose --profile datafeeder build datafeeder-frontend
docker tag datafeeder-datafeeder-frontend:latest georchestra/datafeeder-python-frontend:latest
- name: "Log in to docker.io"
if: github.repository == 'georchestra/datafeeder'
uses: docker/login-action@v3
with:
username: '${{ secrets.DOCKER_HUB_USERNAME }}'
password: '${{ secrets.DOCKER_HUB_PASSWORD }}'
- name: Push frontend
run: docker push georchestra/datafeeder-python-frontend:latest
- name: Push release
if: endsWith(github.ref, '.x') || github.ref_type == 'tag'
run: |
docker tag georchestra/datafeeder-python-frontend:latest georchestra/datafeeder-python-frontend:${{ steps.version.outputs.VERSION }}
docker push georchestra/datafeeder-python-frontend:${{ steps.version.outputs.VERSION }}
build-backend:
runs-on: ubuntu-latest
name: Build & push backend
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Getting image tag
id: version
run: echo "VERSION=$(echo $GITHUB_REF | cut -d / -f 3)" >> $GITHUB_OUTPUT
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build backend
run: |
docker build -f ./apps/backend/Dockerfile -t georchestra/datafeeder-python-backend:latest --target production .
- name: "Log in to docker.io"
if: github.repository == 'georchestra/datafeeder'
uses: docker/login-action@v3
with:
username: '${{ secrets.DOCKER_HUB_USERNAME }}'
password: '${{ secrets.DOCKER_HUB_PASSWORD }}'
- name: Push backend
run: docker push georchestra/datafeeder-python-backend:latest
- name: Push release
if: endsWith(github.ref, '.x') || github.ref_type == 'tag'
run: |
docker tag georchestra/datafeeder-python-backend:latest georchestra/datafeeder-python-backend:${{ steps.version.outputs.VERSION }}
docker push georchestra/datafeeder-python-backend:${{ steps.version.outputs.VERSION }}
build-airflow:
runs-on: ubuntu-latest
name: Build & push airflow
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Getting image tag
id: version
run: echo "VERSION=$(echo $GITHUB_REF | cut -d / -f 3)" >> $GITHUB_OUTPUT
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build airflow
run: |
docker build -f ./docker/Dockerfile.airflow -t georchestra/datafeeder-python-airflow:latest --target production .
- name: "Log in to docker.io"
if: github.repository == 'georchestra/datafeeder'
uses: docker/login-action@v3
with:
username: '${{ secrets.DOCKER_HUB_USERNAME }}'
password: '${{ secrets.DOCKER_HUB_PASSWORD }}'
- name: Push airflow
run: docker push georchestra/datafeeder-python-airflow:latest
- name: Push release
if: endsWith(github.ref, '.x') || github.ref_type == 'tag'
run: |
docker tag georchestra/datafeeder-python-airflow:latest georchestra/datafeeder-python-airflow:${{ steps.version.outputs.VERSION }}
docker push georchestra/datafeeder-python-airflow:${{ steps.version.outputs.VERSION }}