Skip to content

Commit b8e03c0

Browse files
bytzckckti
authored andcommitted
Initial setup for CircleCI (dashpay#36)
1 parent 307e246 commit b8e03c0

File tree

4 files changed

+289
-0
lines changed

4 files changed

+289
-0
lines changed

.circleci/config.yml

Lines changed: 252 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,252 @@
1+
# Copyright (c) 2020 The Wagerr developers
2+
version: 2.1
3+
jobs:
4+
lint_all:
5+
docker:
6+
- image: circleci/buildpack-deps:18.04
7+
user: root
8+
parallelism: 4
9+
environment:
10+
HOST: x86_64-linux-gnu
11+
JOBS: 4
12+
steps:
13+
- run:
14+
command: |
15+
apt-get -y update
16+
apt-get -y install python-pip
17+
git clone --depth 1 https://github.com/wagerr/wagerr .
18+
source .circleci/lint_04_install.sh
19+
source .ciricleci/lint_05_before_script.sh
20+
# LevelDB
21+
git remote add -f leveldb https://github.com/bitcoin-core/leveldb.git
22+
# secp256k1
23+
git remote add -f secp256k1 https://github.com/bitcoin-core/secp256k1.git
24+
# ctaes
25+
git remote add -f ctaes https://github.com/bitcoin-core/ctaes
26+
# univalue
27+
git remote add -f univalue https://github.com/jgarzik/univalue
28+
git rm -rf src/leveldb
29+
git rm -rf src/secp256k1
30+
git rm -rf src/crypto/ctaes
31+
git rm -rf src/univalue
32+
git add .
33+
git config --global user.email "[email protected]"
34+
git config --global user.name "Lint Check"
35+
git commit -m "Set up for subtrees"
36+
# leveldb
37+
git subtree add --prefix src/leveldb leveldb bitcoin-fork --squash
38+
# secp256k1
39+
git subtree add --prefix src/secp256k1 secp256k1 master --squash
40+
# ctaes
41+
git subtree add --prefix src/crypto/ctaes ctaes master --squash
42+
# univalue
43+
git subtree add --prefix src/univalue univalue 9f0b9975925b202ab130714e5422f8dd8bf40ac3 --squash
44+
# snap
45+
source .circleci/lint_06_script.sh
46+
x86_64_bionic:
47+
docker:
48+
- image: circleci/buildpack-deps:18.04
49+
user: root
50+
environment:
51+
HOST: x86_64-linux-gnu
52+
JOBS: 4
53+
steps:
54+
- checkout
55+
- run:
56+
command: |
57+
git submodule update --init --recursive
58+
apt-get -y update
59+
apt-get -y install pkg-config autoconf libtool automake bsdmainutils ca-certificates python3 cmake libxkbcommon0 gcc-8 g++-8 libpython3.6-dev python3-distutils
60+
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 100
61+
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 100
62+
update-alternatives --install /usr/bin/${HOST}-gcc ${HOST}-gcc /usr/bin/${HOST}-gcc-8 100
63+
update-alternatives --install /usr/bin/${HOST}-g++ ${HOST}-g++ /usr/bin/${HOST}-g++-8 100
64+
make -j${JOBS} -C depends HOST=${HOST}
65+
./autogen.sh
66+
./configure --host=${HOST} --prefix=`pwd`/depends/${HOST} --enable-zmq --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++
67+
make -j${JOBS}
68+
git clone http://github.com/wagerr/wagerr_hash
69+
cd wagerr_hash
70+
python3 setup.py install
71+
cd -
72+
test/functional/test_runner.py
73+
x86_64_focal:
74+
docker:
75+
- image: circleci/buildpack-deps:focal
76+
user: root
77+
environment:
78+
HOST: x86_64-linux-gnu
79+
JOBS: 4
80+
steps:
81+
- checkout
82+
- run:
83+
command: |
84+
git submodule update --init --recursive
85+
apt-get -y update
86+
apt-get -y install pkg-config autoconf libtool automake bsdmainutils ca-certificates python3 cmake libxkbcommon0 gcc-8 g++-8 libpython3.9-dev python3-distutils
87+
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 100
88+
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 100
89+
update-alternatives --install /usr/bin/${HOST}-gcc ${HOST}-gcc /usr/bin/${HOST}-gcc-8 100
90+
update-alternatives --install /usr/bin/${HOST}-g++ ${HOST}-g++ /usr/bin/${HOST}-g++-8 100
91+
make -j${JOBS} -C depends HOST=${HOST}
92+
./autogen.sh
93+
./configure --host=${HOST} --prefix=`pwd`/depends/${HOST} --enable-zmq --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++
94+
make -j${JOBS}
95+
i686_bionic:
96+
docker:
97+
- image: circleci/buildpack-deps:18.04
98+
user: root
99+
environment:
100+
HOST: i686-linux-gnu
101+
JOBS: 4
102+
steps:
103+
- checkout
104+
- run:
105+
command: |
106+
git submodule update --init --recursive
107+
apt-get -y update
108+
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
109+
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 100
110+
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 100
111+
make -j${JOBS} -C depends HOST=${HOST}
112+
./autogen.sh
113+
./configure --host=${HOST} --prefix=`pwd`/depends/${HOST} --enable-zmq --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++
114+
make -j${JOBS}
115+
arm32_bionic:
116+
docker:
117+
- image: ioncoin/gitian:latest
118+
user: root
119+
environment:
120+
HOST: arm-linux-gnueabihf
121+
JOBS: 4
122+
HOST_LDFLAGS: "-static-libstdc++"
123+
steps:
124+
- checkout
125+
- run:
126+
command: |
127+
git submodule update --init --recursive
128+
apt-get -y update
129+
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
130+
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 100
131+
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 100
132+
update-alternatives --install /usr/bin/${HOST}-gcc ${HOST}-gcc /usr/bin/${HOST}-gcc-8 100
133+
update-alternatives --install /usr/bin/${HOST}-g++ ${HOST}-g++ /usr/bin/${HOST}-g++-8 100
134+
make -j${JOBS} -C depends HOST=${HOST}
135+
./autogen.sh
136+
./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}"
137+
make -j${JOBS}
138+
arm64_bionic:
139+
docker:
140+
- image: circleci/buildpack-deps:18.04
141+
user: root
142+
environment:
143+
HOST: aarch64-linux-gnu
144+
JOBS: 4
145+
steps:
146+
- checkout
147+
- run:
148+
command: |
149+
git submodule update --init --recursive
150+
apt-get -y update
151+
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
152+
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 100
153+
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 100
154+
update-alternatives --install /usr/bin/${HOST}-gcc ${HOST}-gcc /usr/bin/${HOST}-gcc-8 100
155+
update-alternatives --install /usr/bin/${HOST}-g++ ${HOST}-g++ /usr/bin/${HOST}-g++-8 100
156+
make -j${JOBS} -C depends HOST=${HOST}
157+
./autogen.sh
158+
./configure --host=${HOST} --prefix=`pwd`/depends/${HOST} --enable-glibc-back-compat --enable-reduce-exports
159+
make -j${JOBS}
160+
win32_bionic:
161+
docker:
162+
- image: circleci/buildpack-deps:18.04
163+
user: root
164+
environment:
165+
HOST: i686-w64-mingw32
166+
JOBS: 4
167+
steps:
168+
- checkout
169+
- run:
170+
command: |
171+
git submodule update --init --recursive
172+
apt-get -y update
173+
apt-get -y install pkg-config autoconf libtool automake bsdmainutils ca-certificates python3 cmake libxkbcommon0 mingw-w64 g++-mingw-w64 g++-multilib gcc-multilib
174+
update-alternatives --install /usr/bin/i686-w64-mingw32-gcc i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-posix 100
175+
update-alternatives --install /usr/bin/i686-w64-mingw32-g++ i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-posix 100
176+
make -j${JOBS} -C depends HOST=${HOST}
177+
./autogen.sh
178+
./configure --host=${HOST} --prefix=`pwd`/depends/${HOST} --enable-reduce-exports
179+
make -j${JOBS}
180+
win64_bionic:
181+
docker:
182+
- image: circleci/buildpack-deps:18.04
183+
user: root
184+
environment:
185+
HOST: x86_64-w64-mingw32
186+
JOBS: 4
187+
steps:
188+
- checkout
189+
- run:
190+
command: |
191+
git submodule update --init --recursive
192+
apt-get -y update
193+
apt-get -y install pkg-config autoconf libtool automake bsdmainutils ca-certificates python3 cmake libxkbcommon0 mingw-w64 g++-mingw-w64 g++-multilib gcc-multilib
194+
update-alternatives --install /usr/bin/x86_64-w64-mingw32-gcc x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix 100
195+
update-alternatives --install /usr/bin/x86_64-w64-mingw32-g++ x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix 100
196+
make -j${JOBS} -C depends HOST=${HOST}
197+
./autogen.sh
198+
./configure --host=${HOST} --prefix=`pwd`/depends/${HOST} --enable-reduce-exports
199+
make -j${JOBS}
200+
mac_bionic:
201+
docker:
202+
- image: circleci/buildpack-deps:18.04
203+
user: root
204+
environment:
205+
HOST: x86_64-apple-darwin16
206+
JOBS: 4
207+
OSX_SDK: 10.11
208+
steps:
209+
- checkout
210+
- run:
211+
command: |
212+
git submodule update --init --recursive
213+
apt-get -y update
214+
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
215+
wget https://github.com/gitianuser/MacOSX-SDKs/releases/download/MacOSX10.11.sdk/MacOSX10.11.sdk.tar.xz
216+
mkdir -p `pwd`/depends/SDKs
217+
echo "Extracting Mac SDK"
218+
tar -C `pwd`/depends/SDKs -xJf ./MacOSX10.11.sdk.tar.xz
219+
make -j${JOBS} -C depends HOST=${HOST}
220+
./autogen.sh
221+
./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
222+
223+
make -j${JOBS}
224+
workflows:
225+
version: 2.1
226+
FullCheck:
227+
jobs:
228+
- lint_all
229+
- x86_64_bionic:
230+
requires:
231+
- lint_all
232+
- i686_bionic:
233+
requires:
234+
- lint_all
235+
- x86_64_focal:
236+
requires:
237+
- lint_all
238+
- arm32_bionic:
239+
requires:
240+
- lint_all
241+
- arm64_bionic:
242+
requires:
243+
- lint_all
244+
- win32_bionic:
245+
requires:
246+
- lint_all
247+
- win64_bionic:
248+
requires:
249+
- lint_all
250+
- mac_bionic:
251+
requires:
252+
- lint_all

