-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build and push multiple (ARM/ARM64) architecture images on Docker Hub #73
Conversation
I don't have any experience with this but looks good. It's a bit hard fo rme to manually trigger the workflow on a remote branch so I'll just copy your branch first |
The test pipeline takes a fair bit longer than the original one, there's no parallelisation in there right now. If it's a problem there are ways to do it (separate steps/jobs per arch), but considering you only build/push for new tags, is it an issue currently...? If you're happy to just let it take the extra minutes in serial for now, that's fine :) |
I don't mind it taking a while, it's not a rush, however it seems to be stuck/frozen on this
I cancelled the previous run after 15min https://github.com/longzheng/open-dynamic-export/actions/runs/12442729443/job/34741150224 just in case it was a once-off problem, but it seems to be stuck on the same platform in the new run https://github.com/longzheng/open-dynamic-export/actions/runs/12442729443/job/34741409521#step:6:402 |
Looks like it may be this issue docker/build-push-action#1071 However instead of downgrading the Node image I wonder if changing the GitHub Action runner image will also work |
.github/workflows/publish-docker.yml
Outdated
@@ -43,6 +43,7 @@ jobs: | |||
with: | |||
context: . | |||
push: true | |||
platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm64/v8 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I saw here https://github.com/docker/build-push-action/blob/master/.github/build-push-summary.png that this also support a list format, which might be easier to understand
platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm64/v8 | |
platforms: | |
- linux/amd64 | |
- linux/arm64 | |
- linux/arm/v7 | |
- linux/arm64/v8 |
Ah damn the macOS runner doesn't contain Docker https://github.com/actions/runner-images/blob/main/images/macos/macos-14-Readme.md |
770a39e
to
f080190
Compare
Interesting... I wonder if we should skip |
I agree downgrading Node is less than ideal... |
Yeah maybe we revisit |
Yep seems reasonable 👍 did you want to kick off another test with 6694b8d ? |
Looking at https://en.wikipedia.org/wiki/Raspberry_Pi#Specifications it's only the Pi2B that's impacted by not having |
Hmmm now it's complaining about the new syntax https://github.com/longzheng/open-dynamic-export/actions/runs/12443121813/workflow |
Ah annoying lol, I'll adjust :) |
Oh wait the list syntax is not an array https://github.com/docker/build-push-action/tree/master?tab=readme-ov-file#inputs
So I think it should be with:
context: .
push: true
# TODO: find a workaround for https://github.com/docker/build-push-action/issues/1071 without downgrading NodeJS
# linux/arm/v7
platforms: |
linux/amd64
linux/arm64
linux/arm64/v8 |
Most other projects out there tend to use the CSV syntax by the looks of it... https://github.com/search?q=%22platforms%3A%22+path%3A.github%2Fworkflows+language%3AYAML&type=code&l=YAML shall we just stick with it for consistency? |
Give a1c0dff a try |
Sure sounds good, agree the list syntax is kind of unexpected |
I double checked, looks like Home Assistant Green and Blue are both |
It completed successfully but had a warning https://github.com/longzheng/open-dynamic-export/actions/runs/12443199747/job/34742129818#step:6:443
|
According to this |
aha interesting, thx |
looks better https://hub.docker.com/r/longzhengau/open-dynamic-export/tags :) |
Can confirm it runs fine using Orbstack on MacOS/Apple Silicon now 👍 handy for tuning configs locally |
This will make running Open Dynamic Export on smaller/embedded hardware easier, eg. Home Assistant Green/Blue/Yellow/Raspberry Pi + Apple Silicon
Originally I was going with
linux/arm64
only as an addition, but after some reading you also need specific arm/arm64 variants for some of the more powerful ARM devices out there. This may need extras added over time, but this change should cover the bulk of the required options.https://en.wikipedia.org/wiki/Raspberry_Pi#Specifications shows most from a Pi2B upwards will work. Fairly sure the ODROID devices are
arm64/v8
, I'll confirm next week :)Confirmed on MacOS it wants to use
linux/arm64/v8
with an Apple M1 Pro