mirror of https://github.com/oxen-io/lokinet
Replace dockerfiles with a Python script
parent
cbbee59774
commit
1c4332ad6a
@ -1,6 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM ${ARCH}/debian:bullseye
|
||||
RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections'
|
||||
RUN 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
|
@ -1,6 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM ${ARCH}/debian:buster
|
||||
RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections'
|
||||
RUN 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
|
@ -1,6 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM ${ARCH}/debian:sid
|
||||
RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections'
|
||||
RUN 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
|
@ -1,6 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM ${ARCH}/debian:stable
|
||||
RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections'
|
||||
RUN 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
|
@ -1,6 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM ${ARCH}/debian:testing
|
||||
RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections'
|
||||
RUN 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
|
@ -1,6 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM ${ARCH}/ubuntu:bionic
|
||||
RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections'
|
||||
RUN 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
|
@ -1,6 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM ${ARCH}/ubuntu:focal
|
||||
RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections'
|
||||
RUN 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
|
@ -1,6 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM ${ARCH}/ubuntu:hirsute
|
||||
RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections'
|
||||
RUN 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
|
@ -1,6 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM ${ARCH}/ubuntu:impish
|
||||
RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections'
|
||||
RUN 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
|
@ -1,6 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM ${ARCH}/ubuntu:focal
|
||||
RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections'
|
||||
RUN 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
|
@ -1,6 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM ${ARCH}/ubuntu:rolling
|
||||
RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections'
|
||||
RUN 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
|
@ -1,46 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-debian-bullseye-base/${ARCH}
|
||||
RUN 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 \
|
||||
automake \
|
||||
ccache \
|
||||
cmake \
|
||||
eatmydata \
|
||||
g++ \
|
||||
gdb \
|
||||
git \
|
||||
libboost-program-options-dev \
|
||||
libboost-serialization-dev \
|
||||
libboost-thread-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libevent-dev \
|
||||
libgtest-dev \
|
||||
libhidapi-dev \
|
||||
libjemalloc-dev \
|
||||
libminiupnpc-dev \
|
||||
libreadline-dev \
|
||||
libsodium-dev \
|
||||
libsqlite3-dev \
|
||||
libssl-dev \
|
||||
libsystemd-dev \
|
||||
libtool \
|
||||
libunbound-dev \
|
||||
libunwind8-dev \
|
||||
libusb-1.0.0-dev \
|
||||
libuv1-dev \
|
||||
libzmq3-dev \
|
||||
lsb-release \
|
||||
make \
|
||||
nettle-dev \
|
||||
ninja-build \
|
||||
openssh-client \
|
||||
patch \
|
||||
pkg-config \
|
||||
pybind11-dev \
|
||||
python3-dev \
|
||||
python3-pip \
|
||||
python3-pybind11 \
|
||||
python3-pytest \
|
||||
python3-setuptools \
|
||||
qttools5-dev
|
@ -1,47 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-debian-buster-base/${ARCH}
|
||||
RUN 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 \
|
||||
automake \
|
||||
ccache \
|
||||
cmake \
|
||||
eatmydata \
|
||||
g++ \
|
||||
gdb \
|
||||
git \
|
||||
libboost-program-options-dev \
|
||||
libboost-serialization-dev \
|
||||
libboost-thread-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libevent-dev \
|
||||
libgtest-dev \
|
||||
libhidapi-dev \
|
||||
libjemalloc-dev \
|
||||
libminiupnpc-dev \
|
||||
libreadline-dev \
|
||||
libsodium-dev \
|
||||
libsqlite3-dev \
|
||||
libssl-dev \
|
||||
libsystemd-dev \
|
||||
libtool \
|
||||
libunbound-dev \
|
||||
libunwind8-dev \
|
||||
libusb-1.0.0-dev \
|
||||
libuv1-dev \
|
||||
libzmq3-dev \
|
||||
lsb-release \
|
||||
make \
|
||||
nettle-dev \
|
||||
ninja-build \
|
||||
openssh-client \
|
||||
patch \
|
||||
pkg-config \
|
||||
pybind11-dev \
|
||||
python3-dev \
|
||||
python3-pip \
|
||||
python3-pybind11 \
|
||||
python3-pytest \
|
||||
python3-setuptools \
|
||||
qttools5-dev \
|
||||
xz-utils
|
@ -1,46 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-debian-sid-base/${ARCH}
|
||||
RUN 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 \
|
||||
automake \
|
||||
ccache \
|
||||
cmake \
|
||||
eatmydata \
|
||||
g++ \
|
||||
gdb \
|
||||
git \
|
||||
libboost-program-options-dev \
|
||||
libboost-serialization-dev \
|
||||
libboost-thread-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libevent-dev \
|
||||
libgtest-dev \
|
||||
libhidapi-dev \
|
||||
libjemalloc-dev \
|
||||
libminiupnpc-dev \
|
||||
libreadline-dev \
|
||||
libsodium-dev \
|
||||
libsqlite3-dev \
|
||||
libssl-dev \
|
||||
libsystemd-dev \
|
||||
libtool \
|
||||
libunbound-dev \
|
||||
libunwind8-dev \
|
||||
libusb-1.0.0-dev \
|
||||
libuv1-dev \
|
||||
libzmq3-dev \
|
||||
lsb-release \
|
||||
make \
|
||||
nettle-dev \
|
||||
ninja-build \
|
||||
openssh-client \
|
||||
patch \
|
||||
pkg-config \
|
||||
pybind11-dev \
|
||||
python3-dev \
|
||||
python3-pip \
|
||||
python3-pybind11 \
|
||||
python3-pytest \
|
||||
python3-setuptools \
|
||||
qttools5-dev
|
@ -1,46 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-debian-stable-base/${ARCH}
|
||||
RUN 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 \
|
||||
automake \
|
||||
ccache \
|
||||
cmake \
|
||||
eatmydata \
|
||||
g++ \
|
||||
gdb \
|
||||
git \
|
||||
libboost-program-options-dev \
|
||||
libboost-serialization-dev \
|
||||
libboost-thread-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libevent-dev \
|
||||
libgtest-dev \
|
||||
libhidapi-dev \
|
||||
libjemalloc-dev \
|
||||
libminiupnpc-dev \
|
||||
libreadline-dev \
|
||||
libsodium-dev \
|
||||
libsqlite3-dev \
|
||||
libssl-dev \
|
||||
libsystemd-dev \
|
||||
libtool \
|
||||
libunbound-dev \
|
||||
libunwind8-dev \
|
||||
libusb-1.0.0-dev \
|
||||
libuv1-dev \
|
||||
libzmq3-dev \
|
||||
lsb-release \
|
||||
make \
|
||||
nettle-dev \
|
||||
ninja-build \
|
||||
openssh-client \
|
||||
patch \
|
||||
pkg-config \
|
||||
pybind11-dev \
|
||||
python3-dev \
|
||||
python3-pip \
|
||||
python3-pybind11 \
|
||||
python3-pytest \
|
||||
python3-setuptools \
|
||||
qttools5-dev
|
@ -1,36 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-ubuntu-bionic-base/${ARCH}
|
||||
RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections'
|
||||
RUN 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 \
|
||||
autoconf \
|
||||
automake \
|
||||
ccache \
|
||||
cmake \
|
||||
eatmydata \
|
||||
file \
|
||||
g++-8 \
|
||||
gdb \
|
||||
git \
|
||||
gperf \
|
||||
libjemalloc-dev \
|
||||
libpgm-dev \
|
||||
libtool \
|
||||
libuv1-dev \
|
||||
libzmq3-dev \
|
||||
lsb-release \
|
||||
make \
|
||||
ninja-build \
|
||||
openssh-client \
|
||||
openssh-client \
|
||||
patch \
|
||||
pkg-config \
|
||||
pybind11-dev \
|
||||
python3-dev \
|
||||
python3-pip \
|
||||
python3-pybind11 \
|
||||
python3-pytest \
|
||||
python3-setuptools \
|
||||
qttools5-dev \
|
||||
&& mkdir -p /usr/lib/x86_64-linux-gnu/pgm-5.2/include
|
@ -1,47 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-ubuntu-focal-base/${ARCH}
|
||||
RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections'
|
||||
RUN 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 \
|
||||
automake \
|
||||
ccache \
|
||||
cmake \
|
||||
eatmydata \
|
||||
g++ \
|
||||
gdb \
|
||||
git \
|
||||
libboost-program-options-dev \
|
||||
libboost-serialization-dev \
|
||||
libboost-thread-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libevent-dev \
|
||||
libgtest-dev \
|
||||
libhidapi-dev \
|
||||
libjemalloc-dev \
|
||||
libminiupnpc-dev \
|
||||
libreadline-dev \
|
||||
libsodium-dev \
|
||||
libsqlite3-dev \
|
||||
libssl-dev \
|
||||
libsystemd-dev \
|
||||
libtool \
|
||||
libunbound-dev \
|
||||
libunwind8-dev \
|
||||
libusb-1.0.0-dev \
|
||||
libuv1-dev \
|
||||
libzmq3-dev \
|
||||
lsb-release \
|
||||
make \
|
||||
nettle-dev \
|
||||
ninja-build \
|
||||
openssh-client \
|
||||
patch \
|
||||
pkg-config \
|
||||
pybind11-dev \
|
||||
python3-dev \
|
||||
python3-pip \
|
||||
python3-pybind11 \
|
||||
python3-pytest \
|
||||
python3-setuptools \
|
||||
qttools5-dev
|
@ -1,47 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-ubuntu-impish-base/${ARCH}
|
||||
RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections'
|
||||
RUN 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 \
|
||||
automake \
|
||||
ccache \
|
||||
cmake \
|
||||
eatmydata \
|
||||
g++ \
|
||||
gdb \
|
||||
git \
|
||||
libboost-program-options-dev \
|
||||
libboost-serialization-dev \
|
||||
libboost-thread-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libevent-dev \
|
||||
libgtest-dev \
|
||||
libhidapi-dev \
|
||||
libjemalloc-dev \
|
||||
libminiupnpc-dev \
|
||||
libreadline-dev \
|
||||
libsodium-dev \
|
||||
libsqlite3-dev \
|
||||
libssl-dev \
|
||||
libsystemd-dev \
|
||||
libtool \
|
||||
libunbound-dev \
|
||||
libunwind8-dev \
|
||||
libusb-1.0.0-dev \
|
||||
libuv1-dev \
|
||||
libzmq3-dev \
|
||||
lsb-release \
|
||||
make \
|
||||
nettle-dev \
|
||||
ninja-build \
|
||||
openssh-client \
|
||||
patch \
|
||||
pkg-config \
|
||||
pybind11-dev \
|
||||
python3-dev \
|
||||
python3-pip \
|
||||
python3-pybind11 \
|
||||
python3-pytest \
|
||||
python3-setuptools \
|
||||
qttools5-dev
|
@ -1,47 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-ubuntu-lts-base/${ARCH}
|
||||
RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections'
|
||||
RUN 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 \
|
||||
automake \
|
||||
ccache \
|
||||
cmake \
|
||||
eatmydata \
|
||||
g++ \
|
||||
gdb \
|
||||
git \
|
||||
libboost-program-options-dev \
|
||||
libboost-serialization-dev \
|
||||
libboost-thread-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libevent-dev \
|
||||
libgtest-dev \
|
||||
libhidapi-dev \
|
||||
libjemalloc-dev \
|
||||
libminiupnpc-dev \
|
||||
libreadline-dev \
|
||||
libsodium-dev \
|
||||
libsqlite3-dev \
|
||||
libssl-dev \
|
||||
libsystemd-dev \
|
||||
libtool \
|
||||
libunbound-dev \
|
||||
libunwind8-dev \
|
||||
libusb-1.0.0-dev \
|
||||
libuv1-dev \
|
||||
libzmq3-dev \
|
||||
lsb-release \
|
||||
make \
|
||||
nettle-dev \
|
||||
ninja-build \
|
||||
openssh-client \
|
||||
patch \
|
||||
pkg-config \
|
||||
pybind11-dev \
|
||||
python3-dev \
|
||||
python3-pip \
|
||||
python3-pybind11 \
|
||||
python3-pytest \
|
||||
python3-setuptools \
|
||||
qttools5-dev
|
@ -1,47 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-ubuntu-rolling-base/${ARCH}
|
||||
RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections'
|
||||
RUN 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 \
|
||||
automake \
|
||||
ccache \
|
||||
cmake \
|
||||
eatmydata \
|
||||
g++ \
|
||||
gdb \
|
||||
git \
|
||||
libboost-program-options-dev \
|
||||
libboost-serialization-dev \
|
||||
libboost-thread-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libevent-dev \
|
||||
libgtest-dev \
|
||||
libhidapi-dev \
|
||||
libjemalloc-dev \
|
||||
libminiupnpc-dev \
|
||||
libreadline-dev \
|
||||
libsodium-dev \
|
||||
libsqlite3-dev \
|
||||
libssl-dev \
|
||||
libsystemd-dev \
|
||||
libtool \
|
||||
libunbound-dev \
|
||||
libunwind8-dev \
|
||||
libusb-1.0.0-dev \
|
||||
libuv1-dev \
|
||||
libzmq3-dev \
|
||||
lsb-release \
|
||||
make \
|
||||
nettle-dev \
|
||||
ninja-build \
|
||||
openssh-client \
|
||||
patch \
|
||||
pkg-config \
|
||||
pybind11-dev \
|
||||
python3-dev \
|
||||
python3-pip \
|
||||
python3-pybind11 \
|
||||
python3-pytest \
|
||||
python3-setuptools \
|
||||
qttools5-dev
|
@ -1,10 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-ubuntu-bionic-base/${ARCH}
|
||||
RUN apt-get -o=Dpkg::Use-Pty=0 --no-install-recommends -q install -y \
|
||||
ccache \
|
||||
cmake \
|
||||
devscripts \
|
||||
equivs \
|
||||
g++ \
|
||||
git-buildpackage \
|
||||
openssh-client
|
@ -1,10 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-debian-bullseye-base/${ARCH}
|
||||
RUN apt-get -o=Dpkg::Use-Pty=0 --no-install-recommends -q install -y \
|
||||
ccache \
|
||||
cmake \
|
||||
devscripts \
|
||||
equivs \
|
||||
g++ \
|
||||
git-buildpackage \
|
||||
openssh-client
|
@ -1,10 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-debian-buster-base/${ARCH}
|
||||
RUN apt-get -o=Dpkg::Use-Pty=0 --no-install-recommends -q install -y \
|
||||
ccache \
|
||||
cmake \
|
||||
devscripts \
|
||||
equivs \
|
||||
g++ \
|
||||
git-buildpackage \
|
||||
openssh-client
|
@ -1,10 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-ubuntu-focal-base/${ARCH}
|
||||
RUN apt-get -o=Dpkg::Use-Pty=0 --no-install-recommends -q install -y \
|
||||
ccache \
|
||||
cmake \
|
||||
devscripts \
|
||||
equivs \
|
||||
g++ \
|
||||
git-buildpackage \
|
||||
openssh-client
|
@ -1,10 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-ubuntu-hirsute-base/${ARCH}
|
||||
RUN apt-get -o=Dpkg::Use-Pty=0 --no-install-recommends -q install -y \
|
||||
ccache \
|
||||
cmake \
|
||||
devscripts \
|
||||
equivs \
|
||||
g++ \
|
||||
git-buildpackage \
|
||||
openssh-client
|
@ -1,10 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-ubuntu-impish-base/${ARCH}
|
||||
RUN apt-get -o=Dpkg::Use-Pty=0 --no-install-recommends -q install -y \
|
||||
ccache \
|
||||
cmake \
|
||||
devscripts \
|
||||
equivs \
|
||||
g++ \
|
||||
git-buildpackage \
|
||||
openssh-client
|
@ -1,10 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-debian-sid-base/${ARCH}
|
||||
RUN apt-get -o=Dpkg::Use-Pty=0 --no-install-recommends -q install -y \
|
||||
ccache \
|
||||
cmake \
|
||||
devscripts \
|
||||
equivs \
|
||||
g++ \
|
||||
git-buildpackage \
|
||||
openssh-client
|
@ -1,10 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-debian-bullseye/${ARCH}
|
||||
RUN apt-get -o=Dpkg::Use-Pty=0 --no-install-recommends -q install -y \
|
||||
ccache \
|
||||
debhelper \
|
||||
devscripts \
|
||||
equivs \
|
||||
git \
|
||||
git-buildpackage \
|
||||
python3-dev
|
@ -1,10 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-debian-sid/${ARCH}
|
||||
RUN apt-get -o=Dpkg::Use-Pty=0 --no-install-recommends -q install -y \
|
||||
ccache \
|
||||
debhelper \
|
||||
devscripts \
|
||||
equivs \
|
||||
git \
|
||||
git-buildpackage \
|
||||
python3-dev
|
@ -1,10 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-ubuntu-focal/${ARCH}
|
||||
RUN apt-get -o=Dpkg::Use-Pty=0 --no-install-recommends -q install -y \
|
||||
ccache \
|
||||
debhelper \
|
||||
devscripts \
|
||||
equivs \
|
||||
git \
|
||||
git-buildpackage \
|
||||
python3-dev
|
@ -1,10 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-ubuntu-impish/${ARCH}
|
||||
RUN apt-get -o=Dpkg::Use-Pty=0 --no-install-recommends -q install -y \
|
||||
ccache \
|
||||
debhelper \
|
||||
devscripts \
|
||||
equivs \
|
||||
git \
|
||||
git-buildpackage \
|
||||
python3-dev
|
@ -1,23 +0,0 @@
|
||||
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 apt-get -o=Dpkg::Use-Pty=0 -q update \
|
||||
&& apt-get -o=Dpkg::Use-Pty=0 -q install --no-install-recommends -y \
|
||||
android-sdk \
|
||||
automake \
|
||||
ccache \
|
||||
cmake \
|
||||
curl \
|
||||
git \
|
||||
google-android-ndk-installer \
|
||||
libtool \
|
||||
make \
|
||||
openssh-client \
|
||||
patch \
|
||||
pkg-config \
|
||||
wget \
|
||||
xz-utils \
|
||||
zip \
|
||||
&& 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
|
@ -1 +0,0 @@
|
||||
../00-debian-bullseye-base.dockerfile
|
@ -1 +0,0 @@
|
||||
../00-debian-buster-base.dockerfile
|
@ -1 +0,0 @@
|
||||
../00-debian-sid-base.dockerfile
|
@ -1 +0,0 @@
|
||||
../00-debian-stable-base.dockerfile
|
@ -1 +0,0 @@
|
||||
../00-ubuntu-bionic-base.dockerfile
|
@ -1 +0,0 @@
|
||||
../00-ubuntu-focal-base.dockerfile
|
@ -1 +0,0 @@
|
||||
../00-ubuntu-hirsute-base.dockerfile
|
@ -1 +0,0 @@
|
||||
../00-ubuntu-impish-base.dockerfile
|
@ -1 +0,0 @@
|
||||
../10-debian-buster.dockerfile
|
@ -1 +0,0 @@
|
||||
../10-debian-stable.dockerfile
|
@ -1 +0,0 @@
|
||||
../20-deb-builder-bionic.dockerfile
|
@ -1 +0,0 @@
|
||||
../20-deb-builder-bullseye.dockerfile
|
@ -1 +0,0 @@
|
||||
../20-deb-builder-buster.dockerfile
|
@ -1 +0,0 @@
|
||||
../20-deb-builder-focal.dockerfile
|
@ -1 +0,0 @@
|
||||
../20-deb-builder-hirsute.dockerfile
|
@ -1 +0,0 @@
|
||||
../20-deb-builder-impish.dockerfile
|
@ -1 +0,0 @@
|
||||
../20-deb-builder-sid.dockerfile
|
@ -1 +0,0 @@
|
||||
../00-debian-bullseye-base.dockerfile
|
@ -1 +0,0 @@
|
||||
../00-debian-buster-base.dockerfile
|
@ -1 +0,0 @@
|
||||
../00-debian-sid-base.dockerfile
|
@ -1 +0,0 @@
|
||||
../00-ubuntu-bionic-base.dockerfile
|
@ -1 +0,0 @@
|
||||
../00-ubuntu-focal-base.dockerfile
|
@ -1 +0,0 @@
|
||||
../00-ubuntu-hirsute-base.dockerfile
|
@ -1 +0,0 @@
|
||||
../00-ubuntu-impish-base.dockerfile
|
@ -1 +0,0 @@
|
||||
../10-debian-sid.dockerfile
|
@ -1 +0,0 @@
|
||||
../20-deb-builder-bionic.dockerfile
|
@ -1 +0,0 @@
|
||||
../20-deb-builder-bullseye.dockerfile
|
@ -1 +0,0 @@
|
||||
../20-deb-builder-buster.dockerfile
|
@ -1 +0,0 @@
|
||||
../20-deb-builder-focal.dockerfile
|
@ -1 +0,0 @@
|
||||
../20-deb-builder-hirsute.dockerfile
|
@ -1 +0,0 @@
|
||||
../20-deb-builder-impish.dockerfile
|
@ -1 +0,0 @@
|
||||
../20-deb-builder-sid.dockerfile
|
@ -1 +0,0 @@
|
||||
../40-debian-sid-debhelper.dockerfile
|
@ -1,7 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-debian-sid/${ARCH}
|
||||
RUN apt-get -o=Dpkg::Use-Pty=0 -q install --no-install-recommends -y \
|
||||
clang-13 \
|
||||
libc++-13-dev \
|
||||
libc++abi-13-dev \
|
||||
lld-13
|
@ -1,24 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-debian-testing-base/${ARCH}
|
||||
RUN apt-get -o=Dpkg::Use-Pty=0 -q install --no-install-recommends -y \
|
||||
autoconf \
|
||||
automake \
|
||||
build-essential \
|
||||
ccache \
|
||||
cmake \
|
||||
eatmydata \
|
||||
file \
|
||||
g++-mingw-w64-x86-64-posix \
|
||||
git \
|
||||
gperf \
|
||||
libtool \
|
||||
make \
|
||||
ninja-build \
|
||||
nsis \
|
||||
openssh-client \
|
||||
patch \
|
||||
pkg-config \
|
||||
qttools5-dev \
|
||||
zip \
|
||||
&& update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix \
|
||||
&& update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
|
@ -1,7 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-android/${ARCH}
|
||||
RUN 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
|
@ -1 +0,0 @@
|
||||
../00-debian-bullseye-base.dockerfile
|
@ -1 +0,0 @@
|
||||
../00-debian-buster-base.dockerfile
|
@ -1 +0,0 @@
|
||||
../00-debian-sid-base.dockerfile
|
@ -1 +0,0 @@
|
||||
../00-debian-stable-base.dockerfile
|
@ -1 +0,0 @@
|
||||
../00-ubuntu-bionic-base.dockerfile
|
@ -1 +0,0 @@
|
||||
../10-debian-stable.dockerfile
|
@ -1 +0,0 @@
|
||||
../20-deb-builder-bionic.dockerfile
|
@ -1 +0,0 @@
|
||||
../20-deb-builder-bullseye.dockerfile
|
@ -1 +0,0 @@
|
||||
../20-deb-builder-buster.dockerfile
|
@ -1 +0,0 @@
|
||||
../20-deb-builder-sid.dockerfile
|
@ -1,7 +0,0 @@
|
||||
ARG ARCH=amd64
|
||||
FROM registry.oxen.rocks/lokinet-ci-debian-sid-base/${ARCH}
|
||||
RUN apt-get -o=Dpkg::Use-Pty=0 -q install --no-install-recommends -y \
|
||||
clang-format-11 \
|
||||
eatmydata \
|
||||
git \
|
||||
jsonnet
|
@ -1,17 +0,0 @@
|
||||
FROM node:14.16.1
|
||||
RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections'
|
||||
RUN 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 \
|
||||
ccache \
|
||||
cmake \
|
||||
eatmydata \
|
||||
g++ \
|
||||
gdb \
|
||||
git \
|
||||
make \
|
||||
ninja-build \
|
||||
openssh-client \
|
||||
patch \
|
||||
pkg-config \
|
||||
wine
|
@ -0,0 +1,251 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import subprocess
|
||||
import tempfile
|
||||
|
||||
no_cache = True # Whether to build with --no-cache
|
||||
|
||||
registry_base = 'registry.oxen.rocks/lokinet-ci-'
|
||||
|
||||
distros = [*(['debian', x] for x in ('sid', 'stable', 'testing', 'bullseye', 'buster')),
|
||||
*(['ubuntu', x] for x in ('rolling', 'lts', 'impish', 'hirsute', 'focal', 'bionic'))]
|
||||
|
||||
manifests = {} # "image:latest": ["image/amd64", "image/arm64v8", ...]
|
||||
|
||||
|
||||
def arches(distro):
|
||||
a = ['amd64', 'arm64v8', 'arm32v7']
|
||||
if distro[0] == 'debian' or distro == ['ubuntu', 'bionic']:
|
||||
a.append('i386') # i386 builds don't work on later ubuntu
|
||||
return a
|
||||
|
||||
|
||||
def build_tag(tag_base, arch, contents):
|
||||
with tempfile.NamedTemporaryFile() as dockerfile:
|
||||
dockerfile.write(contents.encode())
|
||||
dockerfile.flush()
|
||||
|
||||
tag = '{}/{}'.format(tag_base, arch)
|
||||
print("\033[32;1mrebuilding \033[35;1m{}\033[0m".format(tag))
|
||||
subprocess.run(['docker', 'build', '--pull', '-f', dockerfile.name, '-t', tag,
|
||||
*(('--no-cache',) if no_cache else ()), '.'],
|
||||
check=True)
|
||||
subprocess.run(['docker', 'push', tag], check=True)
|
||||
|
||||
latest = tag_base + ':latest'
|
||||
if latest in manifests:
|
||||
manifests[latest].append(tag)
|
||||
else:
|
||||
manifests[latest] = [tag]
|
||||
|
||||
|
||||
def distro_build(distro, arch):
|
||||
prefix = '{r}{distro[0]}-{distro[1]}'.format(r=registry_base, distro=distro)
|
||||
fmtargs = dict(arch=arch, distro=distro, prefix=prefix)
|
||||
|
||||
# (distro)-(codename)-base: Base image from upstream: we sync the repos, but do nothing else.
|
||||
build_tag(prefix + '-base', arch, """
|
||||
FROM {arch}/{distro[0]}:{codename}
|
||||
RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections'
|
||||
RUN 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
|
||||
""".format(**fmtargs, codename='latest' if distro == ['ubuntu', 'lts'] else distro[1]))
|
||||
|
||||
# (distro)-(codename)-builder: Deb builder image used for building debs; we add the basic tools
|
||||
# we use to build debs, not including things that should come from the dependencies in the
|
||||
# debian/control file.
|
||||
build_tag(prefix + '-builder', arch, """
|
||||
FROM {prefix}-base/{arch}
|
||||
RUN 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 \
|
||||
ccache \
|
||||
devscripts \
|
||||
equivs \
|
||||
g++ \
|
||||
git \
|
||||
git-buildpackage \
|
||||
openssh-client
|
||||
""".format(**fmtargs))
|
||||
|
||||
# (distro)-(codename): Basic image we use for most builds. This takes the -builder and adds
|
||||
# most dependencies found in our packages.
|
||||
build_tag(prefix, arch, """
|
||||
FROM {prefix}-builder/{arch}
|
||||
RUN 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 \
|
||||
automake \
|
||||
ccache \
|
||||
cmake \
|
||||
eatmydata \
|
||||
g++ \
|
||||
gdb \
|
||||
git \
|
||||
libboost-program-options-dev \
|
||||
libboost-serialization-dev \
|
||||
libboost-thread-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libevent-dev \
|
||||
libgtest-dev \
|
||||
libhidapi-dev \
|
||||
libjemalloc-dev \
|
||||
libminiupnpc-dev \
|
||||
libreadline-dev \
|
||||
libsodium-dev \
|
||||
libsqlite3-dev \
|
||||
libssl-dev \
|
||||
libsystemd-dev \
|
||||
libtool \
|
||||
libunbound-dev \
|
||||
libunwind8-dev \
|
||||
libusb-1.0.0-dev \
|
||||
libuv1-dev \
|
||||
libzmq3-dev \
|
||||
lsb-release \
|
||||
make \
|
||||
nettle-dev \
|
||||
ninja-build \
|
||||
openssh-client \
|
||||
patch \
|
||||
pkg-config \
|
||||
pybind11-dev \
|
||||
python3-dev \
|
||||
python3-pip \
|
||||
python3-pybind11 \
|
||||
python3-pytest \
|
||||
python3-setuptools \
|
||||
qttools5-dev
|
||||
""".format(**fmtargs))
|
||||
|
||||
|
||||
for d in distros:
|
||||
for a in arches(distros):
|
||||
distro_build(d, a)
|
||||
|
||||
|
||||
# Other images:
|
||||
|
||||
# lint is a tiny build with just formatting checking tools
|
||||
|
||||
build_tag(registry_base + 'lint', 'amd64', """
|
||||
FROM {r}debian-stable-base
|
||||
RUN apt-get -o=Dpkg::Use-Pty=0 -q install --no-install-recommends -y \
|
||||
clang-format-11 \
|
||||
eatmydata \
|
||||
git \
|
||||
jsonnet
|
||||
""".format(r=registry_base))
|
||||
|
||||
# nodejs
|
||||
build_tag(registry_base + 'nodejs', 'amd64', """
|
||||
FROM node:14.16.1
|
||||
RUN /bin/bash -c 'echo "man-db man-db/auto-update boolean false" | debconf-set-selections'
|
||||
RUN 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 \
|
||||
ccache \
|
||||
cmake \
|
||||
eatmydata \
|
||||
g++ \
|
||||
gdb \
|
||||
git \
|
||||
make \
|
||||
ninja-build \
|
||||
openssh-client \
|
||||
patch \
|
||||
pkg-config \
|
||||
wine
|
||||
""")
|
||||
|
||||
|
||||
# Android builds on debian-stable-base and adds a ton of android crap:
|
||||
build_tag(registry_base + 'android', 'amd64', """
|
||||
FROM {r}debian-stable-base
|
||||
RUN /bin/bash -c 'sed -i "s/main/main contrib/g" /etc/apt/sources.list'
|
||||
RUN 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 \
|
||||
android-sdk \
|
||||
automake \
|
||||
ccache \
|
||||
cmake \
|
||||
curl \
|
||||
git \
|
||||
google-android-ndk-installer \
|
||||
libtool \
|
||||
make \
|
||||
openssh-client \
|
||||
patch \
|
||||
pkg-config \
|
||||
wget \
|
||||
xz-utils \
|
||||
zip \
|
||||
&& 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
|
||||
""".format(r=registry_base))
|
||||
|
||||
|
||||
# Flutter image takes android and adds even more crap:
|
||||
build_tag(registry_base + 'flutter', 'amd64', """
|
||||
FROM {r}android
|
||||
RUN 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
|
||||
""".format(r=registry_base))
|
||||
|
||||
|
||||
# debian-sid-clang adds clang + libc++ to debian-sid (amd64 only)
|
||||
build_tag(registry_base + 'debian-sid-clang', 'amd64', """
|
||||
FROM {r}debian-sid
|
||||
RUN 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 \
|
||||
clang-13 \
|
||||
libc++-13-dev \
|
||||
libc++abi-13-dev \
|
||||
lld-13
|
||||
""".format(r=registry_base))
|
||||
|
||||
|
||||
# debian-win32-cross is debian-testing-base + stuff for compiling windows binaries
|
||||
build_tag(registry_base + 'debian-win32-cross', 'amd64', """
|
||||
FROM {r}debian-testing-base
|
||||
RUN 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 \
|
||||
autoconf \
|
||||
automake \
|
||||
build-essential \
|
||||
ccache \
|
||||
cmake \
|
||||
eatmydata \
|
||||
file \
|
||||
g++-mingw-w64-x86-64-posix \
|
||||
git \
|
||||
gperf \
|
||||
libtool \
|
||||
make \
|
||||
ninja-build \
|
||||
nsis \
|
||||
openssh-client \
|
||||
patch \
|
||||
pkg-config \
|
||||
qttools5-dev \
|
||||
zip \
|
||||
&& update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix \
|
||||
&& update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
|
||||
""".format(r=registry_base))
|
||||
|
||||
|
||||
for latest, tags in manifests.items():
|
||||
print("\033[32;1mpushing new manifest for \033[33;1m{}[\033[35;1m{}\033[33;1m]\033[0m".format(
|
||||
latest, ', '.join(tags)))
|
||||
|
||||
subprocess.run(['manifest', 'rm', latest], stderr=DEVNULL, check=False)
|
||||
subprocess.run(['manifest', 'create', latest, *tags], check=True)
|
||||
subprocess.run(['manifest', 'push', latest], check=True)
|
@ -1,44 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
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 i386/*.dockerfile arm64v8/*.dockerfile arm32v7/*.dockerfile)
|
||||
else
|
||||
files=("$@")
|
||||
fi
|
||||
|
||||
declare -A manifests
|
||||
|
||||
for file in "${files[@]}"; do
|
||||
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$//
|
||||
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_BUILD_OPTS .
|
||||
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
|
||||
|
||||
echo -e "\n\n\n\e[32;1mAll done!\e[1m\n\n"
|
Loading…
Reference in New Issue