Skip to content

Commit 44b65da

Browse files
committed
chore(ci): Switch to use outputs instead of global environments
1 parent 48ff0c5 commit 44b65da

File tree

2 files changed

+80
-50
lines changed

2 files changed

+80
-50
lines changed

.github/actions/docker-tags/action.yml

Lines changed: 15 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -32,32 +32,21 @@ runs:
3232
3333
CACHE_TAG_PI=${CACHE_IMAGE}:${TAG_PI}_cache
3434
35-
echo "GITHUB_REF='${GITHUB_REF}'"
36-
echo "BRANCH_NAME='${BRANCH_NAME}'"
37-
echo "TAG='${TAG}'"
38-
echo "TAG_PLOT='${TAG_PLOT}'"
39-
echo "TAG_FREQAI='${TAG_FREQAI}'"
40-
echo "TAG_FREQAI_RL='${TAG_FREQAI_RL}'"
41-
echo "TAG_FREQAI_TORCH='${TAG_FREQAI_TORCH}'"
42-
echo "TAG_ARM='${TAG_ARM}'"
43-
echo "TAG_PLOT_ARM='${TAG_PLOT_ARM}'"
44-
echo "TAG_FREQAI_ARM='${TAG_FREQAI_ARM}'"
45-
echo "TAG_FREQAI_RL_ARM='${TAG_FREQAI_RL_ARM}'"
46-
echo "TAG_PI='${TAG_PI}'"
47-
48-
echo "BRANCH_NAME=${BRANCH_NAME}" >> "$GITHUB_ENV"
49-
echo "TAG=${TAG}" >> "$GITHUB_ENV"
50-
echo "TAG_PLOT=${TAG_PLOT}" >> "$GITHUB_ENV"
51-
echo "TAG_FREQAI=${TAG_FREQAI}" >> "$GITHUB_ENV"
52-
echo "TAG_FREQAI_RL=${TAG_FREQAI_RL}" >> "$GITHUB_ENV"
53-
echo "TAG_FREQAI_TORCH=${TAG_FREQAI_TORCH}" >> "$GITHUB_ENV"
54-
echo "TAG_ARM=${TAG_ARM}" >> "$GITHUB_ENV"
55-
echo "TAG_PLOT_ARM=${TAG_PLOT_ARM}" >> "$GITHUB_ENV"
56-
echo "TAG_FREQAI_ARM=${TAG_FREQAI_ARM}" >> "$GITHUB_ENV"
57-
echo "TAG_FREQAI_RL_ARM=${TAG_FREQAI_RL_ARM}" >> "$GITHUB_ENV"
58-
echo "TAG_PI=${TAG_PI}" >> "$GITHUB_ENV"
59-
60-
echo "CACHE_TAG_PI=${CACHE_TAG_PI}" >> "$GITHUB_ENV"
35+
echo "BRANCH_NAME=${BRANCH_NAME}" >> "$GITHUB_OUTPUT"
36+
echo "TAG=${TAG}" >> "$GITHUB_OUTPUT"
37+
echo "TAG_PLOT=${TAG_PLOT}" >> "$GITHUB_OUTPUT"
38+
echo "TAG_FREQAI=${TAG_FREQAI}" >> "$GITHUB_OUTPUT"
39+
echo "TAG_FREQAI_RL=${TAG_FREQAI_RL}" >> "$GITHUB_OUTPUT"
40+
echo "TAG_FREQAI_TORCH=${TAG_FREQAI_TORCH}" >> "$GITHUB_OUTPUT"
41+
echo "TAG_ARM=${TAG_ARM}" >> "$GITHUB_OUTPUT"
42+
echo "TAG_PLOT_ARM=${TAG_PLOT_ARM}" >> "$GITHUB_OUTPUT"
43+
echo "TAG_FREQAI_ARM=${TAG_FREQAI_ARM}" >> "$GITHUB_OUTPUT"
44+
echo "TAG_FREQAI_RL_ARM=${TAG_FREQAI_RL_ARM}" >> "$GITHUB_OUTPUT"
45+
echo "TAG_PI=${TAG_PI}" >> "$GITHUB_OUTPUT"
46+
47+
echo "CACHE_TAG_PI=${CACHE_TAG_PI}" >> "$GITHUB_OUTPUT"
48+
49+
cat "$GITHUB_OUTPUT"
6150
6251
- name: Save commit SHA to file
6352
shell: bash

.github/workflows/docker-build.yml

Lines changed: 65 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ jobs:
3838
persist-credentials: false
3939

4040
- name: Set docker tag names
41+
id: tags
4142
uses: ./.github/actions/docker-tags
4243

4344
- name: Login to Docker Hub
@@ -62,11 +63,16 @@ jobs:
6263

6364
- name: Build image without cache
6465
if: github.event_name == 'schedule'
66+
env:
67+
TAG: ${{ steps.tags.outputs.TAG }}
6568
run: |
66-
docker build -t freqtrade:${TAG} .
69+
docker build -t ${IMAGE_NAME}:${TAG} .
6770
6871
- name: Build ARMHF image without cache
6972
if: github.event_name == 'schedule'
73+
env:
74+
TAG_PI: ${{ steps.tags.outputs.TAG_PI }}
75+
CACHE_TAG_PI: ${{ steps.tags.outputs.CACHE_TAG_PI }}
7076
run: |
7177
docker buildx build \
7278
--cache-to=type=registry,ref=${CACHE_TAG_PI} \
@@ -79,9 +85,11 @@ jobs:
7985
8086
- name: Build image with cache
8187
if: github.event_name != 'schedule'
88+
env:
89+
TAG: ${{ steps.tags.outputs.TAG }}
8290
run: |
8391
docker pull ${IMAGE_NAME}:${TAG} || true
84-
docker build --cache-from ${IMAGE_NAME}:${TAG} -t freqtrade:${TAG} .
92+
docker build --cache-from ${IMAGE_NAME}:${TAG} -t ${CACHE_IMAGE}:${TAG} .
8593
8694
- name: Build ARMHF image with cache
8795
if: github.event_name != 'schedule'
@@ -98,23 +106,29 @@ jobs:
98106
.
99107
100108
- name: Run build for AI images
109+
env:
110+
TAG: ${{ steps.tags.outputs.TAG }}
111+
TAG_PLOT: ${{ steps.tags.outputs.TAG_PLOT }}
112+
TAG_FREQAI: ${{ steps.tags.outputs.TAG_FREQAI }}
113+
TAG_FREQAI_RL: ${{ steps.tags.outputs.TAG_FREQAI_RL }}
101114
run: |
102-
docker build --build-arg sourceimage=freqtrade --build-arg sourcetag=${TAG} -t freqtrade:${TAG_PLOT} -f docker/Dockerfile.plot .
103-
docker build --build-arg sourceimage=freqtrade --build-arg sourcetag=${TAG} -t freqtrade:${TAG_FREQAI} -f docker/Dockerfile.freqai .
104-
docker build --build-arg sourceimage=freqtrade --build-arg sourcetag=${TAG_FREQAI} -t freqtrade:${TAG_FREQAI_RL} -f docker/Dockerfile.freqai_rl .
115+
docker build --build-arg sourceimage=${CACHE_IMAGE} --build-arg sourcetag=${TAG} -t ${CACHE_IMAGE}:${TAG_PLOT} -f docker/Dockerfile.plot .
116+
docker build --build-arg sourceimage=${CACHE_IMAGE} --build-arg sourcetag=${TAG} -t ${CACHE_IMAGE}:${TAG_FREQAI} -f docker/Dockerfile.freqai .
117+
docker build --build-arg sourceimage=${CACHE_IMAGE} --build-arg sourcetag=${TAG_FREQAI} -t ${CACHE_IMAGE}:${TAG_FREQAI_RL} -f docker/Dockerfile.freqai_rl .
105118
106-
- name: Tag images for caching
107-
run: |
108-
docker tag freqtrade:$TAG ${CACHE_IMAGE}:$TAG
109-
docker tag freqtrade:$TAG_PLOT ${CACHE_IMAGE}:$TAG_PLOT
110-
docker tag freqtrade:$TAG_FREQAI ${CACHE_IMAGE}:$TAG_FREQAI
111-
docker tag freqtrade:$TAG_FREQAI_RL ${CACHE_IMAGE}:$TAG_FREQAI_RL
112119
113120
- name: Run backtest in Docker
121+
env:
122+
TAG: ${{ steps.tags.outputs.TAG }}
114123
run: |
115-
docker run --rm -v $(pwd)/tests/testdata/config.tests.json:/freqtrade/config.json:ro -v $(pwd)/tests:/tests freqtrade:${TAG} backtesting --datadir /tests/testdata --strategy-path /tests/strategy/strats/ --strategy StrategyTestV3
124+
docker run --rm -v $(pwd)/tests/testdata/config.tests.json:/freqtrade/config.json:ro -v $(pwd)/tests:/tests ${CACHE_IMAGE}:${TAG} backtesting --datadir /tests/testdata --strategy-path /tests/strategy/strats/ --strategy StrategyTestV3
116125
117126
- name: Push cache images
127+
env:
128+
TAG: ${{ steps.tags.outputs.TAG }}
129+
TAG_PLOT: ${{ steps.tags.outputs.TAG_PLOT }}
130+
TAG_FREQAI: ${{ steps.tags.outputs.TAG_FREQAI }}
131+
TAG_FREQAI_RL: ${{ steps.tags.outputs.TAG_FREQAI_RL }}
118132
run: |
119133
docker push ${CACHE_IMAGE}:$TAG
120134
docker push ${CACHE_IMAGE}:$TAG_PLOT
@@ -140,6 +154,7 @@ jobs:
140154
persist-credentials: false
141155

