diff options
| author | Alessio Caiazza <acaiazza@gitlab.com> | 2019-02-08 08:57:53 +0000 |
|---|---|---|
| committer | Alessio Caiazza <acaiazza@gitlab.com> | 2019-02-08 08:57:53 +0000 |
| commit | 0985c720d4dbcfe313faf2877e4a565c8de60ae0 (patch) | |
| tree | 114c644d570862a43096ed910b6f3281a5884a90 | |
| parent | Revert "Merge branch 'fix-release-docker-images-stage' into 'master'" (diff) | |
| download | gitlab-runner-0985c720d4dbcfe313faf2877e4a565c8de60ae0.tar.gz | |
Revert "Merge branch '3755-helper-image-for-windows-container-execution-update-make-file' into 'master'"
This reverts merge request !1174
| -rw-r--r-- | .gitlab-ci.yml | 2 | ||||
| -rw-r--r-- | Makefile | 11 | ||||
| -rw-r--r-- | Makefile.docker.mk | 33 | ||||
| -rw-r--r-- | Makefile.runner_helper.mk | 58 | ||||
| -rw-r--r-- | dockerfiles/build/Dockerfile.arm (renamed from dockerfiles/build/Dockerfile.linux_arm) | 2 | ||||
| -rw-r--r-- | dockerfiles/build/Dockerfile.x86_64 (renamed from dockerfiles/build/Dockerfile.linux_x86_64) | 2 |
6 files changed, 42 insertions, 66 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7460c444..3807570e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -70,7 +70,7 @@ helper images: <<: *docker stage: prebuild script: - - make helper-docker + - make docker artifacts: paths: - out/helper-images/ @@ -65,9 +65,9 @@ MOCKERY_FLAGS = -note="This comment works around https://github.com/vektra/mocke .PHONY: clean version mocks -all: deps helper-docker build +all: deps docker build -include Makefile.runner_helper.mk +include Makefile.docker.mk help: # Commands: @@ -76,7 +76,7 @@ help: # # Development commands: # make install - install the version suitable for your OS as gitlab-runner - # make helper-docker - build docker dependencies + # make docker - build docker dependencies # # Testing commands: # make test - run project tests @@ -117,12 +117,13 @@ build_simple: $(GOPATH_SETUP) -o "out/binaries/$(NAME)" \ $(PKG) -build_current: helper-docker build_simple +build_current: docker build_simple check_race_conditions: @./scripts/check_race_conditions $(OUR_PACKAGES) -test: $(PKG_BUILD_DIR) helper-docker +test: $(PKG_BUILD_DIR) docker + # Running tests... go test $(OUR_PACKAGES) $(TESTFLAGS) parallel_test_prepare: $(GOPATH_SETUP) diff --git a/Makefile.docker.mk b/Makefile.docker.mk new file mode 100644 index 00000000..aff8bd11 --- /dev/null +++ b/Makefile.docker.mk @@ -0,0 +1,33 @@ +ifeq (, $(shell docker info 2>/dev/null)) +USE_PRECOMPILED_IMAGES ?= 1 +endif + +docker: out/helper-images/prebuilt-x86_64.tar.xz out/helper-images/prebuilt-arm.tar.xz + +ifeq (, $(USE_PRECOMPILED_IMAGES)) +HELPER_GO_FILES ?= $(shell find common network vendor -name '*.go') + +GO_x86_64_ARCH = amd64 +GO_arm_ARCH = arm + +dockerfiles/build/binaries/gitlab-runner-helper.%: $(HELPER_GO_FILES) $(GOX) + gox -osarch=linux/$(GO_$*_ARCH) -ldflags "$(GO_LDFLAGS)" -output=$@ $(PKG)/apps/gitlab-runner-helper + +out/helper-images/prebuilt-%.tar: dockerfiles/build/binaries/gitlab-runner-helper.% + @mkdir -p $$(dirname $@_) + docker build -t gitlab/gitlab-runner-helper:$*-$(REVISION) -f dockerfiles/build/Dockerfile.$* dockerfiles/build + -docker rm -f gitlab-runner-prebuilt-$*-$(REVISION) + docker create --name=gitlab-runner-prebuilt-$*-$(REVISION) gitlab/gitlab-runner-helper:$*-$(REVISION) /bin/sh + docker export -o $@ gitlab-runner-prebuilt-$*-$(REVISION) + docker rm -f gitlab-runner-prebuilt-$*-$(REVISION) + +out/helper-images/prebuilt-%.tar.xz: out/helper-images/prebuilt-%.tar + xz -f -9 $< + +else + +out/helper-images/prebuilt-%.tar.xz: + $(warning WARNING: downloading prebuilt docker images that will be loaded by gitlab-runner: $@) + @mkdir -p $$(dirname $@_) + curl -o $@ https://gitlab-runner-downloads.s3.amazonaws.com/master/docker/$(shell basename $@) +endif diff --git a/Makefile.runner_helper.mk b/Makefile.runner_helper.mk deleted file mode 100644 index e20da47f..00000000 --- a/Makefile.runner_helper.mk +++ /dev/null @@ -1,58 +0,0 @@ -# ------------------------------------------------------------------------------- -# The following make file does two things: -# 1. Create binaries for the gitlab-runner-helper app which can be found in -# `./apps/gitlab-runner-helper` or all the platforms we want to support. -# 2. Create Linux containers and extract their file system to be used later to -# build/publish. -# -# If you want to add a new arch or windows version you would need to add a new -# file path to the $BINARIES variables and a new GO_ARCH_{{OS}}_{{arch}} variable. -# --------------------------------------------------------------------------- - - -# Tar files that we want to generate from the Docker file system, this is -# genarlly used for linux based Dockerfiles. -BASE_TAR_PATH := out/helper-images/prebuilt -TAR += ${BASE_TAR_PATH}-linux_x86_64.tar.xz -TAR += ${BASE_TAR_PATH}-linux_arm.tar.xz - -# Binaries that we support for the helper image. We are using the following -# pattern match: -# dockerfiles/build/binaries/gitlab-runner-helper.{{os}}_{{arch}}, these should -# match up with GO_ARCH_* variables names. -BASE_BINARY_PATH := dockerfiles/build/binaries/gitlab-runner-helper -BINARIES := ${BASE_BINARY_PATH}.windows_x86_64 -BINARIES += ${BASE_BINARY_PATH}.linux_x86_64 -BINARIES += ${BASE_BINARY_PATH}.linux_arm - -# Define variables with the archiecture for each matching binary. We are using -# the following pattern match GO_ARCH_{{os}}_{{arch}}, these should match up -# with BINARIES variables. The value of the varible is the dist name from `go tool dist list` -GO_ARCH_linux_x86_64 = linux/amd64 -GO_ARCH_linux_arm = linux/arm -GO_ARCH_windows_x86_64 = windows/amd64 - -# Go files that are used to create the helper binary. -HELPER_GO_FILES ?= $(shell find common network vendor -name '*.go') - -.PHONY: helper-build helper-docker - -# PHONY command to help build the binaries. -helper-build: $(BINARIES) - -dockerfiles/build/binaries/gitlab-runner-helper.%: $(HELPER_GO_FILES) $(GOX) - gox -osarch=$(GO_ARCH_$*) -ldflags "$(GO_LDFLAGS)" -output=$@ $(PKG)/apps/gitlab-runner-helper - -# PHONY command to help build the tar files for linux. -helper-docker: $(TAR) - -out/helper-images/prebuilt-%.tar.xz: out/helper-images/prebuilt-%.tar - xz -f -9 $< - -out/helper-images/prebuilt-%.tar: dockerfiles/build/binaries/gitlab-runner-helper.% - @mkdir -p $$(dirname $@_) - docker build -t gitlab/gitlab-runner-helper:$*-$(REVISION) -f dockerfiles/build/Dockerfile.$* dockerfiles/build - -docker rm -f gitlab-runner-prebuilt-$*-$(REVISION) - docker create --name=gitlab-runner-prebuilt-$*-$(REVISION) gitlab/gitlab-runner-helper:$*-$(REVISION) /bin/sh - docker export -o $@ gitlab-runner-prebuilt-$*-$(REVISION) - docker rm -f gitlab-runner-prebuilt-$*-$(REVISION) diff --git a/dockerfiles/build/Dockerfile.linux_arm b/dockerfiles/build/Dockerfile.arm index a5e6cf13..1d0143ef 100644 --- a/dockerfiles/build/Dockerfile.linux_arm +++ b/dockerfiles/build/Dockerfile.arm @@ -6,6 +6,6 @@ RUN apk add --no-cache bash ca-certificates git git-lfs miniperl \ RUN git lfs install COPY ./scripts/ /usr/bin -COPY ./binaries/gitlab-runner-helper.linux_arm /usr/bin/gitlab-runner-helper +COPY ./binaries/gitlab-runner-helper.arm /usr/bin/gitlab-runner-helper RUN echo 'hosts: files dns' >> /etc/nsswitch.conf diff --git a/dockerfiles/build/Dockerfile.linux_x86_64 b/dockerfiles/build/Dockerfile.x86_64 index f4ec8547..703146cd 100644 --- a/dockerfiles/build/Dockerfile.linux_x86_64 +++ b/dockerfiles/build/Dockerfile.x86_64 @@ -6,6 +6,6 @@ RUN apk add --no-cache bash ca-certificates git git-lfs miniperl \ RUN git lfs install COPY ./scripts/ /usr/bin -COPY ./binaries/gitlab-runner-helper.linux_x86_64 /usr/bin/gitlab-runner-helper +COPY ./binaries/gitlab-runner-helper.x86_64 /usr/bin/gitlab-runner-helper RUN echo 'hosts: files dns' >> /etc/nsswitch.conf |
