Skip to content

Commit 6281b89

Browse files
committed
feat: add support for multi-platform builds
1 parent 45bb767 commit 6281b89

File tree

2 files changed

+23
-14
lines changed

2 files changed

+23
-14
lines changed

.github/workflows/main.yml

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,56 +9,65 @@ on:
99

1010
jobs:
1111
changes:
12-
name: Dockerfile changes
12+
name: Dockerfile Changes
1313
runs-on: ubuntu-latest
1414
outputs:
1515
dockerfiles: ${{ steps.filter.outputs.dockerfiles_files }}
1616
dockerfiles_changed: ${{ steps.filter.outputs.dockerfiles }}
1717
steps:
18-
- name: Checkout
18+
- name: Checkout repository
1919
uses: actions/checkout@v4
20-
- uses: dorny/paths-filter@v3
20+
21+
- name: Filter Dockerfile changes
22+
uses: dorny/paths-filter@v3
2123
id: filter
2224
with:
2325
list-files: json
2426
filters: |
2527
dockerfiles:
2628
- added|modified: 'dockerfiles/*.Dockerfile'
29+
2730
- name: Generate Markdown Summary
28-
run: |
29-
echo New/modified Dockerfiles: ${{ steps.filter.outputs.dockerfiles_files }} >> $GITHUB_STEP_SUMMARY
31+
run: echo "New/modified Dockerfiles: ${{ steps.filter.outputs.dockerfiles_files }}" >> $GITHUB_STEP_SUMMARY
3032

3133
ghcr:
32-
needs: [changes]
34+
needs: changes
3335
if: ${{ needs.changes.outputs.dockerfiles_changed == 'true' }}
3436
runs-on: ubuntu-latest
3537
permissions:
3638
contents: read
3739
packages: write
3840
strategy:
39-
matrix:
41+
matrix:
4042
image: ${{ fromJson(needs.changes.outputs.dockerfiles) }}
4143
steps:
42-
- name: checkout
44+
- name: Checkout repository
4345
uses: actions/checkout@v4
4446

45-
- name: GHCR Login
46-
uses: docker/login-action@v2
47+
- name: Set up QEMU for cross-platform builds
48+
uses: docker/setup-qemu-action@v3
49+
50+
- name: Set up Docker Buildx
51+
uses: docker/setup-buildx-action@v3
52+
53+
- name: Login to GHCR
54+
uses: docker/login-action@v3
4755
with:
4856
registry: ghcr.io
4957
username: ${{ github.actor }}
5058
password: ${{ secrets.GITHUB_TOKEN }}
51-
59+
5260
- id: image-tag # example output: "ghcr.io/kestra-io/pydata:latest"
5361
run: |
54-
export IMAGE=$(basename ${{ matrix.image }} .Dockerfile)
62+
IMAGE=$(basename ${{ matrix.image }} .Dockerfile)
5563
echo "image_url=ghcr.io/kestra-io/$IMAGE:latest" >> $GITHUB_OUTPUT
5664
echo "file=${{ matrix.image }}" >> $GITHUB_OUTPUT
57-
65+
5866
- name: Build and push Docker image
5967
uses: docker/build-push-action@v4
6068
with:
6169
context: .
6270
push: true
6371
tags: ${{ steps.image-tag.outputs.image_url }}
6472
file: ${{ steps.image-tag.outputs.file }}
73+
platforms: linux/amd64,linux/arm64

.github/workflows/scheduled.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Container Image Packages
1+
name: Scheduled Container Image Packages
22

33
on:
44
schedule:

0 commit comments

Comments
 (0)