From c7c553a7f32f754c77897db2e53c1e8771d4f2cf Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Thu, 15 Feb 2024 00:31:19 +0100 Subject: [PATCH] added intial woodpecker config --- .env | 40 +++++++++++++++++++++ .woodpecker/linux.yaml | 81 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 121 insertions(+) create mode 100644 .env create mode 100644 .woodpecker/linux.yaml diff --git a/.env b/.env new file mode 100644 index 0000000..28629a6 --- /dev/null +++ b/.env @@ -0,0 +1,40 @@ + PREFIX=/opt/linux/prefix + NPROC=4 + PATH=/usr/cmake-3.14.6-Linux-x86_64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + + # CMake + CMAKE_VERSION='3.14.6' + CMAKE_HASH='82e08e50ba921035efa82b859c74c5fbe27d3e49a4003020e3c77618a4e912cd' + # Boost + BOOST_VERSION='1_70_0' + BOOST_VERSION_DOT='1.70.0' + BOOST_HASH='430ae8354789de4fd19ee52f3b1f739e1fba576f0aded0897c3c2bc00fb38778' + # iconv + ICONV_VERSION='1.16' + ICONV_HASH='e6a1b1b589654277ee790cce3734f07876ac4ccfaecbee8afa0b649cf529cc04' + # zlib + ZLIB_VERSION='1.3.1' + ZLIB_HASH='9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23' + # OpenSSL + OPENSSL_VERSION='3.2.0' + OPENSSL_HASH='14c826f07c7e433706fb5c69fa9e25dab95684844b4c962a2cf1bf183eb4690e' + # ZMQ + ZMQ_VERSION='v4.3.2' + ZMQ_HASH='a84ffa12b2eb3569ced199660bac5ad128bff1f0' + # libsodium + SODIUM_VERSION='1.0.18' + SODIUM_HASH='4f5e89fa84ce1d178a6765b8b46f2b6f91216677' + # libexpat + LIBEXPAT_VERSION='R_2_4_8' + LIBEXPAT_HASH='3bab6c09bbe8bf42d84b81563ddbcf4cca4be838' + # libunbound + LIBUNBOUND_VERSION='branch-1.16.1' + LIBUNBOUND_HASH='903538c76e1d8eb30d0814bb55c3ef1ea28164e8' + # polyseed + POLYSEED_HASH='b7c35bb3c6b91e481ecb04fc235eaff69c507fa1' + # utf8proc + UTF8PROC_HASH='1cb28a66ca79a0845e99433fd1056257456cef8b' + # (finally) monero + MONERO_GIT_SOURCE_SIMPLE='git.mrcyjanek.net_mrcyjanek_monero' + MONERO_GIT_SOURCE=https://git.mrcyjanek.net/mrcyjanek/monero.git + MONERO_TAG='release-v0.18.3.1-anonero' \ No newline at end of file diff --git a/.woodpecker/linux.yaml b/.woodpecker/linux.yaml new file mode 100644 index 0000000..e06874f --- /dev/null +++ b/.woodpecker/linux.yaml @@ -0,0 +1,81 @@ +matrix: + include: + - HOST_TRIPLET: x86_64-linux-gnu + BUILD_TRIPLET: x86_64-linux-gnu + short_arch: x86_64 + full_arch: x86_64 + monero_arch: x86-64 + monero_buildtag: linux-x86_64 + monero_build64: 'ON' + monero_cmake_arm_mode: 'OFF' + platform: + - linux/amd64 + +steps: + - name: clone repositories + image: git.mrcyjanek.net/mrcyjanek/debian:bookworm + commands: + - . ./.env + # Monero + - (git clone $${MONERO_GIT_SOURCE} --depth=1 --branch $${MONERO_TAG} monero && cd monero && git submodule init && git submodule update) + # Boost + - curl -L -o boost_$${BOOST_VERSION}.tar.bz2 https://archives.boost.io/release/$${BOOST_VERSION_DOT}/source/boost_$${BOOST_VERSION}.tar.bz2 + - echo "$${BOOST_HASH} boost_$${BOOST_VERSION}.tar.bz2" | sha256sum -c + - tar -xf boost_$${BOOST_VERSION}.tar.bz2 + - rm -f boost_$${BOOST_VERSION}.tar.bz2 + # libiconv + - curl -O http://ftp.gnu.org/pub/gnu/libiconv/libiconv-$${ICONV_VERSION}.tar.gz + - echo "$${ICONV_HASH} libiconv-$${ICONV_VERSION}.tar.gz" | sha256sum -c + - tar -xzf libiconv-$${ICONV_VERSION}.tar.gz + - rm -f libiconv-$${ICONV_VERSION}.tar.gz + # zlib + - curl -O https://zlib.net/zlib-$${ZLIB_VERSION}.tar.gz + - echo "$${ZLIB_HASH} zlib-$${ZLIB_VERSION}.tar.gz" | sha256sum -c + - tar -xzf zlib-$${ZLIB_VERSION}.tar.gz + - rm zlib-$${ZLIB_VERSION}.tar.gz + - mv zlib-$${ZLIB_VERSION} zlib + # openssl + - curl -O https://www.openssl.org/source/openssl-$${OPENSSL_VERSION}.tar.gz + - echo "$${OPENSSL_HASH} openssl-$${OPENSSL_VERSION}.tar.gz" | sha256sum -c + - tar -xzf openssl-$${OPENSSL_VERSION}.tar.gz + - rm openssl-$${OPENSSL_VERSION}.tar.gz + # libzmq + - git clone https://github.com/zeromq/libzmq.git -b $${ZMQ_VERSION} --depth=1 + - (cd libzmq && test `git rev-parse HEAD` = $${ZMQ_HASH}) || exit 1 + # libsodium + - git clone https://github.com/jedisct1/libsodium.git -b $${SODIUM_VERSION} --depth=1 + - (cd libsodium && test `git rev-parse HEAD` = $${SODIUM_HASH}) || exit 1 + # libexpat + - git clone https://github.com/libexpat/libexpat.git -b $${LIBEXPAT_VERSION} --depth=1 + - (cd libexpat && test `git rev-parse HEAD` = $${LIBEXPAT_HASH}) || exit 1 + # unbound + - git clone https://github.com/NLnetLabs/unbound.git -b $${LIBUNBOUND_VERSION} --depth=1 + - cd unbound + - test `git rev-parse HEAD` = $${LIBUNBOUND_HASH} || exit 1 + # polyseed + - git clone https://github.com/tevador/polyseed.git + - (cd polyseed && git reset --hard $${POLYSEED_HASH}) || exit 1 + # utf8proc + - git clone https://github.com/JuliaStrings/utf8proc -b v2.8.0 --depth=1 + - (cd utf8proc && git reset --hard $${UTF8PROC_HASH}) + - name: Build boost (1/2) + image: git.mrcyjanek.net/mrcyjanek/debian:bookworm + commands: + - . ./.env && export PREFIX="$${PWD}/pfx" + - cd boost_$${BOOST_VERSION} + - ./bootstrap.sh --prefix="$${PREFIX}" + - name: Build iconv (for boost) + image: git.mrcyjanek.net/mrcyjanek/debian:bookworm + commands: + - . ./.env && export PREFIX="$${PWD}/pfx" + - cd libiconv-${ICONV_VERSION} + - ./configure --build=${BUILD_TRIPLET} --host=${HOST_TRIPLET} --prefix=$${PREFIX} --disable-rpath + - make -j${NPROC} + - make install + - name: Build boost (2/2) + image: git.mrcyjanek.net/mrcyjanek/debian:bookworm + commands: + - . ./.env && export PREFIX="$${PWD}/pfx" + - cd boost_${BOOST_VERSION} + - echo -n -e '\n#undef PTHREAD_STACK_MIN\n#define PTHREAD_STACK_MIN 16384\n' | cat - ./boost/thread/pthread/thread_data.hpp > temp && mv temp ./boost/thread/pthread/thread_data.hpp + - ./b2 cxxflags=-fPIC cflags=-fPIC --build-type=minimal link=static runtime-link=static --with-chrono --with-date_time --with-filesystem --with-program_options --with-regex --with-serialization --with-system --with-thread --with-locale --build-dir=linux --stagedir=linux toolset=gcc threading=multi threadapi=pthread -sICONV_PATH=${PREFIX} install -j${NPROC} &>/tmp/boost_log.txt || cat /tmp/boost_log.txt \ No newline at end of file