emscripten-core / emsdk

Emscripten SDK
http://emscripten.org
Other
2.98k stars 679 forks source link

Auto-publish Arm64 images when emscripten-releases-tags.json is updated #1231

Closed jamsinclair closed 9 months ago

jamsinclair commented 1 year ago

Fixes: #1206 #1211

Hi Maintainers, firstly thank you for all your work around the emscripten project!

I would like to propose this PR as a potential solution to some issues identified in #1206 and #1211

  1. Adds a CircleCI Job that will only run on pushes to the main branch. It will run on a CircleCI Arm machine.
  2. The job will continue only if the emscripten-releases-tags.json file has changed and there isn't already a published version for the current latest-arm64-linux version
  3. The job will then proceed to build an arm64 image, create an alias tag and push to dockerhub

⚠️ I haven't tested the pipeline on a CircleCI build. There might be some bugs or fixes to make still.

I understand if this is not an extra complexity you want to support for the project yet, if so feel free to close the PR 🙇

jozefchutka commented 1 year ago

Just checking, is this the issue to subscribe to observe the progress on latest emsdks being available for dockers? - Issue reported on https://github.com/emscripten-core/emscripten/issues/19275 ?

sbc100 commented 1 year ago

Just checking, is this the issue to subscribe to observe the progress on latest emsdks being available for dockers? - Issue reported on emscripten-core/emscripten#19275 ?

Specifically, this issue related to publish arm64 versions of the docker image. The x86_64 images are already auto-published continuously.

jamsinclair commented 10 months ago

Hey @sbc100 is there anything you would like to see to make this PR a possibility? 🤓

As it stands, this pull request would automatically publish a special image tag, <version>-arm64, when a change like #1288 is made. It would be an opt-in only experience, a user will have to explicitly use an *-arm64 image tag.

I think the simplest long term solution would be to release multiarch docker images. This can be conveniently done in one command with BuildKit, docker buildx build --platform linux/amd64,linux/arm64 .. However, this is blocked by the lag between emsdk releases of each arch.