1
1
name : Docker
2
2
3
3
on :
4
- schedule :
5
- - cron : " 0 17 * * 6"
4
+ # schedule:
5
+ # - cron: "0 17 * * 6"
6
6
push :
7
7
branches :
8
8
- main
15
15
workflow_dispatch :
16
16
17
17
env :
18
- PUSH : ${{ (github.event_name != 'pull_request') && (github.repository == 'Robotic-Decision-Making-Lab /blue') }}
18
+ PUSH : ${{ (github.event_name != 'pull_request') && (github.repository == 'apl-ocean-engineering /blue') }}
19
19
20
20
jobs :
21
- ci :
21
+ docker_build :
22
22
strategy :
23
23
fail-fast : false
24
24
matrix :
@@ -27,165 +27,71 @@ jobs:
27
27
permissions :
28
28
packages : write
29
29
contents : read
30
+ env :
31
+ BLUE_ROS_DISTRO : ${{ matrix.ROS_DISTRO }}
32
+ BLUE_GITHUB_REPO : ${{ github.repository }}
30
33
steps :
31
- - name : Checkout repository
34
+ -
35
+ name : Checkout repository
32
36
uses : actions/checkout@v4
33
37
34
- - name : Log into registry
35
- if : env.PUSH == 'true'
36
- uses : docker/login-action@v3.3.0
37
- with :
38
- registry : ghcr.io
39
- username : ${{ github.actor }}
40
- password : ${{ secrets.GITHUB_TOKEN }}
38
+ -
39
+ # Add support for more platforms with QEMU (optional)
40
+ # https://github.com/docker/setup-qemu-action
41
+ name : Set up QEMU
42
+ uses : docker/setup-qemu-action@v3
41
43
42
- - name : Extract Docker metadata
43
- if : env.PUSH == 'true'
44
- id : meta
45
- uses : docker/metadata-action@v5.5.1
46
- with :
47
- images : ghcr.io/${{ github.repository }}
48
- tags : |
49
- type=raw,value=${{ matrix.ROS_DISTRO }}-${{ github.job }}
50
-
51
- - name : Build and push Docker image
52
- uses : docker/build-push-action@v6.7.0
53
- with :
54
- context : .
55
- file : .docker/Dockerfile
56
- build-args : ROS_DISTRO=${{ matrix.ROS_DISTRO }}
57
- target : ${{ github.job }}
58
- tags : ${{ steps.meta.outputs.tags }}
59
- labels : ${{ steps.meta.outputs.labels }}
60
- push : ${{ env.PUSH }}
61
-
62
- robot :
63
- strategy :
64
- fail-fast : false
65
- matrix :
66
- ROS_DISTRO : [rolling]
67
- runs-on : ubuntu-latest
68
- permissions :
69
- packages : write
70
- contents : read
71
- steps :
72
- - name : Checkout repository
73
- uses : actions/checkout@v4
74
-
75
- - name : Set up QEMU
76
- uses : docker/setup-qemu-action@v3.2.0
77
-
78
- - name : Set up Docker Buildx
44
+ -
45
+ name : Set up Docker Buildx
79
46
uses : docker/setup-buildx-action@v3
80
47
81
- - name : Log into registry
82
- if : env.PUSH == 'true'
83
- uses : docker/login-action@v3.3.0
84
- with :
85
- registry : ghcr.io
86
- username : ${{ github.actor }}
87
- password : ${{ secrets.GITHUB_TOKEN }}
88
-
89
- - name : Extract Docker metadata
90
- if : env.PUSH == 'true'
91
- id : meta
92
- uses : docker/metadata-action@v5.5.1
93
- with :
94
- images : ghcr.io/${{ github.repository }}
95
- tags : |
96
- type=raw,value=${{ matrix.ROS_DISTRO }}-${{ github.job }}
97
-
98
- - name : Build and push Docker image
99
- uses : docker/build-push-action@v6.7.0
100
- with :
101
- context : .
102
- file : .docker/Dockerfile
103
- build-args : ROS_DISTRO=${{ matrix.ROS_DISTRO }}
104
- target : ${{ github.job }}
105
- tags : ${{ steps.meta.outputs.tags }}
106
- labels : ${{ steps.meta.outputs.labels }}
107
- push : ${{ env.PUSH }}
108
- platforms : linux/amd64
109
- # platforms: linux/amd64,linux/arm64
110
-
111
- desktop :
112
- strategy :
113
- fail-fast : false
114
- matrix :
115
- ROS_DISTRO : [rolling]
116
- runs-on : ubuntu-latest
117
- permissions :
118
- packages : write
119
- contents : read
120
- steps :
121
- - name : Checkout repository
122
- uses : actions/checkout@v4
123
-
124
- - name : Log into registry
48
+ -
125
49
if : env.PUSH == 'true'
50
+ name : Log into registry
126
51
uses : docker/login-action@v3.3.0
127
52
with :
128
53
registry : ghcr.io
129
54
username : ${{ github.actor }}
130
55
password : ${{ secrets.GITHUB_TOKEN }}
131
56
132
- - name : Extract Docker metadata
133
- if : env.PUSH == 'true'
134
- id : meta
135
- uses : docker/metadata-action@v5.5.1
57
+ # -
58
+ # name: Extract Docker metadata
59
+ # if: env.PUSH == 'true'
60
+ # id: meta
61
+ # uses: docker/metadata-action@v5.5.1
62
+ # with:
63
+ # images: ghcr.io/${{ github.repository }}
64
+ # tags: |
65
+ # type=raw,value=${{ matrix.ROS_DISTRO }}-${{ matrix.stage }}
66
+
67
+ - if : github.event_name == 'push'
68
+ name : Build and push (non PR)
69
+ uses : docker/bake-action@v5.5.0
136
70
with :
137
- images : ghcr.io/${{ github.repository }}
138
- tags : |
139
- type=raw,value=${{ matrix.ROS_DISTRO }}-${{ github.job }}
140
-
141
- - name : Build and push Docker image
142
- uses : docker/build-push-action@v6.7.0
143
- with :
144
- context : .
145
- file : .docker/Dockerfile
146
- build-args : ROS_DISTRO=${{ matrix.ROS_DISTRO }}
147
- target : ${{ github.job }}
148
- tags : ${{ steps.meta.outputs.tags }}
149
- labels : ${{ steps.meta.outputs.labels }}
71
+ workdir : .docker
150
72
push : ${{ env.PUSH }}
151
-
152
- desktop-nvidia :
153
- strategy :
154
- fail-fast : false
155
- matrix :
156
- ROS_DISTRO : [rolling]
157
- runs-on : ubuntu-latest
158
- permissions :
159
- packages : write
160
- contents : read
161
- steps :
162
- - name : Checkout repository
163
- uses : actions/checkout@v4
164
-
165
- - name : Log into registry
166
- if : env.PUSH == 'true'
167
- uses : docker/login-action@v3.3.0
73
+ set : |
74
+ *.platform=linux/amd64
75
+ *.cache-from=type=gha,scope=ci
76
+ *.cache-from=type=gha,scope=robot
77
+ *.cache-from=type=gha,scope=desktop
78
+ *.cache-from=type=gha,scope=desktop-nvidia
79
+ ci.cache-to=type=gha,mode=max,scope=ci
80
+ robot.cache-to=type=gha,mode=max,scope=robot
81
+ desktop.cache-to=type=gha,mode=max,scope=desktop
82
+ desktop-nvidia.cache-to=type=gha,mode=max,scope=desktop-nvidia
83
+
84
+ - if : github.event_name == 'pull_request'
85
+ name : Build and push (PR)
86
+ uses : docker/bake-action@v5.5.0
168
87
with :
169
- registry : ghcr.io
170
- username : ${{ github.actor }}
171
- password : ${{ secrets.GITHUB_TOKEN }}
172
-
173
- - name : Extract Docker metadata
174
- if : env.PUSH == 'true'
175
- id : meta
176
- uses : docker/metadata-action@v5.5.1
177
- with :
178
- images : ghcr.io/${{ github.repository }}
179
- tags : |
180
- type=raw,value=${{ matrix.ROS_DISTRO }}-${{ github.job }}
181
-
182
- - name : Build and push Docker image
183
- uses : docker/build-push-action@v6.7.0
184
- with :
185
- context : .
186
- file : .docker/Dockerfile
187
- build-args : ROS_DISTRO=${{ matrix.ROS_DISTRO }}
188
- target : ${{ github.job }}
189
- tags : ${{ steps.meta.outputs.tags }}
190
- labels : ${{ steps.meta.outputs.labels }}
191
- push : ${{ env.PUSH }}
88
+ workdir : .docker
89
+ targets : |
90
+ ${{ matrix.stage }}
91
+ set : |
92
+ *.platform=linux/amd64
93
+ *.cache-from=type=gha,scope=ci
94
+ *.cache-from=type=gha,scope=robot
95
+ *.cache-from=type=gha,scope=desktop
96
+ *.cache-from=type=gha,scope=desktop-nvidia
97
+ *.cache-to=
0 commit comments