.circleci/lint_04_install.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Copyright (c) 2018 The Bitcoin Core developers
4+
# Distributed under the MIT software license, see the accompanying
5+
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
6+
7+
export LC_ALL=C
8+
9+
pip2 install codespell==1.13.0
10+
pip2 install flake8==3.5.0
11+
pip2 install vulture==0.29
12+
13+
SHELLCHECK_VERSION=v0.6.0
14+
curl -s "https://storage.googleapis.com/shellcheck/shellcheck-${SHELLCHECK_VERSION}.linux.x86_64.tar.xz" | tar --xz -xf - --directory /tmp/
15+
export PATH="/tmp/shellcheck-${SHELLCHECK_VERSION}:${PATH}"

.circleci/lint_05_before_script.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Copyright (c) 2018 The Bitcoin Core developers
4+
# Distributed under the MIT software license, see the accompanying
5+
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
6+
7+
export LC_ALL=C
8+
9+
git fetch --unshallow

.circleci/lint_06_script.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Copyright (c) 2018 The Bitcoin Core developers
4+
# Distributed under the MIT software license, see the accompanying
5+
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
6+
7+
export LC_ALL=C
8+
9+
contrib/devtools/git-subtree-check.sh src/leveldb
10+
contrib/devtools/git-subtree-check.sh src/secp256k1
11+
contrib/devtools/git-subtree-check.sh src/crypto/ctaes
12+
contrib/devtools/git-subtree-check.sh src/univalue
13+
contrib/devtools/lint-whitespace.sh

0 commit comments

Comments
 (0)