Skip to content

Commit

Permalink
Initial setup for CircleCI (dashpay#36)
Browse files Browse the repository at this point in the history
  • Loading branch information
bytzck authored and wagerr-builder committed May 14, 2022
1 parent df96d8d commit 033b73e
Show file tree
Hide file tree
Showing 4 changed files with 289 additions and 0 deletions.
252 changes: 252 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,252 @@
# Copyright (c) 2020 The Wagerr developers
version: 2.1
jobs:
lint_all:
docker:
- image: circleci/buildpack-deps:18.04
user: root
parallelism: 4
environment:
HOST: x86_64-linux-gnu
JOBS: 4
steps:
- run:
command: |
apt-get -y update
apt-get -y install python-pip
git clone --depth 1 https://github.com/wagerr/wagerr .
source .circleci/lint_04_install.sh
source .ciricleci/lint_05_before_script.sh
# LevelDB
git remote add -f leveldb https://github.com/bitcoin-core/leveldb.git
# secp256k1
git remote add -f secp256k1 https://github.com/bitcoin-core/secp256k1.git
# ctaes
git remote add -f ctaes https://github.com/bitcoin-core/ctaes
# univalue
git remote add -f univalue https://github.com/jgarzik/univalue
git rm -rf src/leveldb
git rm -rf src/secp256k1
git rm -rf src/crypto/ctaes
git rm -rf src/univalue
git add .
git config --global user.email "lint@dev.null"
git config --global user.name "Lint Check"
git commit -m "Set up for subtrees"
# leveldb
git subtree add --prefix src/leveldb leveldb bitcoin-fork --squash
# secp256k1
git subtree add --prefix src/secp256k1 secp256k1 master --squash
# ctaes
git subtree add --prefix src/crypto/ctaes ctaes master --squash
# univalue
git subtree add --prefix src/univalue univalue 9f0b9975925b202ab130714e5422f8dd8bf40ac3 --squash
# snap
source .circleci/lint_06_script.sh
x86_64_bionic:
docker:
- image: circleci/buildpack-deps:18.04
user: root
environment:
HOST: x86_64-linux-gnu
JOBS: 4
steps:
- checkout
- run:
command: |
git submodule update --init --recursive
apt-get -y update
apt-get -y install pkg-config autoconf libtool automake bsdmainutils ca-certificates python3 cmake libxkbcommon0 gcc-8 g++-8 libpython3.6-dev python3-distutils
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 100
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 100
update-alternatives --install /usr/bin/${HOST}-gcc ${HOST}-gcc /usr/bin/${HOST}-gcc-8 100
update-alternatives --install /usr/bin/${HOST}-g++ ${HOST}-g++ /usr/bin/${HOST}-g++-8 100
make -j${JOBS} -C depends HOST=${HOST}
./autogen.sh
./configure --host=${HOST} --prefix=`pwd`/depends/${HOST} --enable-zmq --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++
make -j${JOBS}
git clone http://github.com/wagerr/wagerr_hash
cd wagerr_hash
python3 setup.py install
cd -
test/functional/test_runner.py
x86_64_focal:
docker:
- image: circleci/buildpack-deps:focal
user: root
environment:
HOST: x86_64-linux-gnu
JOBS: 4
steps:
- checkout
- run:
command: |
git submodule update --init --recursive
apt-get -y update
apt-get -y install pkg-config autoconf libtool automake bsdmainutils ca-certificates python3 cmake libxkbcommon0 gcc-8 g++-8 libpython3.9-dev python3-distutils
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 100
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 100
update-alternatives --install /usr/bin/${HOST}-gcc ${HOST}-gcc /usr/bin/${HOST}-gcc-8 100
update-alternatives --install /usr/bin/${HOST}-g++ ${HOST}-g++ /usr/bin/${HOST}-g++-8 100
make -j${JOBS} -C depends HOST=${HOST}
./autogen.sh
./configure --host=${HOST} --prefix=`pwd`/depends/${HOST} --enable-zmq --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++
make -j${JOBS}
i686_bionic:
docker:
- image: circleci/buildpack-deps:18.04
user: root
environment:
HOST: i686-linux-gnu
JOBS: 4
steps:
- checkout
- run:
command: |
git submodule update --init --recursive
apt-get -y update
apt-get -y install pkg-config autoconf libtool automake bsdmainutils ca-certificates python3 cmake libxkbcommon0 g++-8-multilib gcc-8-multilib gcc-8 g++-8
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 100
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 100
make -j${JOBS} -C depends HOST=${HOST}
./autogen.sh
./configure --host=${HOST} --prefix=`pwd`/depends/${HOST} --enable-zmq --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++
make -j${JOBS}
arm32_bionic:
docker:
- image: ioncoin/gitian:latest
user: root
environment:
HOST: arm-linux-gnueabihf
JOBS: 4
HOST_LDFLAGS: "-static-libstdc++"
steps:
- checkout
- run:
command: |
git submodule update --init --recursive
apt-get -y update
apt-get -y install pkg-config autoconf libtool automake bsdmainutils ca-certificates python3 cmake libxkbcommon0 gcc-8 g++-8 g++-8-arm-linux-gnueabihf gcc-8-arm-linux-gnueabihf binutils-arm-linux-gnueabihf g++-8-multilib gcc-8-multilib
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 100
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 100
update-alternatives --install /usr/bin/${HOST}-gcc ${HOST}-gcc /usr/bin/${HOST}-gcc-8 100
update-alternatives --install /usr/bin/${HOST}-g++ ${HOST}-g++ /usr/bin/${HOST}-g++-8 100
make -j${JOBS} -C depends HOST=${HOST}
./autogen.sh
./configure --host=${HOST} --prefix=`pwd`/depends//${HOST} --enable-glibc-back-compat --enable-reduce-exports --disable-ccache --disable-maintainer-mode --disable-dependency-tracking CFLAGS="${HOST_CFLAGS}" CXXFLAGS="${HOST_CXXFLAGS}" LDFLAGS="${HOST_LDFLAGS}"
make -j${JOBS}
arm64_bionic:
docker:
- image: circleci/buildpack-deps:18.04
user: root
environment:
HOST: aarch64-linux-gnu
JOBS: 4
steps:
- checkout
- run:
command: |
git submodule update --init --recursive
apt-get -y update
apt-get -y install pkg-config autoconf libtool automake bsdmainutils ca-certificates python3 cmake libxkbcommon0 gcc-8 g++-8 g++-8-aarch64-linux-gnu gcc-8-aarch64-linux-gnu binutils-aarch64-linux-gnu g++-8-multilib gcc-8-multilib
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 100
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 100
update-alternatives --install /usr/bin/${HOST}-gcc ${HOST}-gcc /usr/bin/${HOST}-gcc-8 100
update-alternatives --install /usr/bin/${HOST}-g++ ${HOST}-g++ /usr/bin/${HOST}-g++-8 100
make -j${JOBS} -C depends HOST=${HOST}
./autogen.sh
./configure --host=${HOST} --prefix=`pwd`/depends/${HOST} --enable-glibc-back-compat --enable-reduce-exports
make -j${JOBS}
win32_bionic:
docker:
- image: circleci/buildpack-deps:18.04
user: root
environment:
HOST: i686-w64-mingw32
JOBS: 4
steps:
- checkout
- run:
command: |
git submodule update --init --recursive
apt-get -y update
apt-get -y install pkg-config autoconf libtool automake bsdmainutils ca-certificates python3 cmake libxkbcommon0 mingw-w64 g++-mingw-w64 g++-multilib gcc-multilib
update-alternatives --install /usr/bin/i686-w64-mingw32-gcc i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-posix 100
update-alternatives --install /usr/bin/i686-w64-mingw32-g++ i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-posix 100
make -j${JOBS} -C depends HOST=${HOST}
./autogen.sh
./configure --host=${HOST} --prefix=`pwd`/depends/${HOST} --enable-reduce-exports
make -j${JOBS}
win64_bionic:
docker:
- image: circleci/buildpack-deps:18.04
user: root
environment:
HOST: x86_64-w64-mingw32
JOBS: 4
steps:
- checkout
- run:
command: |
git submodule update --init --recursive
apt-get -y update
apt-get -y install pkg-config autoconf libtool automake bsdmainutils ca-certificates python3 cmake libxkbcommon0 mingw-w64 g++-mingw-w64 g++-multilib gcc-multilib
update-alternatives --install /usr/bin/x86_64-w64-mingw32-gcc x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix 100
update-alternatives --install /usr/bin/x86_64-w64-mingw32-g++ x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix 100
make -j${JOBS} -C depends HOST=${HOST}
./autogen.sh
./configure --host=${HOST} --prefix=`pwd`/depends/${HOST} --enable-reduce-exports
make -j${JOBS}
mac_bionic:
docker:
- image: circleci/buildpack-deps:18.04
user: root
environment:
HOST: x86_64-apple-darwin16
JOBS: 4
OSX_SDK: 10.11
steps:
- checkout
- run:
command: |
git submodule update --init --recursive
apt-get -y update
apt-get -y install pkg-config autoconf libtool automake bsdmainutils ca-certificates python3 cmake libxkbcommon0 librsvg2-bin libtiff-tools imagemagick libcap-dev libz-dev libbz2-dev python3-dev python3-setuptools fonts-tuffy g++-8-multilib gcc-8-multilib
wget https://github.com/gitianuser/MacOSX-SDKs/releases/download/MacOSX10.11.sdk/MacOSX10.11.sdk.tar.xz
mkdir -p `pwd`/depends/SDKs
echo "Extracting Mac SDK"
tar -C `pwd`/depends/SDKs -xJf ./MacOSX10.11.sdk.tar.xz
make -j${JOBS} -C depends HOST=${HOST}
./autogen.sh
./configure --host=${HOST} --prefix=`pwd`/depends/${HOST} --enable-reduce-exports --enable-werror --disable-ccache --disable-maintainer-mode --disable-dependency-tracking --disable-bench --disable-gui-tests
make -j${JOBS}
workflows:
version: 2.1
FullCheck:
jobs:
- lint_all
- x86_64_bionic:
requires:
- lint_all
- i686_bionic:
requires:
- lint_all
- x86_64_focal:
requires:
- lint_all
- arm32_bionic:
requires:
- lint_all
- arm64_bionic:
requires:
- lint_all
- win32_bionic:
requires:
- lint_all
- win64_bionic:
requires:
- lint_all
- mac_bionic:
requires:
- lint_all
15 changes: 15 additions & 0 deletions .circleci/lint_04_install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/usr/bin/env bash
#
# Copyright (c) 2018 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.

export LC_ALL=C

pip2 install codespell==1.13.0
pip2 install flake8==3.5.0
pip2 install vulture==0.29

SHELLCHECK_VERSION=v0.6.0
curl -s "https://storage.googleapis.com/shellcheck/shellcheck-${SHELLCHECK_VERSION}.linux.x86_64.tar.xz" | tar --xz -xf - --directory /tmp/
export PATH="/tmp/shellcheck-${SHELLCHECK_VERSION}:${PATH}"
9 changes: 9 additions & 0 deletions .circleci/lint_05_before_script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/usr/bin/env bash
#
# Copyright (c) 2018 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.

export LC_ALL=C

git fetch --unshallow
13 changes: 13 additions & 0 deletions .circleci/lint_06_script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/usr/bin/env bash
#
# Copyright (c) 2018 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.

export LC_ALL=C

contrib/devtools/git-subtree-check.sh src/leveldb
contrib/devtools/git-subtree-check.sh src/secp256k1
contrib/devtools/git-subtree-check.sh src/crypto/ctaes
contrib/devtools/git-subtree-check.sh src/univalue
contrib/devtools/lint-whitespace.sh

0 comments on commit 033b73e

Please sign in to comment.