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

Refactor build #25

Open
wants to merge 122 commits into
base: main
Choose a base branch
from
Open

Refactor build #25

wants to merge 122 commits into from

Conversation

edenreich
Copy link
Collaborator

@edenreich edenreich commented Feb 15, 2025

Summary

  • Using clang as a linker for both arm64 and x86 architectures
  • Removing default dependencies from octocrab - adding only the absolutely necessary features
  • Changing base image from ubuntu-24.04 to alpine21 - since it by default uses musl over glibc

…lpine base image

I would need to create multiple layers for each programming language with their common tools, starting with rust.

Signed-off-by: Eden Reich <[email protected]>
…ontainers with Rust tools support and minimal ones

Signed-off-by: Eden Reich <[email protected]>
## [0.1.4-rc.1](0.1.3...0.1.4-rc.1) (2025-02-16)

### ♻️ Improvements

* **docker:** Simplify Dockerfile and update build process with Alpine base image ([ccf6275](ccf6275))

### 🐛 Bug Fixes

* **docker-compose:** Update coder service image version to 0.1.3 with alpine base image ([c2d26b0](c2d26b0))
* **docker:** Add git and curl to the container image for enhanced functionality ([b21b49b](b21b49b))

### 👷 CI

* Enhance GitHub Actions workflow for building and pushing Docker containers with Rust tools support and minimal ones ([3a50346](3a50346))
Copy link

🎉 This PR is included in version 0.1.4-rc.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

It often doesn't fit in Github UI which is quite annoying.

Signed-off-by: Eden Reich <[email protected]>
## [0.1.4-rc.2](0.1.4-rc.1...0.1.4-rc.2) (2025-02-16)

### ♻️ Improvements

* Update Dockerfile and CI workflow to use clang and llvm for cross-compilation ([c0cf8d3](c0cf8d3))

### 👷 CI

* Increase timeout for B&P Containers job to 65 minutes ([c90a1f4](c90a1f4))
* Make the Build and Push job name shorter ([a41ed31](a41ed31))
* Reduce timeout for B&P Containers job from 65 to 15 minutes ([f610944](f610944))
* Update Ubuntu version in release workflow to 24.04 and add arm64 runner ([41e2c5f](41e2c5f))
Copy link

🎉 This PR is included in version 0.1.4-rc.2 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Finally have my own runners using ARC on Arm64, will give it a test.

Signed-off-by: Eden Reich <[email protected]>
## [0.1.4-rc.3](0.1.4-rc.2...0.1.4-rc.3) (2025-02-17)

### 👷 CI

* Change ARM64 jobs to use self-hosted runners in release workflow ([274d375](274d375))
Copy link

🎉 This PR is included in version 0.1.4-rc.3 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

…ted jobs

Just to ensure it runs on the correct dynamic runner.

Signed-off-by: Eden Reich <[email protected]>
## [0.1.4-rc.4](0.1.4-rc.3...0.1.4-rc.4) (2025-02-17)

### 👷 CI

* Update release workflow to handle macOS builds separately ([d242dce](d242dce))
* Update release workflow to include ubuntu-22.04-arm64 in self-hosted jobs ([74429be](74429be))
Copy link

🎉 This PR is included in version 0.1.4-rc.4 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Just to trigger a release candidate change, will bring it back later.

Signed-off-by: Eden Reich <[email protected]>
## [0.1.4-rc.5](0.1.4-rc.4...0.1.4-rc.5) (2025-02-17)

### 👷 CI

* Comment out Build and Push Rust Container job in release workflow ([8e8af76](8e8af76))
Copy link

🎉 This PR is included in version 0.1.4-rc.5 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

It's no longer needed since it's built natively, no need emulator.

Signed-off-by: Eden Reich <[email protected]>
## [0.1.4-rc.6](0.1.4-rc.5...0.1.4-rc.6) (2025-02-17)

### 👷 CI

* Comment out QEMU setup step in release workflow ([4a09c1a](4a09c1a))
* Comment out temporarily build_binaries job in release workflow to speed things up ([4d00ad3](4d00ad3))
* Remove conditional check for minimal variant in B&P Minimal Container job ([ca6f85f](ca6f85f))
* Rename build_container job to build_containers and update commented job name ([1bdf885](1bdf885))
* Split language specific containers with tools to a separate job and comment it out ([fd20e5b](fd20e5b))
…the local cache

Have to figure out why it's not saving to the local cache directory.

Signed-off-by: Eden Reich <[email protected]>
…ements like execution time etc

Signed-off-by: Eden Reich <[email protected]>
… improved performance, I think it's default behaviour but I'm not entirely sure

Just for safety specify the number of cores available for the build.

Signed-off-by: Eden Reich <[email protected]>
… compressed caching and snapshot mode

Signed-off-by: Eden Reich <[email protected]>
…e --no-cache is already in use

Signed-off-by: Eden Reich <[email protected]>
…performance

Also copy only the directories that are needed.

Signed-off-by: Eden Reich <[email protected]>
OMG, this is so unexpected, but that RUN mkdir /app before WORKDIR is the issue with kaniko why the cache is being hit. Super strange!!!

Signed-off-by: Eden Reich <[email protected]>
## [0.1.4-rc.35](0.1.4-rc.34...0.1.4-rc.35) (2025-02-26)

### ⚡️ Improvements

* Add release task for local Docker container execution so I can test the release ([8a00250](8a00250))

### 🔧 Miscellaneous

* Update dependencies to latest versions and optimize release profile settings ([97b7009](97b7009))

### 📦 Miscellaneous

* Add missing flags, not sure yet why kaniko is not saving into the local cache ([cca01e2](cca01e2))
* Attempt to fix caching ([572d0f9](572d0f9))
* Create /app directory in Dockerfile for application workspace ([82d6449](82d6449))
* Enhance caching strategy in release workflow and Taskfile with compressed caching and snapshot mode ([59857fd](59857fd))
* Import TARGET_ARCH argument to the chef layer in the Dockerfile ([24463ec](24463ec))
* Increase verbosity of cargo build command in Dockerfile ([dcd030c](dcd030c))
* Install Dive to better analyse caching layers ([a19249c](a19249c))
* Optimize cargo build command to utilize all available jobs for improved performance,  I think it's default behaviour but I'm not entirely sure ([fd4f9f4](fd4f9f4))
* Optimize Dockerfile by adding cache mounts for improved build performance ([22d8196](22d8196))
* Remove redundant cache cleanup commands from Dockerfile because --no-cache is already in use ([f05cd51](f05cd51))
* Remove unnecessary target-specific rustflags for aarch64 ([dd3bc44](dd3bc44))
* Update Kaniko context to local directory for improved build process ([e447ca3](e447ca3))
* Update Zsh configuration to include additional right prompt elements like execution time etc ([bceb4b4](bceb4b4))
Copy link

🎉 This PR is included in version 0.1.4-rc.35 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

This package is very slow, so it's better to make it for now optional feature.

Perhaps I can improve the speed of compilation with a pre-generated completion only for zsh and bash stored in text format on the SCM and then pull it once the user executes the completion they need. But for now I'll just make this as an optional feature to speed things up, because completion is not a critical feature.

After investigating the issue it seems like it takes really long to compile due to intensive macros and codegen in this repo and they do not make it as an optional feature to choose from what completion is needed for what shell, i.e you have to include everything - which is bad.

Signed-off-by: Eden Reich <[email protected]>
## [0.1.4-rc.36](0.1.4-rc.35...0.1.4-rc.36) (2025-02-26)

### 📦 Miscellaneous

* Add optional shell completions feature using clap_complete ([0fcaca0](0fcaca0))
* Update uuid dependency to version 1.15.0 ([5d61147](5d61147))
Copy link

🎉 This PR is included in version 0.1.4-rc.36 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

…- it revalidating the cache on each run

Signed-off-by: Eden Reich <[email protected]>
Those are only valid for buildx, not needed for kaniko.

Signed-off-by: Eden Reich <[email protected]>
Until I buy raspberry pi 5 the cores for compiling of the A72 cortex is pretty much limited in speed.

Signed-off-by: Eden Reich <[email protected]>
## [0.1.4-rc.37](0.1.4-rc.36...0.1.4-rc.37) (2025-02-26)

### 📦 Miscellaneous

* Add workflow step to sign container images with GitHub OIDC ([a8f6296](a8f6296))
* Import CommandFactory for optional completions feature ([05ce42a](05ce42a))
* Increase timeout for B&P Containers job in release workflow ([bbee100](bbee100))
* Remove unnecessary image creation label from release workflow - it revalidating the cache on each run ([3abdba0](3abdba0))
* Simplify Dockerfile by removing cache mounts from cargo commands ([72a5c91](72a5c91))
* Update release workflow and Taskfile for improved cached container build process ([c78b91c](c78b91c))
* Use consistent style ([f0aa8e8](f0aa8e8))
Copy link

🎉 This PR is included in version 0.1.4-rc.37 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant