From 3c3250f3919d9853289af10cf8b136a99e542c38 Mon Sep 17 00:00:00 2001 From: maltejur Date: Thu, 12 May 2022 21:08:04 +0000 Subject: [PATCH] Build Docker Images on GitLab --- .gitlab-ci.yml | 40 ++++++++++++++++++++++++++++++++++++++- Makefile | 40 +++++++++++++++++++-------------------- assets/linux.artifacts.mk | 4 ++-- assets/linux.mk | 4 ++-- assets/macos.mk | 4 ++-- 5 files changed, 65 insertions(+), 27 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 24b7c6f..3465eba 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,8 +1,46 @@ stages: + - images - build - release - deploy +Build Docker Images: + stage: images + when: manual + # only: + # - master + image: ubuntu + services: + - docker:dind + parallel: + matrix: + - DISTRO: + - debian11 + - ubuntu20 + - ubuntu21 + - ubuntu22 + - mint20 + - fedora34 + - fedora35 + - fedora36 + - macos-x86_64 + - macos-aarch64 + variables: + DOCKER_HOST: tcp://docker:2375 + # Install docker and make + before_script: + - apt-get update + - apt-get install -y ca-certificates curl gnupg lsb-release + - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg + - echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null + - apt-get update + - apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin make + # Build container + script: + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD registry.gitlab.com + - make docker-$DISTRO + - docker push registry.gitlab.com/librewolf-community/browser/bsys5/$DISTRO:latest + Build: stage: build when: manual @@ -23,7 +61,7 @@ Build: variables: SOURCE_URL: $SOURCE_URL use_docker: "false" - image: librewolf/bsys5-image-$DISTRO + image: registry.gitlab.com/librewolf-community/browser/bsys5/$DISTRO tags: - amd64 # Build on dedicated runner diff --git a/Makefile b/Makefile index 9ada4ba..39343f7 100644 --- a/Makefile +++ b/Makefile @@ -76,28 +76,28 @@ build : ${MAKE} clean push : - docker push librewolf/bsys5-image-debian11 - docker push librewolf/bsys5-image-mint20 - docker push librewolf/bsys5-image-ubuntu20 - docker push librewolf/bsys5-image-ubuntu21 - docker push librewolf/bsys5-image-ubuntu22 - docker push librewolf/bsys5-image-fedora34 - docker push librewolf/bsys5-image-fedora35 - docker push librewolf/bsys5-image-fedora36 - docker push librewolf/bsys5-image-macos-x86_64 - docker push librewolf/bsys5-image-macos-aarch64 + docker push registry.gitlab.com/librewolf-community/browser/bsys5/debian11 + docker push registry.gitlab.com/librewolf-community/browser/bsys5/mint20 + docker push registry.gitlab.com/librewolf-community/browser/bsys5/ubuntu20 + docker push registry.gitlab.com/librewolf-community/browser/bsys5/ubuntu21 + docker push registry.gitlab.com/librewolf-community/browser/bsys5/ubuntu22 + docker push registry.gitlab.com/librewolf-community/browser/bsys5/fedora34 + docker push registry.gitlab.com/librewolf-community/browser/bsys5/fedora35 + docker push registry.gitlab.com/librewolf-community/browser/bsys5/fedora36 + docker push registry.gitlab.com/librewolf-community/browser/bsys5/macos-x86_64 + docker push registry.gitlab.com/librewolf-community/browser/bsys5/macos-aarch64 rmi : - docker rmi librewolf/bsys5-image-debian11 - docker rmi librewolf/bsys5-image-mint20 - docker rmi librewolf/bsys5-image-ubuntu20 - docker rmi librewolf/bsys5-image-ubuntu21 - docker rmi librewolf/bsys5-image-ubuntu22 - docker rmi librewolf/bsys5-image-fedora34 - docker rmi librewolf/bsys5-image-fedora35 - docker rmi librewolf/bsys5-image-fedora36 - docker rmi librewolf/bsys5-image-macos-x86_64 - docker rmi librewolf/bsys5-image-macos-aarch64 + docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/debian11 + docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/mint20 + docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/ubuntu20 + docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/ubuntu21 + docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/ubuntu22 + docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/fedora34 + docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/fedora35 + docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/fedora36 + docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/macos-x86_64 + docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/macos-aarch64 update : @wget -q -O version "https://gitlab.com/librewolf-community/browser/source/-/raw/main/version" diff --git a/assets/linux.artifacts.mk b/assets/linux.artifacts.mk index 4c1dc33..8ce9269 100644 --- a/assets/linux.artifacts.mk +++ b/assets/linux.artifacts.mk @@ -23,7 +23,7 @@ librewolf-$(full_version).en-US.$(distro).x86_64.deb : $(infile) ifeq ($(use_docker),false) (cd work && bash linux.build-deb.sh $(full_version)) else - docker run --rm -v $(shell pwd)/work:/work:rw librewolf/bsys5-image-$(distro) sh -c "bash linux.build-deb.sh $(full_version)" + docker run --rm -v $(shell pwd)/work:/work:rw registry.gitlab.com/librewolf-community/browser/bsys5/$(distro) sh -c "bash linux.build-deb.sh $(full_version)" endif cp -v work/librewolf.deb $@ sha256sum $@ > $@.sha256sum @@ -55,7 +55,7 @@ ifeq ($(use_docker),false) (cp -r work / && cd work && bash linux.build-rpm.sh $(fc)) cp -v /work/$@ $@ else - docker run --rm -v $(shell pwd)/work:/work:rw librewolf/bsys5-image-$(distro) sh -c "bash linux.build-rpm.sh $(fc)" + docker run --rm -v $(shell pwd)/work:/work:rw registry.gitlab.com/librewolf-community/browser/bsys5/$(distro) sh -c "bash linux.build-rpm.sh $(fc)" cp -v work/$@ $@ endif sha256sum $@ > $@.sha256sum diff --git a/assets/linux.mk b/assets/linux.mk index b6b403c..c83802e 100644 --- a/assets/linux.mk +++ b/assets/linux.mk @@ -12,7 +12,7 @@ full_version:=$(version)-$(source_release)$(shell [ $(release) -gt 1 ] && echo " outfile=librewolf-$(full_version).en-US.$(distro)-x86_64.tar.bz2 docker : - docker build --build-arg "distro=$(distro_image)" --build-arg "version=$(version)" --build-arg "source_release=$(source_release)" -t librewolf/bsys5-image-$(distro) - < assets/linux.Dockerfile + docker build --build-arg "distro=$(distro_image)" --build-arg "version=$(version)" --build-arg "source_release=$(source_release)" -t registry.gitlab.com/librewolf-community/browser/bsys5/$(distro):latest - < assets/linux.Dockerfile build : $(outfile) $(outfile).sha256sum @@ -21,7 +21,7 @@ $(outfile) : ifeq ($(use_docker),false) (cd work/librewolf-$(version)-$(source_release) && ./mach build && cat browser/locales/shipped-locales | xargs ./mach package-multi-locale --locales) else - docker run --rm -v $(shell pwd)/work:/work:rw librewolf/bsys5-image-$(distro) sh -c "cd /work/librewolf-$(version)-$(source_release) && ./mach build && cat browser/locales/shipped-locales | xargs ./mach package-multi-locale --locales" + docker run --rm -v $(shell pwd)/work:/work:rw registry.gitlab.com/librewolf-community/browser/bsys5/$(distro) sh -c "cd /work/librewolf-$(version)-$(source_release) && ./mach build && cat browser/locales/shipped-locales | xargs ./mach package-multi-locale --locales" endif cp -v work/librewolf-$(version)-$(source_release)/obj-x86_64-pc-linux-gnu/dist/librewolf-$(version)-$(source_release).en-US.linux-x86_64.tar.bz2 $(outfile) diff --git a/assets/macos.mk b/assets/macos.mk index ddc1c4e..246b6b9 100644 --- a/assets/macos.mk +++ b/assets/macos.mk @@ -11,7 +11,7 @@ full_version:=$(version)-$(source_release)$(shell [ $(release) -gt 1 ] && echo " outfile=librewolf-$(full_version).en-US.mac.$(arch).dmg docker : - docker build --build-arg "arch=$(arch)" --build-arg "version=$(version)" --build-arg "source_release=$(source_release)" -t librewolf/bsys5-image-macos-$(arch) - < assets/macos.Dockerfile + docker build --build-arg "arch=$(arch)" --build-arg "version=$(version)" --build-arg "source_release=$(source_release)" -t registry.gitlab.com/librewolf-community/browser/bsys5/macos-$(arch) - < assets/macos.Dockerfile build : $(outfile) $(outfile).sha256sum @@ -21,7 +21,7 @@ $(outfile) : ifeq ($(use_docker),false) (cd work/librewolf-$(version)-$(source_release) && ./mach build && ./mach package) else - docker run --rm -v $(shell pwd)/work:/work:rw librewolf/bsys5-image-macos-$(arch) sh -c "cd /work/librewolf-$(version)-$(source_release) && ./mach build && ./mach package" + docker run --rm -v $(shell pwd)/work:/work:rw registry.gitlab.com/librewolf-community/browser/bsys5/macos-$(arch) sh -c "cd /work/librewolf-$(version)-$(source_release) && ./mach build && ./mach package" endif cp -v work/librewolf-$(version)-$(source_release)/obj-$(arch)-apple-darwin/dist/librewolf-$(version)-$(source_release).en-US.mac.dmg $(outfile)