Skip to content
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

Add ARM64 Support and Optimize Build Process #145

Merged
merged 5 commits into from
Nov 9, 2024

Conversation

danielchristianschroeter
Copy link
Contributor

This pull request introduces ARM64 platform support to the MGOB project, enhancing cross-platform compatibility and broadening its usability across diverse architectures. Key updates include:

  1. ARM64 Integration:

    • Updated Docker configurations to support both linux/amd64 and linux/arm64 platforms.
    • Modified the build processes to recognize and correctly handle the ARM64 architecture, ensuring smooth deployment and execution.
  2. Workflow and Build Optimization:

    • Improved the CI/CD pipeline by updating GitHub workflows for more efficient builds, leveraging newer versions of the action tools for better performance and stability.
    • Refactored scripts (build.sh) to dynamically determine architecture and execute conditional installations of dependencies like RClone, MinIO, and cloud SDKs (Azure, AWS, Google Cloud) based on environment variables.
    • Enhanced Dockerfiles to streamline multistage builds and leverage architectural-specific optimizations.
  3. Dependency Updates:

    • Bumped versions for key dependencies across Dockerfiles for enhanced security and feature improvements. This includes updated versions of Azure CLI, Google Cloud SDK, etc.
  4. Codebase Refactoring:

    • Cleaned up redundant code and streamlined build scripts for easier maintenance.
    • Adjusted commands and configurations to align with best practices.
  5. Successful Build and Deployment Demonstrations:

This implementation addresses and resolves Issue #116. Your feedback and suggestions are welcome to further refine MGOB's functionalities and compatibility.

@maxisam
Copy link
Owner

maxisam commented Nov 9, 2024

@danielchristianschroeter Thanks for making this PR, I reverted the docker build in the workflow. It shouldn't push before going through the test.

@maxisam
Copy link
Owner

maxisam commented Nov 9, 2024

nvm, there is an issue of load with multi-platform

docker/buildx#59

we only need amd docker build, since the platform is amd anyway
@maxisam
Copy link
Owner

maxisam commented Nov 9, 2024

I just removed ARM docker build before test. But to be honest, if we really wanna ensure it works, we probably should use M1 runner? It will be a bigger change for the workflow I think

@maxisam maxisam merged commit 89790e9 into maxisam:main Nov 9, 2024
1 of 2 checks passed
@danielchristianschroeter
Copy link
Contributor Author

I just removed ARM docker build before test. But to be honest, if we really wanna ensure it works, we probably should use M1 runner? It will be a bigger change for the workflow I think

M1 isn't typically used in server environments, it may not be the optimal solution for our needs. It might be more efficient to utilize existing ARM-compatible CI/CD tools to ensure our builds are properly tested across ARM architecture. This approach could maintain our current workflow with minimal disruption while still achieving reliable testing.

@danielchristianschroeter danielchristianschroeter deleted the arm-support branch November 9, 2024 19:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Docker images for arm64
2 participants