142156
- name: Set docker tag names
157+
id: tags
143158
uses: ./.github/actions/docker-tags
144159

145160
- name: Login to Docker Hub
@@ -157,65 +172,89 @@ jobs:
157172

158173
- name: Build image without cache
159174
if: github.event_name == 'schedule'
175+
env:
176+
TAG_ARM: ${{ steps.tags.outputs.TAG_ARM }}
160177
run: |
161-
docker build -t freqtrade:${TAG_ARM} .
178+
docker build -t ${IMAGE_NAME}:${TAG_ARM} .
162179
163180
- name: Build image with cache
164181
if: github.event_name != 'schedule'
182+
env:
183+
TAG_ARM: ${{ steps.tags.outputs.TAG_ARM }}
165184
run: |
166185
docker pull ${IMAGE_NAME}:${TAG_ARM} || true
167-
docker build --cache-from ${IMAGE_NAME}:${TAG_ARM} -t freqtrade:${TAG_ARM} .
186+
docker build --cache-from ${IMAGE_NAME}:${TAG_ARM} -t ${CACHE_IMAGE}:${TAG_ARM} .
168187
169188
- name: Run build for AI images
189+
env:
190+
TAG_PLOT_ARM: ${{ steps.tags.outputs.TAG_PLOT_ARM }}
191+
TAG_FREQAI_ARM: ${{ steps.tags.outputs.TAG_FREQAI_ARM }}
192+
TAG_FREQAI_RL_ARM: ${{ steps.tags.outputs.TAG_FREQAI_RL_ARM }}
170193
run: |
171-
docker build --build-arg sourceimage=freqtrade --build-arg sourcetag=${TAG_ARM} -t freqtrade:${TAG_PLOT_ARM} -f docker/Dockerfile.plot .
172-
docker build --build-arg sourceimage=freqtrade --build-arg sourcetag=${TAG_ARM} -t freqtrade:${TAG_FREQAI_ARM} -f docker/Dockerfile.freqai .
173-
docker build --build-arg sourceimage=freqtrade --build-arg sourcetag=${TAG_FREQAI_ARM} -t freqtrade:${TAG_FREQAI_RL_ARM} -f docker/Dockerfile.freqai_rl .
194+
docker build --build-arg sourceimage=${CACHE_IMAGE} --build-arg sourcetag=${TAG_ARM} -t ${CACHE_IMAGE}:${TAG_PLOT_ARM} -f docker/Dockerfile.plot .
195+
docker build --build-arg sourceimage=${CACHE_IMAGE} --build-arg sourcetag=${TAG_ARM} -t ${CACHE_IMAGE}:${TAG_FREQAI_ARM} -f docker/Dockerfile.freqai .
196+
docker build --build-arg sourceimage=${CACHE_IMAGE} --build-arg sourcetag=${TAG_FREQAI_ARM} -t ${CACHE_IMAGE}:${TAG_FREQAI_RL_ARM} -f docker/Dockerfile.freqai_rl .
174197
175-
- name: Tag images for caching
176-
run: |
177-
docker tag freqtrade:$TAG_ARM ${CACHE_IMAGE}:$TAG_ARM
178-
docker tag freqtrade:$TAG_PLOT_ARM ${CACHE_IMAGE}:$TAG_PLOT_ARM
179-
docker tag freqtrade:$TAG_FREQAI_ARM ${CACHE_IMAGE}:$TAG_FREQAI_ARM
180-
docker tag freqtrade:$TAG_FREQAI_RL_ARM ${CACHE_IMAGE}:$TAG_FREQAI_RL_ARM
181198
182199
- name: Run backtest in Docker
200+
env:
201+
TAG_ARM: ${{ steps.tags.outputs.TAG_ARM }}
183202
run: |
184-
docker run --rm -v $(pwd)/tests/testdata/config.tests.json:/freqtrade/config.json:ro -v $(pwd)/tests:/tests freqtrade:${TAG_ARM} backtesting --datadir /tests/testdata --strategy-path /tests/strategy/strats/ --strategy StrategyTestV3
203+
docker run --rm -v $(pwd)/tests/testdata/config.tests.json:/freqtrade/config.json:ro -v $(pwd)/tests:/tests ${CACHE_IMAGE}:${TAG_ARM} backtesting --datadir /tests/testdata --strategy-path /tests/strategy/strats/ --strategy StrategyTestV3
185204
186205
- name: Docker images
187206
run: |
188207
docker images
189208
190209
- name: Push cache images
210+
env:
211+
TAG_PLOT_ARM: ${{ steps.tags.outputs.TAG_PLOT_ARM }}
212+
TAG_FREQAI_ARM: ${{ steps.tags.outputs.TAG_FREQAI_ARM }}
213+
TAG_FREQAI_RL_ARM: ${{ steps.tags.outputs.TAG_FREQAI_RL_ARM }}
214+
TAG_ARM: ${{ steps.tags.outputs.TAG_ARM }}
191215
run: |
192216
docker push ${CACHE_IMAGE}:$TAG_PLOT_ARM
193217
docker push ${CACHE_IMAGE}:$TAG_FREQAI_ARM
194218
docker push ${CACHE_IMAGE}:$TAG_FREQAI_RL_ARM
195219
docker push ${CACHE_IMAGE}:$TAG_ARM
196220
197221
- name: Create manifests
222+
env:
223+
TAG_PLOT_ARM: ${{ steps.tags.outputs.TAG_PLOT_ARM }}
224+
TAG_FREQAI_ARM: ${{ steps.tags.outputs.TAG_FREQAI_ARM }}
225+
TAG_FREQAI_RL_ARM: ${{ steps.tags.outputs.TAG_FREQAI_RL_ARM }}
226+
TAG_ARM: ${{ steps.tags.outputs.TAG_ARM }}
198227
run: |
199228
docker buildx imagetools create \
200229
--tag ${IMAGE_NAME}:${TAG} \
201230
--tag ${GHCR_IMAGE_NAME}:${TAG} \
202231
${CACHE_IMAGE}:${TAG} ${CACHE_IMAGE}:${TAG_ARM} ${IMAGE_NAME}:${TAG_PI}
203232
204233
- name: Create multiarch image - Plot
234+
env:
235+
TAG_PLOT: ${{ steps.tags.outputs.TAG_PLOT }}
236+
TAG_PLOT_ARM: ${{ steps.tags.outputs.TAG_PLOT_ARM }}
205237
run: |
206238
docker buildx imagetools create \
207239
--tag ${IMAGE_NAME}:${TAG_PLOT} \
208240
--tag ${GHCR_IMAGE_NAME}:${TAG_PLOT} \
209241
${CACHE_IMAGE}:${TAG_PLOT} ${CACHE_IMAGE}:${TAG_PLOT_ARM}
210242
211243
- name: Create multiarch image - FreqAI
244+
env:
245+
TAG_FREQAI: ${{ steps.tags.outputs.TAG_FREQAI }}
246+
TAG_FREQAI_ARM: ${{ steps.tags.outputs.TAG_FREQAI_ARM }}
212247
run: |
213248
docker buildx imagetools create \
214249
--tag ${IMAGE_NAME}:${TAG_FREQAI} \
215250
--tag ${GHCR_IMAGE_NAME}:${TAG_FREQAI} \
216251
${CACHE_IMAGE}:${TAG_FREQAI} ${CACHE_IMAGE}:${TAG_FREQAI_ARM}
217252
218253
- name: Create multiarch image - FreqAI RL
254+
env:
255+
TAG_FREQAI_RL: ${{ steps.tags.outputs.TAG_FREQAI_RL }}
256+
TAG_FREQAI_RL_ARM: ${{ steps.tags.outputs.TAG_FREQAI_RL_ARM }}
257+
TAG_FREQAI_TORCH: ${{ steps.tags.outputs.TAG_FREQAI_TORCH }}
219258
run: |
220259
# Create special Torch tag - which is identical to the RL tag.
221260
docker buildx imagetools create \
@@ -227,6 +266,8 @@ jobs:
227266
228267
- name: Tag latest
229268
if: env.TAG == 'develop'
269+
env:
270+
TAG: ${{ steps.tags.outputs.TAG }}
230271
run: |
231272
# Tag image as latest
232273
docker buildx imagetools create \

0 commit comments

Comments
 (0)