-
-
Notifications
You must be signed in to change notification settings - Fork 5k
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
Server: Add arm64 support for Joplin Server #10882
base: dev
Are you sure you want to change the base?
Conversation
CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅ |
I have read the CLA Document and I hereby sign the CLA |
recheck |
Actually, we generally try to put as much as possible in the TypeScript files because it's easier to work with. It's difficult to run a GitHub Action locally while it's trivial to run a TypeScript file. I'm struggling to review this PR because you changed so much code in the action. Is it no possible to update the TypeScript file to do what you want? |
I was afraid you would ask me for something like this 😢. To be honest, I only know that these GitHub actions are large pieces of JavaScript that set up QEMU and Docker BuildX to work together in the default GitHub runner. I'm not very confident that I could do it better without missing many edge cases. I've been trying to change only the Docker-related parts, and most of the changes I've made are related to container image tag generation. What if I revert all the changes and just introduce a new job called I could also try modifying |
Thanks for clarifying. I have a preference for using TypeScript scripts for all this because it's generally easier and safer to write in that language, but if your GitHub Actions implementation works well, then why not. Could you please confirm what we will get once that action is executed? Currently the script pushes four tags:
(see here: https://hub.docker.com/r/joplin/server/tags ) Will we get the same once we run your script? Also looking at the existing buildServerDocker.ts file, can you think of anything that may be missing in your new implementation? |
Summary
This pull request introduces ARM64 container pipeline for Joplin Server and adds the necessary dependencies for ARM64. I have successfully tested and used the image created in my repository on my Raspberry Pi 5.
I have changed
ServerDockerImage
to build the container using Docker buildx (based on thebuildServerDocker.js
script) and I have changedMain
to not been called for Joplin Server tags. I did all changes trying to maximize mimicking of the existing workflow.Execution scenarios
ServerDockerImage
is invoked from pull request or branch pushServerDockerImage
.ServerDockerImage
is invoked fromserver-v1.2.3
tagServerDockerImage
Possible limitations
skip-duplicate-actions
buildServerDocker.js
could be probably removed andrun_ci.sh
could be simplified, but I wasn't sure if you want to keep an local push script.1.2.3-beta
the git tag has to beserver-v1.2.3-beta
.