diff options
-rw-r--r-- | .gitlab-ci.yml | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d272848e..f20c972c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -42,12 +42,14 @@ variables: ############################################################################### FEDORA_RPMS: 'git gcc gcc-c++ pkgconf-pkg-config meson check-devel libudev-devel libevdev-devel doxygen graphviz valgrind binutils libwacom-devel cairo-devel gtk3-devel glib2-devel mtdev-devel' UBUNTU_DEBS: 'git gcc g++ pkg-config meson check libudev-dev libevdev-dev doxygen graphviz valgrind binutils libwacom-dev libcairo2-dev libgtk-3-dev libglib2.0-dev libmtdev-dev' + ARCH_PKGS: 'git gcc pkgconfig meson check libsystemd libevdev doxygen graphviz valgrind binutils libwacom gtk3 mtdev ' ############################ end of package lists ############################# MESON_BUILDDIR: builddir NINJA_ARGS: '' MESON_PARAMS: '' FEDORA_DOCKER_IMAGE: $CI_REGISTRY/libinput/$CI_PROJECT_NAME/fedora/$FEDORA_VERSION UBUNTU_DOCKER_IMAGE: $CI_REGISTRY/libinput/$CI_PROJECT_NAME/ubuntu/$UBUNTU_VERSION + ARCH_DOCKER_IMAGE: $CI_REGISTRY/libinput/$CI_PROJECT_NAME/arch/rolling # When using docker-in-docker (dind), it's wise to use the overlayfs driver # for improved performance. DOCKER_DRIVER: overlay2 @@ -175,6 +177,11 @@ ubuntu:18.04@docker-check: CURRENT_DOCKER_IMAGE: $UBUNTU_DOCKER_IMAGE:latest <<: *docker_check +arch:rolling@docker-check: + variables: + GIT_STRATEGY: none + CURRENT_DOCKER_IMAGE: $ARCH_DOCKER_IMAGE:latest + <<: *docker_check ################################################################# # # @@ -275,6 +282,38 @@ ubuntu:18.04@docker-prep: # Note: we can not use $UBUNTU_VERSION here - ubuntu:18.04@docker-check +.arch@docker-prep: &arch_docker_prep + stage: docker_prep + services: + - docker:dind + script: + # if the check was successful, we just skip recreating the docker image + - test -e .img_ready && exit 0 + + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + + # create a Dockerfile with our dependencies + - echo "FROM base/archlinux" > Dockerfile + - echo "WORKDIR /app" >> Dockerfile + - echo "RUN pacman -S --refresh; pacman -S --sysupgrade --noconfirm; pacman -S --clean --noconfirm" >> Dockerfile + - echo "RUN pacman -S --noconfirm $ARCH_PKGS; pacman -S --clean --noconfirm" >> Dockerfile + + # create the docker image + - docker build --tag $ARCH_DOCKER_IMAGE:latest --tag $ARCH_DOCKER_IMAGE:$CI_JOB_ID . + + # push the docker image to the libinput registry + - docker push $ARCH_DOCKER_IMAGE:latest + - docker push $ARCH_DOCKER_IMAGE:$CI_JOB_ID + <<: *restrict_docker_creation + +arch:rolling@docker-prep: + variables: + GIT_STRATEGY: none + <<: *arch_docker_prep + dependencies: + - arch:rolling@docker-check + + # Add some manual runners to be able to recreate the cache on a day # the list of the rpms changed @@ -310,6 +349,13 @@ ubuntu:18.04@force-docker-prep: when: manual dependencies: [] +arch:rolling@force-docker-prep: + variables: + GIT_STRATEGY: none + <<: *arch_docker_prep + when: manual + dependencies: [] + ################################################################# # # # docker clean stage # @@ -412,6 +458,12 @@ ubuntu:18.04@docker-clean: CURRENT_DOCKER_IMAGE: $UBUNTU_DOCKER_IMAGE <<: *docker_clean +arch:rolling@docker-clean: + variables: + GIT_STRATEGY: none + CURRENT_DOCKER_IMAGE: $ARCH_DOCKER_IMAGE + <<: *docker_clean + ################################################################# # # # build stage # @@ -554,3 +606,16 @@ ubuntu:18.04@default-build: UBUNTU_VERSION: "17.10" <<: *ubuntu_template <<: *default_build + +# +# Arch +# +.arch@template: &arch_template + stage: build + image: $ARCH_DOCKER_IMAGE:latest + <<: *default_artifacts + dependencies: [] + +arch:rolling@default-build: + <<: *arch_template + <<: *default_build |