diff --git a/.drone.jsonnet b/.drone.jsonnet index 5e31427e1..dec90b2bc 100644 --- a/.drone.jsonnet +++ b/.drone.jsonnet @@ -265,8 +265,10 @@ local mac_builder(name, debian_pipeline('Debian sid/Debug (amd64)', docker_base + 'debian-sid', build_type='Debug'), clang(13), full_llvm(13), - debian_pipeline('Debian bullseye (i386)', 'i386/debian:bullseye', cmake_extra='-DDOWNLOAD_SODIUM=ON'), - debian_pipeline('Ubuntu focal (amd64)', docker_base + 'ubuntu-focal'), + debian_pipeline('Debian stable (i386)', docker_base + 'debian-stable:i386'), + debian_pipeline('Debian buster (amd64)', docker_base + 'debian-buster', cmake_extra='-DDOWNLOAD_SODIUM=ON'), + debian_pipeline('Ubuntu latest (amd64)', docker_base + 'ubuntu-rolling'), + debian_pipeline('Ubuntu LTS (amd64)', docker_base + 'ubuntu-lts'), debian_pipeline('Ubuntu bionic (amd64)', docker_base + 'ubuntu-bionic', deps=['g++-8'] + default_deps_nocxx, @@ -274,11 +276,11 @@ local mac_builder(name, loki_repo=true), // ARM builds (ARM64 and armhf) - debian_pipeline('Debian sid (ARM64)', 'debian:sid', arch='arm64', jobs=4), - debian_pipeline('Debian bullseye (armhf)', 'arm32v7/debian:bullseye', arch='arm64', cmake_extra='-DDOWNLOAD_SODIUM=ON', jobs=4), + debian_pipeline('Debian sid (ARM64)', docker_base + 'debian-sid', arch='arm64', jobs=4), + debian_pipeline('Debian stable (armhf)', docker_base + 'debian-stable:arm32v7', arch='arm64', jobs=4), // Static armhf build (gets uploaded) debian_pipeline('Static (buster armhf)', - 'arm32v7/debian:buster', + docker_base + 'debian-buster:arm32v7', arch='arm64', deps=['g++', 'python3-dev', 'automake', 'libtool'], cmake_extra='-DBUILD_STATIC_DEPS=ON -DBUILD_SHARED_LIBS=OFF -DSTATIC_LINK=ON ' + @@ -316,7 +318,7 @@ local mac_builder(name, // integration tests debian_pipeline('Router Hive', - 'ubuntu:focal', + docker_base + 'ubuntu-lts', deps=['python3-dev', 'python3-pytest', 'python3-pybind11'] + default_deps, cmake_extra='-DWITH_HIVE=ON'), @@ -325,7 +327,7 @@ local mac_builder(name, deb_builder(docker_base + 'debian-bullseye', 'bullseye', 'debian/bullseye'), deb_builder(docker_base + 'ubuntu-impish', 'impish', 'ubuntu/impish'), deb_builder(docker_base + 'ubuntu-focal', 'focal', 'ubuntu/focal'), - deb_builder('debian:sid', 'sid', 'debian/sid', arch='arm64'), + deb_builder(docker_base + 'debian-sid', 'sid', 'debian/sid', arch='arm64'), // Macos builds: mac_builder('macOS (Release)'), diff --git a/contrib/ci/docker/00-debian-bullseye-base.dockerfile b/contrib/ci/docker/00-debian-bullseye-base.dockerfile index ff4b77234..120c55c40 100644 --- a/contrib/ci/docker/00-debian-bullseye-base.dockerfile +++ b/contrib/ci/docker/00-debian-bullseye-base.dockerfile @@ -1,3 +1,4 @@ -FROM debian:bullseye +ARG ARCH=amd64 +FROM ${ARCH}/debian:bullseye RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections' RUN /bin/bash -c 'apt-get -o=Dpkg::Use-Pty=0 -q update && apt-get -o=Dpkg::Use-Pty=0 -q dist-upgrade -y && apt-get -o=Dpkg::Use-Pty=0 -q autoremove -y' diff --git a/contrib/ci/docker/00-debian-buster-base.dockerfile b/contrib/ci/docker/00-debian-buster-base.dockerfile index d2f2d0082..3a36cda42 100644 --- a/contrib/ci/docker/00-debian-buster-base.dockerfile +++ b/contrib/ci/docker/00-debian-buster-base.dockerfile @@ -1,3 +1,4 @@ -FROM debian:buster +ARG ARCH=amd64 +FROM ${ARCH}/debian:buster RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections' RUN /bin/bash -c 'apt-get -o=Dpkg::Use-Pty=0 -q update && apt-get -o=Dpkg::Use-Pty=0 -q dist-upgrade -y && apt-get -o=Dpkg::Use-Pty=0 -q autoremove -y' diff --git a/contrib/ci/docker/00-debian-sid-base.dockerfile b/contrib/ci/docker/00-debian-sid-base.dockerfile index 1e5e1e241..0ae5432ff 100644 --- a/contrib/ci/docker/00-debian-sid-base.dockerfile +++ b/contrib/ci/docker/00-debian-sid-base.dockerfile @@ -1,3 +1,4 @@ -FROM debian:sid +ARG ARCH=amd64 +FROM ${ARCH}/debian:sid RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections' RUN /bin/bash -c 'apt-get -o=Dpkg::Use-Pty=0 -q update && apt-get -o=Dpkg::Use-Pty=0 -q dist-upgrade -y && apt-get -o=Dpkg::Use-Pty=0 -q autoremove -y' diff --git a/contrib/ci/docker/00-debian-stable-base.dockerfile b/contrib/ci/docker/00-debian-stable-base.dockerfile deleted file mode 120000 index 6b75d6395..000000000 --- a/contrib/ci/docker/00-debian-stable-base.dockerfile +++ /dev/null @@ -1 +0,0 @@ -00-debian-bullseye-base.dockerfile \ No newline at end of file diff --git a/contrib/ci/docker/00-debian-stable-base.dockerfile b/contrib/ci/docker/00-debian-stable-base.dockerfile new file mode 100644 index 000000000..1313788ce --- /dev/null +++ b/contrib/ci/docker/00-debian-stable-base.dockerfile @@ -0,0 +1,4 @@ +ARG ARCH=amd64 +FROM ${ARCH}/debian:stable +RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections' +RUN /bin/bash -c 'apt-get -o=Dpkg::Use-Pty=0 -q update && apt-get -o=Dpkg::Use-Pty=0 -q dist-upgrade -y && apt-get -o=Dpkg::Use-Pty=0 -q autoremove -y' diff --git a/contrib/ci/docker/00-debian-testing-base.dockerfile b/contrib/ci/docker/00-debian-testing-base.dockerfile index 487bd376f..047ee08c7 100644 --- a/contrib/ci/docker/00-debian-testing-base.dockerfile +++ b/contrib/ci/docker/00-debian-testing-base.dockerfile @@ -1,3 +1,4 @@ -FROM debian:testing +ARG ARCH=amd64 +FROM ${ARCH}/debian:testing RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections' RUN /bin/bash -c 'apt-get -o=Dpkg::Use-Pty=0 -q update && apt-get -o=Dpkg::Use-Pty=0 -q dist-upgrade -y && apt-get -o=Dpkg::Use-Pty=0 -q autoremove -y' diff --git a/contrib/ci/docker/10-debian-bullseye.dockerfile b/contrib/ci/docker/10-debian-bullseye.dockerfile index 1d6be7072..07d2181b8 100644 --- a/contrib/ci/docker/10-debian-bullseye.dockerfile +++ b/contrib/ci/docker/10-debian-bullseye.dockerfile @@ -1,2 +1,3 @@ -FROM registry.oxen.rocks/lokinet-ci-debian-bullseye-base +ARG ARCH=amd64 +FROM registry.oxen.rocks/lokinet-ci-debian-bullseye-base/${ARCH} RUN /bin/bash -c 'apt-get -o=Dpkg::Use-Pty=0 -q install --no-install-recommends -y eatmydata gdb cmake git ninja-build pkg-config ccache g++ libsodium-dev libzmq3-dev libsystemd-dev python3-dev libuv1-dev libunbound-dev nettle-dev libssl-dev libevent-dev libsqlite3-dev libboost-thread-dev libboost-serialization-dev libboost-program-options-dev libgtest-dev libminiupnpc-dev libunwind8-dev libreadline-dev libhidapi-dev libusb-1.0.0-dev qttools5-dev libcurl4-openssl-dev lsb-release openssh-client' diff --git a/contrib/ci/docker/10-debian-buster.dockerfile b/contrib/ci/docker/10-debian-buster.dockerfile index ea711e5dd..27d33e88b 100644 --- a/contrib/ci/docker/10-debian-buster.dockerfile +++ b/contrib/ci/docker/10-debian-buster.dockerfile @@ -1,2 +1,3 @@ -FROM registry.oxen.rocks/lokinet-ci-debian-buster-base +ARG ARCH=amd64 +FROM registry.oxen.rocks/lokinet-ci-debian-buster-base/${ARCH} RUN /bin/bash -c 'apt-get -o=Dpkg::Use-Pty=0 -q install --no-install-recommends -y eatmydata gdb cmake git ninja-build pkg-config ccache g++ libsodium-dev libzmq3-dev libsystemd-dev python3-dev libuv1-dev libunbound-dev nettle-dev libssl-dev libevent-dev libsqlite3-dev libboost-thread-dev libboost-serialization-dev libboost-program-options-dev libgtest-dev libminiupnpc-dev libunwind8-dev libreadline-dev libhidapi-dev libusb-1.0.0-dev qttools5-dev libcurl4-openssl-dev lsb-release openssh-client' diff --git a/contrib/ci/docker/10-debian-sid.dockerfile b/contrib/ci/docker/10-debian-sid.dockerfile index 5e0d08d1d..f09bdebd0 100644 --- a/contrib/ci/docker/10-debian-sid.dockerfile +++ b/contrib/ci/docker/10-debian-sid.dockerfile @@ -1,2 +1,3 @@ -FROM registry.oxen.rocks/lokinet-ci-debian-sid-base +ARG ARCH=amd64 +FROM registry.oxen.rocks/lokinet-ci-debian-sid-base/${ARCH} RUN /bin/bash -c 'apt-get -o=Dpkg::Use-Pty=0 --no-install-recommends -q install -y eatmydata gdb cmake make git ninja-build pkg-config ccache g++ libsodium-dev libzmq3-dev libsystemd-dev python3-dev libuv1-dev libunbound-dev nettle-dev libssl-dev libevent-dev libsqlite3-dev libboost-thread-dev libboost-serialization-dev libboost-program-options-dev libgtest-dev libminiupnpc-dev libunwind8-dev libreadline-dev libhidapi-dev libusb-1.0.0-dev qttools5-dev libcurl4-openssl-dev lsb-release openssh-client' diff --git a/contrib/ci/docker/10-debian-stable.dockerfile b/contrib/ci/docker/10-debian-stable.dockerfile deleted file mode 120000 index e37207772..000000000 --- a/contrib/ci/docker/10-debian-stable.dockerfile +++ /dev/null @@ -1 +0,0 @@ -10-debian-bullseye.dockerfile \ No newline at end of file diff --git a/contrib/ci/docker/10-debian-stable.dockerfile b/contrib/ci/docker/10-debian-stable.dockerfile new file mode 100644 index 000000000..17c80be39 --- /dev/null +++ b/contrib/ci/docker/10-debian-stable.dockerfile @@ -0,0 +1,3 @@ +ARG ARCH=amd64 +FROM registry.oxen.rocks/lokinet-ci-debian-stable-base/${ARCH} +RUN /bin/bash -c 'apt-get -o=Dpkg::Use-Pty=0 -q install --no-install-recommends -y eatmydata gdb cmake git ninja-build pkg-config ccache g++ libsodium-dev libzmq3-dev libsystemd-dev python3-dev libuv1-dev libunbound-dev nettle-dev libssl-dev libevent-dev libsqlite3-dev libboost-thread-dev libboost-serialization-dev libboost-program-options-dev libgtest-dev libminiupnpc-dev libunwind8-dev libreadline-dev libhidapi-dev libusb-1.0.0-dev qttools5-dev libcurl4-openssl-dev lsb-release openssh-client' diff --git a/contrib/ci/docker/10-ubuntu-bionic.dockerfile b/contrib/ci/docker/10-ubuntu-bionic.dockerfile index 0c4937e71..61a7eaff4 100644 --- a/contrib/ci/docker/10-ubuntu-bionic.dockerfile +++ b/contrib/ci/docker/10-ubuntu-bionic.dockerfile @@ -1,3 +1,4 @@ -FROM ubuntu:bionic +ARG ARCH=amd64 +FROM ${ARCH}/ubuntu:bionic RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections' RUN /bin/bash -c 'apt-get -o=Dpkg::Use-Pty=0 -q update && apt-get -o=Dpkg::Use-Pty=0 -q dist-upgrade -y && apt-get -o=Dpkg::Use-Pty=0 -q --no-install-recommends install -y eatmydata gdb cmake git ninja-build pkg-config ccache g++-8 python3-dev automake libtool autoconf make qttools5-dev file gperf patch openssh-client lsb-release libzmq3-dev libpgm-dev libuv1-dev openssh-client && mkdir -p /usr/lib/x86_64-linux-gnu/pgm-5.2/include' diff --git a/contrib/ci/docker/10-ubuntu-focal.dockerfile b/contrib/ci/docker/10-ubuntu-focal.dockerfile index dc726aa4a..6ae238dc5 100644 --- a/contrib/ci/docker/10-ubuntu-focal.dockerfile +++ b/contrib/ci/docker/10-ubuntu-focal.dockerfile @@ -1,3 +1,4 @@ -FROM ubuntu:focal +ARG ARCH=amd64 +FROM ${ARCH}/ubuntu:focal RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections' RUN /bin/bash -c 'apt-get -o=Dpkg::Use-Pty=0 -q update && apt-get -o=Dpkg::Use-Pty=0 -q dist-upgrade -y && apt-get -o=Dpkg::Use-Pty=0 --no-install-recommends -q install -y eatmydata gdb cmake git ninja-build pkg-config ccache g++ libsodium-dev libzmq3-dev libsystemd-dev python3-dev libuv1-dev libunbound-dev nettle-dev libssl-dev libevent-dev libsqlite3-dev libboost-thread-dev libboost-serialization-dev libboost-program-options-dev libgtest-dev libminiupnpc-dev libunwind8-dev libreadline-dev libhidapi-dev libusb-1.0.0-dev qttools5-dev libcurl4-openssl-dev lsb-release openssh-client' diff --git a/contrib/ci/docker/10-ubuntu-impish.dockerfile b/contrib/ci/docker/10-ubuntu-impish.dockerfile new file mode 100644 index 000000000..e7dcc77f3 --- /dev/null +++ b/contrib/ci/docker/10-ubuntu-impish.dockerfile @@ -0,0 +1,4 @@ +ARG ARCH=amd64 +FROM ${ARCH}/ubuntu:impish +RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections' +RUN /bin/bash -c 'apt-get -o=Dpkg::Use-Pty=0 -q update && apt-get -o=Dpkg::Use-Pty=0 -q dist-upgrade -y && apt-get -o=Dpkg::Use-Pty=0 --no-install-recommends -q install -y eatmydata gdb cmake git ninja-build pkg-config ccache g++ libsodium-dev libzmq3-dev libsystemd-dev python3-dev libuv1-dev libunbound-dev nettle-dev libssl-dev libevent-dev libsqlite3-dev libboost-thread-dev libboost-serialization-dev libboost-program-options-dev libgtest-dev libminiupnpc-dev libunwind8-dev libreadline-dev libhidapi-dev libusb-1.0.0-dev qttools5-dev libcurl4-openssl-dev lsb-release openssh-client' diff --git a/contrib/ci/docker/10-ubuntu-lts.dockerfile b/contrib/ci/docker/10-ubuntu-lts.dockerfile new file mode 100644 index 000000000..8e73db27e --- /dev/null +++ b/contrib/ci/docker/10-ubuntu-lts.dockerfile @@ -0,0 +1,4 @@ +ARG ARCH=amd64 +FROM ${ARCH}/ubuntu:latest +RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections' +RUN /bin/bash -c 'apt-get -o=Dpkg::Use-Pty=0 -q update && apt-get -o=Dpkg::Use-Pty=0 -q dist-upgrade -y && apt-get -o=Dpkg::Use-Pty=0 --no-install-recommends -q install -y eatmydata gdb cmake git ninja-build pkg-config ccache g++ libsodium-dev libzmq3-dev libsystemd-dev python3-dev libuv1-dev libunbound-dev nettle-dev libssl-dev libevent-dev libsqlite3-dev libboost-thread-dev libboost-serialization-dev libboost-program-options-dev libgtest-dev libminiupnpc-dev libunwind8-dev libreadline-dev libhidapi-dev libusb-1.0.0-dev qttools5-dev libcurl4-openssl-dev lsb-release openssh-client' diff --git a/contrib/ci/docker/10-ubuntu-rolling.dockerfile b/contrib/ci/docker/10-ubuntu-rolling.dockerfile new file mode 100644 index 000000000..175961320 --- /dev/null +++ b/contrib/ci/docker/10-ubuntu-rolling.dockerfile @@ -0,0 +1,4 @@ +ARG ARCH=amd64 +FROM ${ARCH}/ubuntu:rolling +RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections' +RUN /bin/bash -c 'apt-get -o=Dpkg::Use-Pty=0 -q update && apt-get -o=Dpkg::Use-Pty=0 -q dist-upgrade -y && apt-get -o=Dpkg::Use-Pty=0 --no-install-recommends -q install -y eatmydata gdb cmake git ninja-build pkg-config ccache g++ libsodium-dev libzmq3-dev libsystemd-dev python3-dev libuv1-dev libunbound-dev nettle-dev libssl-dev libevent-dev libsqlite3-dev libboost-thread-dev libboost-serialization-dev libboost-program-options-dev libgtest-dev libminiupnpc-dev libunwind8-dev libreadline-dev libhidapi-dev libusb-1.0.0-dev qttools5-dev libcurl4-openssl-dev lsb-release openssh-client' diff --git a/contrib/ci/docker/50-android.dockerfile b/contrib/ci/docker/50-android.dockerfile index e9f14c8b0..1bed19fc5 100644 --- a/contrib/ci/docker/50-android.dockerfile +++ b/contrib/ci/docker/50-android.dockerfile @@ -1,3 +1,4 @@ -FROM registry.oxen.rocks/lokinet-ci-debian-testing-base +ARG ARCH=amd64 +FROM registry.oxen.rocks/lokinet-ci-debian-testing-base/${ARCH} RUN /bin/bash -c 'sed -i "s/main/main contrib/g" /etc/apt/sources.list' RUN /bin/bash -c 'apt-get -o=Dpkg::Use-Pty=0 -q update && apt-get -o=Dpkg::Use-Pty=0 -q install --no-install-recommends -y android-sdk google-android-ndk-installer wget git pkg-config automake libtool cmake ccache curl zip xz-utils openssh-client && git clone https://github.com/Shadowstyler/android-sdk-licenses.git /tmp/android-sdk-licenses && cp -a /tmp/android-sdk-licenses/*-license /usr/lib/android-sdk/licenses && rm -rf /tmp/android-sdk-licenses' diff --git a/contrib/ci/docker/arm32v7/00-debian-buster-base.dockerfile b/contrib/ci/docker/arm32v7/00-debian-buster-base.dockerfile new file mode 120000 index 000000000..e4ab00108 --- /dev/null +++ b/contrib/ci/docker/arm32v7/00-debian-buster-base.dockerfile @@ -0,0 +1 @@ +../00-debian-buster-base.dockerfile \ No newline at end of file diff --git a/contrib/ci/docker/arm32v7/00-debian-stable-base.dockerfile b/contrib/ci/docker/arm32v7/00-debian-stable-base.dockerfile new file mode 120000 index 000000000..2d62f76d4 --- /dev/null +++ b/contrib/ci/docker/arm32v7/00-debian-stable-base.dockerfile @@ -0,0 +1 @@ +../00-debian-stable-base.dockerfile \ No newline at end of file diff --git a/contrib/ci/docker/arm32v7/10-debian-buster.dockerfile b/contrib/ci/docker/arm32v7/10-debian-buster.dockerfile new file mode 120000 index 000000000..592305776 --- /dev/null +++ b/contrib/ci/docker/arm32v7/10-debian-buster.dockerfile @@ -0,0 +1 @@ +../10-debian-buster.dockerfile \ No newline at end of file diff --git a/contrib/ci/docker/arm32v7/10-debian-stable.dockerfile b/contrib/ci/docker/arm32v7/10-debian-stable.dockerfile new file mode 120000 index 000000000..a10f6b3c5 --- /dev/null +++ b/contrib/ci/docker/arm32v7/10-debian-stable.dockerfile @@ -0,0 +1 @@ +../10-debian-stable.dockerfile \ No newline at end of file diff --git a/contrib/ci/docker/arm64v8/00-debian-sid-base.dockerfile b/contrib/ci/docker/arm64v8/00-debian-sid-base.dockerfile new file mode 120000 index 000000000..3fdec500d --- /dev/null +++ b/contrib/ci/docker/arm64v8/00-debian-sid-base.dockerfile @@ -0,0 +1 @@ +../00-debian-sid-base.dockerfile \ No newline at end of file diff --git a/contrib/ci/docker/arm64v8/10-debian-sid.dockerfile b/contrib/ci/docker/arm64v8/10-debian-sid.dockerfile new file mode 120000 index 000000000..baf7ccaad --- /dev/null +++ b/contrib/ci/docker/arm64v8/10-debian-sid.dockerfile @@ -0,0 +1 @@ +../10-debian-sid.dockerfile \ No newline at end of file diff --git a/contrib/ci/docker/debian-sid-clang.dockerfile b/contrib/ci/docker/debian-sid-clang.dockerfile index f113a1c0f..7dc8e5cc1 100644 --- a/contrib/ci/docker/debian-sid-clang.dockerfile +++ b/contrib/ci/docker/debian-sid-clang.dockerfile @@ -1,2 +1,3 @@ -FROM registry.oxen.rocks/lokinet-ci-debian-sid +ARG ARCH=amd64 +FROM registry.oxen.rocks/lokinet-ci-debian-sid/${ARCH} RUN /bin/bash -c 'apt-get -o=Dpkg::Use-Pty=0 -q install --no-install-recommends -y clang-13 lld-13 libc++-13-dev libc++abi-13-dev' diff --git a/contrib/ci/docker/debian-win32-cross.dockerfile b/contrib/ci/docker/debian-win32-cross.dockerfile index aa4425848..ba12ca8c0 100644 --- a/contrib/ci/docker/debian-win32-cross.dockerfile +++ b/contrib/ci/docker/debian-win32-cross.dockerfile @@ -1,4 +1,5 @@ -FROM debian:testing +ARG ARCH=amd64 +FROM ${ARCH}/debian:testing RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections' RUN /bin/bash -c 'apt-get -o=Dpkg::Use-Pty=0 -q update && apt-get -o=Dpkg::Use-Pty=0 -q dist-upgrade -y && apt-get -o=Dpkg::Use-Pty=0 -q install --no-install-recommends -y eatmydata build-essential cmake git ninja-build pkg-config ccache g++-mingw-w64-x86-64-posix nsis zip automake libtool autoconf make qttools5-dev file gperf patch openssh-client' RUN /bin/bash -c 'update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix && update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix' diff --git a/contrib/ci/docker/flutter.dockerfile b/contrib/ci/docker/flutter.dockerfile index 05a0b2580..bf549edd1 100644 --- a/contrib/ci/docker/flutter.dockerfile +++ b/contrib/ci/docker/flutter.dockerfile @@ -1,2 +1,3 @@ -FROM registry.oxen.rocks/lokinet-ci-android +ARG ARCH=amd64 +FROM registry.oxen.rocks/lokinet-ci-android/${ARCH} RUN /bin/bash -c 'cd /opt && curl https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_2.2.2-stable.tar.xz | tar xJv && ln -s /opt/flutter/bin/flutter /usr/local/bin/ && flutter precache' diff --git a/contrib/ci/docker/i386/00-debian-stable-base.dockerfile b/contrib/ci/docker/i386/00-debian-stable-base.dockerfile new file mode 120000 index 000000000..2d62f76d4 --- /dev/null +++ b/contrib/ci/docker/i386/00-debian-stable-base.dockerfile @@ -0,0 +1 @@ +../00-debian-stable-base.dockerfile \ No newline at end of file diff --git a/contrib/ci/docker/i386/10-debian-stable.dockerfile b/contrib/ci/docker/i386/10-debian-stable.dockerfile new file mode 120000 index 000000000..a10f6b3c5 --- /dev/null +++ b/contrib/ci/docker/i386/10-debian-stable.dockerfile @@ -0,0 +1 @@ +../10-debian-stable.dockerfile \ No newline at end of file diff --git a/contrib/ci/docker/lint.dockerfile b/contrib/ci/docker/lint.dockerfile index d7310e8aa..62f97940a 100644 --- a/contrib/ci/docker/lint.dockerfile +++ b/contrib/ci/docker/lint.dockerfile @@ -1,2 +1,3 @@ -FROM registry.oxen.rocks/lokinet-ci-debian-sid-base +ARG ARCH=amd64 +FROM registry.oxen.rocks/lokinet-ci-debian-sid-base/${ARCH} RUN /bin/bash -c 'apt-get -o=Dpkg::Use-Pty=0 -q install --no-install-recommends -y eatmydata git clang-format-11 jsonnet' diff --git a/contrib/ci/docker/readme.md b/contrib/ci/docker/readme.md index 767286b61..5cd271f2d 100644 --- a/contrib/ci/docker/readme.md +++ b/contrib/ci/docker/readme.md @@ -3,7 +3,7 @@ To rebuild all ci images and push them to the oxen registry server do: $ docker login registry.oxen.rocks - $ ./rebuild-docker-images.sh *.dockerfile + $ ./rebuild-docker-images.sh If you aren't part of the Oxen team, you'll likely need to set up your own registry and change registry.oxen.rocks to your own domain name in order to do anything useful with this. diff --git a/contrib/ci/docker/rebuild-docker-images.sh b/contrib/ci/docker/rebuild-docker-images.sh index a95d326bf..6a3b97684 100755 --- a/contrib/ci/docker/rebuild-docker-images.sh +++ b/contrib/ci/docker/rebuild-docker-images.sh @@ -2,18 +2,41 @@ set -o errexit +trap 'echo -e "\n\n\n\e[31;1mAn error occurred!\e[1m\n\n"' ERR + registry=registry.oxen.rocks if [[ $# -eq 0 ]]; then - files=(*.dockerfile) + files=(*.dockerfile i386/*.dockerfile arm64v8/*.dockerfile arm32v7/*.dockerfile) else files=("$@") fi +declare -A manifests + for file in "${files[@]}"; do - name="${file#[0-9][0-9]-}" # s/^\d\d-// + if [[ "$file" == */* ]]; then + arch="${file%%/*}" + name="${file#*/}" + else + arch="amd64" + name="$file" + fi + + name="${name#[0-9][0-9]-}" # s/^\d\d-// name="${name%.dockerfile}" # s/\.dockerfile$// - echo -e "\e[32;1mrebuilding $name\e[0m" - docker build --pull -f $file -t $registry/lokinet-ci-$name . - docker push $registry/lokinet-ci-$name + namearch=$registry/lokinet-ci-$name/$arch + latest=$registry/lokinet-ci-$name:latest + echo -e "\e[32;1mrebuilding \e[35;1m$namearch\e[0m" + docker build --pull -f $file -t $namearch --build-arg ARCH=$arch . + docker push $namearch + + manifests[$latest]="${manifests[$latest]} $namearch" +done + +for latest in "${!manifests[@]}"; do + echo -e "\e[32;1mpushing new manifest for \e[33;1m$latest[\e[35;1m${manifests[$latest]} \e[33;1m]\e[0m" + docker manifest rm $latest 2>/dev/null || true + docker manifest create $latest ${manifests[$latest]} + docker manifest push $latest done