From: Alexandre Julliard julliard@winehq.org
--- tools/gitlab/build.yml | 1 + tools/gitlab/image-amd64.docker | 70 --------------- tools/gitlab/image-arm64.docker | 35 -------- tools/gitlab/image.docker | 154 ++++++++++++++++++++++++++++++++ tools/gitlab/image.yml | 10 +-- 5 files changed, 160 insertions(+), 110 deletions(-) delete mode 100644 tools/gitlab/image-amd64.docker delete mode 100644 tools/gitlab/image-arm64.docker create mode 100644 tools/gitlab/image.docker
diff --git a/tools/gitlab/build.yml b/tools/gitlab/build.yml index 6730dc8100d..539ca1816ce 100644 --- a/tools/gitlab/build.yml +++ b/tools/gitlab/build.yml @@ -13,6 +13,7 @@ - key: files: - configure.ac + - tools/gitlab/image.docker prefix: $CI_JOB_NAME-config paths: - build32/config.cache diff --git a/tools/gitlab/image-amd64.docker b/tools/gitlab/image-amd64.docker deleted file mode 100644 index 123085d9ceb..00000000000 --- a/tools/gitlab/image-amd64.docker +++ /dev/null @@ -1,70 +0,0 @@ -# FROM line will be added dynamically - -WORKDIR /tmp - -RUN export DEBIAN_FRONTEND=noninteractive; \ - echo 'path-exclude=/usr/share/doc/*' > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft && \ - echo 'path-exclude=/usr/share/locale/*' >> /etc/dpkg/dpkg.cfg.d/99-exclude-cruft && \ - echo 'path-exclude=/usr/share/man/*' >> /etc/dpkg/dpkg.cfg.d/99-exclude-cruft && \ - echo 'APT::Install-Recommends "false";' > /etc/apt/apt.conf && \ - echo '#!/bin/sh' > /usr/sbin/policy-rc.d && \ - echo 'exit 101' >> /usr/sbin/policy-rc.d && \ - chmod +x /usr/sbin/policy-rc.d && \ - dpkg --add-architecture i386 && \ - apt-get update && \ - apt-get install -y gcc gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 gcc-multilib \ - llvm clang lld \ - git autoconf flex bison perl gettext \ - libasound2-dev:amd64 libasound2-dev:i386 \ - libavutil-dev:amd64 libavutil-dev:i386 \ - libavformat-dev:amd64 libavformat-dev:i386 \ - libavcodec-dev:amd64 libavcodec-dev:i386 \ - libcapi20-dev:amd64 libcapi20-dev:i386 \ - libcups2-dev:amd64 libcups2-dev:i386 \ - libdbus-1-dev:amd64 libdbus-1-dev:i386 \ - libfontconfig-dev:amd64 libfontconfig-dev:i386 \ - libfreetype-dev:amd64 libfreetype-dev:i386 \ - libgl1-mesa-dev:amd64 libgl1-mesa-dev:i386 \ - libgnutls28-dev:amd64 libgnutls28-dev:i386 \ - libgphoto2-dev:amd64 libgphoto2-dev:i386 \ - libice-dev:amd64 libice-dev:i386 \ - libkrb5-dev:amd64 libkrb5-dev:i386 \ - libpcap-dev:amd64 libpcap-dev:i386 \ - libpcsclite-dev:amd64 \ - libpulse-dev:amd64 libpulse-dev:i386 \ - libsane-dev:amd64 libsane-dev:i386 \ - libsdl2-dev:amd64 libsdl2-dev:i386 \ - libswresample-dev:amd64 libswresample-dev:i386 \ - libswscale-dev:amd64 libswscale-dev:i386 \ - libudev-dev:amd64 libudev-dev:i386 \ - libusb-1.0-0-dev:amd64 libusb-1.0-0-dev:i386 \ - libv4l-dev:amd64 libv4l-dev:i386 \ - libvulkan-dev:amd64 libvulkan-dev:i386 \ - libwayland-dev:amd64 libwayland-dev:i386 \ - libx11-dev:amd64 libx11-dev:i386 \ - libxcomposite-dev:amd64 libxcomposite-dev:i386 \ - libxcursor-dev:amd64 libxcursor-dev:i386 \ - libxext-dev:amd64 libxext-dev:i386 \ - libxi-dev:amd64 libxi-dev:i386 \ - libxinerama-dev:amd64 libxinerama-dev:i386 \ - libxkbcommon-dev:amd64 libxkbcommon-dev:i386 \ - libxkbregistry-dev:amd64 libxkbregistry-dev:i386 \ - libxrandr-dev:amd64 libxrandr-dev:i386 \ - libxrender-dev:amd64 libxrender-dev:i386 \ - libxxf86vm-dev:amd64 libxxf86vm-dev:i386 \ - linux-libc-dev:amd64 linux-libc-dev:i386 \ - libunwind-dev:amd64 \ - ocl-icd-opencl-dev:amd64 ocl-icd-opencl-dev:i386 \ - samba-dev:amd64 \ - unixodbc-dev:amd64 unixodbc-dev:i386 \ - x11proto-dev && \ - apt-get install -y ccache netbase curl ca-certificates xserver-xorg-video-dummy xserver-xorg xfonts-base xinit fvwm \ - winbind fonts-liberation2 fonts-noto-core fonts-noto-cjk pulseaudio unzip \ - libgstreamer-plugins-base1.0-dev:i386 libasound2-plugins:i386 libmjpegutils-2.1-0:i386 gstreamer1.0-libav:i386 \ - gstreamer1.0-plugins-base:i386 gstreamer1.0-plugins-good:i386 gstreamer1.0-plugins-bad:i386 gstreamer1.0-plugins-ugly:i386 && \ - apt-get clean && \ - curl -L -o /usr/local/bin/sarif-converter https://gitlab.com/ignis-build/sarif-converter/-/releases/permalink/latest/d... && \ - chmod +x /usr/local/bin/sarif-converter && \ - useradd -m gitlab - -USER gitlab diff --git a/tools/gitlab/image-arm64.docker b/tools/gitlab/image-arm64.docker deleted file mode 100644 index bb78b86a1fd..00000000000 --- a/tools/gitlab/image-arm64.docker +++ /dev/null @@ -1,35 +0,0 @@ -# FROM line will be added dynamically - -WORKDIR /tmp - -RUN export DEBIAN_FRONTEND=noninteractive; \ - echo 'path-exclude=/usr/share/doc/*' > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft && \ - echo 'path-exclude=/usr/share/locale/*' >> /etc/dpkg/dpkg.cfg.d/99-exclude-cruft && \ - echo 'path-exclude=/usr/share/man/*' >> /etc/dpkg/dpkg.cfg.d/99-exclude-cruft && \ - echo 'APT::Install-Recommends "false";' > /etc/apt/apt.conf && \ - echo '#!/bin/sh' > /usr/sbin/policy-rc.d && \ - echo 'exit 101' >> /usr/sbin/policy-rc.d && \ - chmod +x /usr/sbin/policy-rc.d && \ - apt-get update && \ - apt-get install -y clang git autoconf flex bison perl gettext \ - libasound2-dev libavutil-dev libavformat-dev libavcodec-dev \ - libcapi20-dev libcups2-dev libdbus-1-dev libfontconfig-dev \ - libfreetype-dev libgl1-mesa-dev libgnutls28-dev libgphoto2-dev \ - libice-dev libkrb5-dev libpcap-dev libpcsclite-dev libpulse-dev \ - libsane-dev libsdl2-dev libswresample-dev libswscale-dev \ - libudev-dev libusb-1.0-0-dev libv4l-dev libvulkan-dev \ - libwayland-dev libx11-dev libxcomposite-dev libxcursor-dev \ - libxext-dev libxi-dev libxinerama-dev libxkbcommon-dev \ - libxkbregistry-dev libxrandr-dev libxrender-dev libxxf86vm-dev \ - linux-libc-dev ocl-icd-opencl-dev samba-dev unixodbc-dev \ - libgstreamer-plugins-base1.0-dev libasound2-plugins libmjpegutils-2.1-0 gstreamer1.0-libav \ - gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \ - x11proto-dev && \ - apt-get install -y ccache netbase curl ca-certificates xserver-xorg-video-dummy xserver-xorg xfonts-base xinit fvwm \ - winbind fonts-liberation2 fonts-noto-core fonts-noto-cjk pulseaudio unzip && \ - apt-get clean && \ - curl -s -L https://github.com/mstorsjo/llvm-mingw/releases/download/20250613/llvm-mingw... | tar xJ && \ - mv llvm-mingw-20250613-ucrt-ubuntu-22.04-aarch64 /usr/local/llvm-mingw && \ - useradd -m gitlab - -USER gitlab diff --git a/tools/gitlab/image.docker b/tools/gitlab/image.docker new file mode 100644 index 00000000000..37872992cbe --- /dev/null +++ b/tools/gitlab/image.docker @@ -0,0 +1,154 @@ +# FROM line will be added dynamically + +ARG ARCH +WORKDIR /tmp + +RUN export DEBIAN_FRONTEND=noninteractive; \ + echo 'path-exclude=/usr/share/doc/*' > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft && \ + echo 'path-exclude=/usr/share/locale/*' >> /etc/dpkg/dpkg.cfg.d/99-exclude-cruft && \ + echo 'path-exclude=/usr/share/man/*' >> /etc/dpkg/dpkg.cfg.d/99-exclude-cruft && \ + echo 'APT::Install-Recommends "false";' > /etc/apt/apt.conf && \ + echo '#!/bin/sh' > /usr/sbin/policy-rc.d && \ + echo 'exit 101' >> /usr/sbin/policy-rc.d && \ + chmod +x /usr/sbin/policy-rc.d && \ + apt-get update && \ + apt-get install -y \ + autoconf \ + bison \ + ca-certificates \ + ccache \ + clang \ + curl \ + flex \ + fonts-liberation2 \ + fonts-noto-cjk \ + fonts-noto-core \ + fvwm \ + gettext \ + git \ + gstreamer1.0-libav \ + gstreamer1.0-plugins-bad \ + gstreamer1.0-plugins-base \ + gstreamer1.0-plugins-good \ + gstreamer1.0-plugins-ugly \ + libasound2-dev \ + libasound2-plugins \ + libavcodec-dev \ + libavformat-dev \ + libavutil-dev \ + libcapi20-dev \ + libcups2-dev \ + libdbus-1-dev \ + libfontconfig-dev \ + libfreetype-dev \ + libgl1-mesa-dev \ + libgnutls28-dev \ + libgphoto2-dev \ + libgstreamer-plugins-base1.0-dev \ + libgstreamer1.0-dev \ + libice-dev \ + libkrb5-dev \ + libpcap-dev \ + libpcsclite-dev \ + libpulse-dev \ + libsane-dev \ + libsdl2-dev \ + libswresample-dev \ + libswscale-dev \ + libudev-dev \ + libusb-1.0-0-dev \ + libv4l-dev \ + libvulkan-dev \ + libwayland-dev \ + libx11-dev \ + libxcomposite-dev \ + libxcursor-dev \ + libxext-dev \ + libxi-dev \ + libxinerama-dev \ + libxkbcommon-dev \ + libxkbregistry-dev \ + libxrandr-dev \ + libxrender-dev \ + libxxf86vm-dev \ + linux-libc-dev \ + lld \ + llvm \ + netbase \ + ocl-icd-opencl-dev \ + perl \ + pulseaudio \ + samba-dev \ + unixodbc-dev \ + unzip \ + winbind \ + x11proto-dev \ + xfonts-base \ + xinit \ + xserver-xorg \ + xserver-xorg-video-dummy && \ + case "$ARCH" in \ + amd64) \ + dpkg --add-architecture i386 && \ + apt-get update && \ + apt-get install -y \ + gcc \ + gcc-mingw-w64-i686 \ + gcc-mingw-w64-x86-64 \ + gcc-multilib \ + libunwind-dev \ + gstreamer1.0-libav:i386 \ + gstreamer1.0-plugins-bad:i386 \ + gstreamer1.0-plugins-base:i386 \ + gstreamer1.0-plugins-good:i386 \ + gstreamer1.0-plugins-ugly:i386 \ + libasound2-dev:i386 \ + libasound2-plugins:i386 \ + libavcodec-dev:i386 \ + libavformat-dev:i386 \ + libavutil-dev:i386 \ + libcapi20-dev:i386 \ + libcups2-dev:i386 \ + libdbus-1-dev:i386 \ + libfontconfig-dev:i386 \ + libfreetype-dev:i386 \ + libgl1-mesa-dev:i386 \ + libgnutls28-dev:i386 \ + libgphoto2-dev:i386 \ + libice-dev:i386 \ + libkrb5-dev:i386 \ + libpcap-dev:i386 \ + libpulse-dev:i386 \ + libsane-dev:i386 \ + libsdl2-dev:i386 \ + libswresample-dev:i386 \ + libswscale-dev:i386 \ + libudev-dev:i386 \ + libusb-1.0-0-dev:i386 \ + libv4l-dev:i386 \ + libvulkan-dev:i386 \ + libwayland-dev:i386 \ + libx11-dev:i386 \ + libxcomposite-dev:i386 \ + libxcursor-dev:i386 \ + libxext-dev:i386 \ + libxi-dev:i386 \ + libxinerama-dev:i386 \ + libxkbcommon-dev:i386 \ + libxkbregistry-dev:i386 \ + libxrandr-dev:i386 \ + libxrender-dev:i386 \ + libxxf86vm-dev:i386 \ + linux-libc-dev:i386 \ + ocl-icd-opencl-dev:i386 \ + unixodbc-dev:i386 && \ + curl -L -o /usr/local/bin/sarif-converter https://gitlab.com/ignis-build/sarif-converter/-/releases/permalink/latest/d... && \ + chmod +x /usr/local/bin/sarif-converter ;; \ + arm64) \ + curl -s -L https://github.com/mstorsjo/llvm-mingw/releases/download/20250613/llvm-mingw... | tar xJ && \ + mv llvm-mingw-20250613-ucrt-ubuntu-22.04-aarch64 /usr/local/llvm-mingw ;; \ + esac && \ + apt-get clean && \ + useradd -m gitlab + +USER gitlab diff --git a/tools/gitlab/image.yml b/tools/gitlab/image.yml index bb611868460..07301ab29e9 100644 --- a/tools/gitlab/image.yml +++ b/tools/gitlab/image.yml @@ -3,23 +3,23 @@ .build-image: stage: image rules: - - if: $CI_PIPELINE_SOURCE == 'push' && $CI_PROJECT_PATH == "wine/wine" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' +# - if: $CI_PIPELINE_SOURCE == 'push' && $CI_PROJECT_PATH == "wine/wine" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH changes: - tools/gitlab/image.yml - - tools/gitlab/image-amd64.docker - - tools/gitlab/image-arm64.docker + - tools/gitlab/image.docker image: name: gcr.io/kaniko-project/executor:debug entrypoint: [""] variables: IMAGE_SOURCE: "$CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX/debian:trixie" IMAGE_LOCAL: "$CI_REGISTRY_IMAGE:debian-trixie-$ARCH" - DOCKER_FILE: "$CI_PROJECT_DIR/tools/gitlab/image-$ARCH.docker" + DOCKER_FILE: "$CI_PROJECT_DIR/tools/gitlab/image.docker" script: - mkdir -p /kaniko/.docker - echo "{"auths":{"$CI_REGISTRY":{"auth":"$(printf "%s:%s" "$CI_REGISTRY_USER" "$CI_REGISTRY_PASSWORD" | base64 | tr -d '\n')"},"$CI_DEPENDENCY_PROXY_SERVER":{"auth":"$(printf "%s:%s" "$CI_DEPENDENCY_PROXY_USER" "$CI_DEPENDENCY_PROXY_PASSWORD" | base64 | tr -d '\n')"}}}" > /kaniko/.docker/config.json - sed -i "1iFROM $IMAGE_SOURCE" "$DOCKER_FILE" - - /kaniko/executor --context "$CI_PROJECT_DIR" --dockerfile "$DOCKER_FILE" --destination "$IMAGE_LOCAL" + - /kaniko/executor --context "$CI_PROJECT_DIR" --dockerfile "$DOCKER_FILE" --destination "$IMAGE_LOCAL" --build-arg="ARCH=$ARCH"
build-image-amd64: extends: .build-image