Skip to content

Commit 5598e9b

Browse files
committed
Add basic semaphore2 CI setup
1 parent 7524376 commit 5598e9b

File tree

2 files changed

+117
-0
lines changed

2 files changed

+117
-0
lines changed

.semaphore/semaphore.yml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
version: v1.0
2+
name: Bitcoin Core
3+
agent:
4+
machine:
5+
type: e1-standard-2
6+
os_image: ubuntu1804
7+
8+
blocks:
9+
- name: Compile and test Bitcoin-Core
10+
task:
11+
jobs:
12+
- name: x86_64 Linux Ubuntu 18.04 depends tests
13+
env_vars:
14+
- name: TARGET_HOST
15+
value: x86_64-linux-gnu
16+
- name: PACKAGES
17+
value: ""
18+
- name: RUN_UNIT_TESTS
19+
value: "true"
20+
- name: RUN_FUNCTIONAL_TESTS
21+
value: "true"
22+
- name: BITCOIN_CONFIG
23+
value: "--disable-dependency-tracking --enable-zmq --with-gui=qt5 --enable-glibc-back-compat --enable-reduce-exports --enable-debug"
24+
commands:
25+
- checkout
26+
- set -o errexit; source .semaphore/update_build_test.sh
27+
- name: ARM Linux Ubuntu 18.04 depends tests
28+
env_vars:
29+
- name: TARGET_HOST
30+
value: arm-linux-gnueabihf
31+
- name: PACKAGES
32+
value: "g++-arm-linux-gnueabihf"
33+
- name: RUN_UNIT_TESTS
34+
value: "false"
35+
- name: RUN_FUNCTIONAL_TESTS
36+
value: "false"
37+
- name: BITCOIN_CONFIG
38+
value: "--disable-dependency-tracking --enable-glibc-back-compat --enable-reduce-exports CXXFLAGS=-Wno-psabi"
39+
commands:
40+
- checkout
41+
- set -o errexit; source .semaphore/update_build_test.sh
42+
- name: Win64 Ubuntu 18.04 depends
43+
env_vars:
44+
- name: TARGET_HOST
45+
value: x86_64-w64-mingw32
46+
- name: PACKAGES
47+
value: "nsis g++-mingw-w64-x86-64 wine-binfmt wine64"
48+
- name: RUN_UNIT_TESTS
49+
value: "false"
50+
- name: RUN_FUNCTIONAL_TESTS
51+
value: "false"
52+
- name: BITCOIN_CONFIG
53+
value: "--enable-reduce-exports --disable-gui-tests"
54+
commands:
55+
- checkout
56+
- set -o errexit; source .semaphore/update_build_test.sh
57+
- name: X86 Ubuntu system libs
58+
env_vars:
59+
- name: TARGET_HOST
60+
value: system
61+
- name: PACKAGES
62+
value: "python3-zmq libdb-dev libdb++-dev libevent-dev libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev qtbase5-dev qttools5-dev-tools protobuf-compiler libdbus-1-dev libharfbuzz-dev libprotobuf-dev"
63+
- name: RUN_UNIT_TESTS
64+
value: "false"
65+
- name: RUN_FUNCTIONAL_TESTS
66+
value: "false"
67+
- name: BITCOIN_CONFIG
68+
value: "--enable-reduce-exports --disable-gui-tests --with-gui=qt5 --with-incompatible-bdb"
69+
commands:
70+
- g++ --version
71+
- sem-version cpp 6
72+
- g++ --version
73+
- checkout
74+
- set -o errexit; source .semaphore/update_build_test.sh

.semaphore/update_build_test.sh

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Copyright (c) 2019 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.UTF-8
8+
9+
sudo apt-get update
10+
sudo apt-get install --no-install-recommends --no-upgrade -qq $PACKAGES
11+
12+
./autogen.sh
13+
if [ "$TARGET_HOST" != "system" ]; then
14+
cd depends
15+
ls -la
16+
cache list
17+
cache restore $TARGET_HOST-built
18+
ls -la
19+
make HOST=$TARGET_HOST -j4 V=1
20+
ls -la
21+
cache store $TARGET_HOST-built built/$TARGET_HOST
22+
cache list
23+
cd ..
24+
fi
25+
26+
if [[ $TARGET_HOST = *-mingw32 ]]; then
27+
sudo update-alternatives --set $TARGET_HOST-g++ $(which $TARGET_HOST-g++-posix)
28+
fi
29+
30+
if [ "$TARGET_HOST" = "system" ]; then
31+
./configure $BITCOIN_CONFIG
32+
else
33+
./configure --prefix=`pwd`/depends/$TARGET_HOST $BITCOIN_CONFIG
34+
fi
35+
make -j4
36+
37+
if [ "$RUN_UNIT_TESTS" = "true" ]; then
38+
make check VERBOSE=1
39+
fi
40+
41+
if [ "$RUN_FUNCTIONAL_TESTS" = "true" ]; then
42+
./test/functional/test_runner.py --ci --combinedlogslen=4000 --quiet --failfast
43+
fi

0 commit comments

Comments
 (0)