Skip to content

Allow to build development version of DEB, RPM and Docker with make

Tomasz Maczukin requested to merge prepare-build-current-docker-make-target into master

What does this MR do?

Adds a one-command make targets that will allow to build a DEB/RPM package and/or Docker image from the development version of the code.

Why was this MR needed?

Inspired by #3062 (closed). We have a Dockerfile file in the root of Runner's repository. This file was used in the past for automatic builds of Bleeding Edge version on Docker Hub from GitHub's repository.

Now, since two years, we're building the Bleeding Edge images as part of our CI/CD pipeline and we're pushing this to Docker Hub for each commit on master. This means that ./Dockerfile have lost it initial purpose. However...

Since it's a Dockerfile in the root of the repository many contributors may think, that it's the way how Docker image for GitLab Runner should be built and that docker build -t SOME_NAME . is everything that's needed to have a local, development version of Runner in a Docker image. And this is not true. Our official images are built from definitions in ./dockerfiles/(alpine|ubuntu) and they relay on many artifacts like helper images archives, Runner binary, DEB package etc.

We've already had a build_current script that builds a local, development version of the binary "properly". This MR:

  • adds a build_current_docker, build_current_deb and build_current_rpm targets, that build DEB/RPM packages and Docker image from local sources "properly", just like build_current does for the binary,
  • removes the confusing Dockerfile from the root of the repository.

Are there points in the code the reviewer needs to double check?

Does this MR meet the acceptance criteria?

  • Documentation created/updated
  • Tests
    • Added for this feature/bug
    • All builds are passing
  • Branch has no merge conflicts with master (if you do - rebase it please)

What are the relevant issue numbers?

Edited by Steve Xuereb

Merge request reports