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

GH actions and docker fixes and refactor #302

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

GH actions and docker fixes and refactor #302

wants to merge 3 commits into from

Conversation

dovvla
Copy link
Collaborator

@dovvla dovvla commented Nov 14, 2024

Pin VSCode Server version in VNC image due to incompatilibities in newer versions (cpp tools and ros extensions specifically cannot be installed to vscode server during image build).

Previously, the build and push job constitued of two parametrized jobs that were taking from the same template to build base and dependent vnc image. The .yml files themselves were somewhat convoluted and contained custom logic that should be unnecessary. Since buildx was already used in workflows, no reason not to use its really good features, like bake. Also, buildx has been installed by default since docker v23.0, and current is v27, so really, there is no reason not to use it, hence changes in the Makefile too (also left previous build logic as fallback).

The convoluted logic of evaluating tags and targets manually, then passing them around to build and push jobs has been completely moved to docker-bake.hcl, which is way more extendable, and also can be used for both local and remote use. This also removes 2 .yml files which were dependent on each other, and instead makes the CI part of the system clean and simple. In addition, the job that actually builds the images will run faster now, as it is not explicitly sequential as before (basically, think that vnc job is now in some form of hot start mode, as it is not separated, so it can prepare its dependencies that are not dependent on the upstream image, same goes for new deploy image)

Pin VSCode Server version in VNC image due to incompatilibities in newer versions (cpp tools and ros extensions specifically cannot be installed to vscode server during image build)

Previously, the build and push job constitued of two parametrized jobs that were taking from the same template to build base and dependent vnc image. The .yml files themselves were somewhat convoluted and contained custom logic that should be unnecessary.  Since buildx was already used in workflows, no reason not to use its really good features, like bake. Also, buildx has been installed by default since docker v23.0, and current is v27, so really, there is no reason not to use it, hence changes in the Makefile too (also left previous build goal as build_legacy goal for clarity).
The convoluted logic of evaluating tags and targets manually, then passing them around to build and push jobs has been completely moved to docker-bake.hcl, which is way more extendable, and also can be used for both local and remote use. This also removes 2 .yml files which were dependent on each other, and instead makes the CI part of the system clean and simple. In addition, the job that actually builds the images will run faster now, as it is not explicitly sequential as before (basically, think that vnc job is now in some form of hot start mode, as it is not separated, so it can prepare its dependencies that are not dependent on the upstream image)
…ble, modify Makefile, add initial Dockerfile.deploy
@dovvla dovvla added the devops System automation and configuration label Nov 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
devops System automation and configuration
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant