Skip to content

Commit 8ddf787

Browse files
committed
minter 1.2 update
1 parent 0db3170 commit 8ddf787

File tree

105 files changed

+2888
-1054
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

105 files changed

+2888
-1054
lines changed

.circleci/conan_deps.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+
conan install toolbox/3.2.1@edwardstock/latest -s build_type=Debug
4+
conan install toolbox/3.2.1@edwardstock/latest -s build_type=Release
5+
6+
conan install bip39/2.1.0@edwardstock/latest -s build_type=Debug
7+
conan install bip39/2.1.0@edwardstock/latest -s build_type=Release
8+
9+
conan install bigmath/1.0.0@edwardstock/latest -s build_type=Debug
10+
conan install bigmath/1.0.0@edwardstock/latest -s build_type=Release
11+
12+
conan install secp256k1_java/1.0.0@edwardstock/latest -s build_type=Debug
13+
conan install secp256k1_java/1.0.0@edwardstock/latest -s build_type=Release
14+
15+
conan install gtest/1.8.1@bincrafters/stable -s build_type=Debug

.circleci/config.yml

Lines changed: 148 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,162 @@
1-
version: 2
2-
jobs:
3-
build:
4-
docker:
5-
- image: debian:stretch
6-
environment:
7-
CXX: /usr/bin/g++
8-
CC: /usr/bin/gcc
9-
CONAN_CPU_COUNT: 4
1+
version: 2.1
2+
commands:
3+
init:
104
steps:
115
- run: apt-get update
12-
- run: apt-get install -y git
13-
- run:
14-
name: Avoid hosts unknown for github
15-
command: mkdir -p ~/.ssh/ && echo -e "Host github.com\n\tStrictHostKeyChecking no\n" > ~/.ssh/config
6+
7+
checkout_recursive:
8+
steps:
169
- run:
17-
name: Cloning repo
10+
name: Checkout
1811
command: git clone --recursive https://github.com/MinterTeam/cpp-minter .
19-
- restore_cache:
20-
keys:
21-
- custom-pkgs-{{ checksum ".circleci/setup.sh" }}
22-
- run:
23-
name: Preparing
24-
command: $(which bash) .circleci/setup.sh
25-
- save_cache:
26-
key: custom-pkgs-{{ checksum ".circleci/setup.sh" }}
27-
paths:
28-
- /tmp/pkgs
29-
- run: pip3 install setuptools -U
30-
- run: pip3 install conan
31-
- run: conan remote add scatter https://api.bintray.com/conan/edwardstock/scatter
12+
conan_remotes:
13+
steps:
3214
- run: conan remote add edwardstock https://api.bintray.com/conan/edwardstock/conan-public
3315
- run: conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan
3416
- run: conan remote add minter https://api.bintray.com/conan/minterteam/minter
3517
- run: conan user -p $BINTRAY_API_KEY -r minter edwardstock
36-
- run: mkdir -p _build
37-
- restore_cache:
38-
keys:
39-
- conan-dir-{{ checksum "conanfile.py" }}
40-
- run: conan install gtest/1.8.1@bincrafters/stable
41-
- run: conan install toolbox/3.1.1@edwardstock/latest
42-
- run: conan install bip39/2.0.1@edwardstock/latest
43-
- run: conan install boost/1.70.0@conan/stable
18+
19+
conan_project_deps:
20+
steps:
4421
- run:
45-
name: Configuring
46-
command: conan remove --locks && cd _build && cmake .. -DCMAKE_BUILD_TYPE=Debug -DMINTER_TX_TEST=ON
47-
- save_cache:
48-
key: conan-dir-{{ checksum "conanfile.py" }}
49-
paths:
50-
- /root/.conan
22+
name: Project dependencies
23+
command: $(which bash) .circleci/conan_deps.sh
24+
25+
test:
26+
steps:
5127
- run:
5228
name: Testing
5329
command: $(which bash) .circleci/test.sh
30+
31+
deploy_conan:
32+
steps:
5433
- run:
55-
name: "Deploy to Conan"
34+
name: Deploy to Conan bintray
5635
command: $(which bash) .circleci/deploy.sh
57-
- run:
58-
name: Deploy to Github
59-
command: $(which bash) .circleci/package.sh
36+
37+
38+
# make_package:
39+
# steps:
40+
# - run: bash cfg/package_make.sh -t package
41+
# - run: bash _build/package_upload.sh -t bintray
42+
43+
do_all_centos:
44+
steps:
45+
- checkout_recursive
46+
- conan_remotes
47+
- conan_project_deps
48+
- test
49+
- deploy_conan
50+
51+
do_all:
52+
steps:
53+
- init
54+
- checkout_recursive
55+
- conan_remotes
56+
- conan_project_deps
57+
- test
58+
- deploy_conan
59+
60+
jobs:
61+
# package_all:
62+
# machine:
63+
# image: ubuntu-1604:202007-01
64+
# steps:
65+
# - run: bash cfg/add_repo.sh debian
66+
# - run: apt-get install dockerpack
67+
# - run: dockerpack build
68+
69+
gcc-4_8_5:
70+
docker:
71+
- image: docker.edwardstock.com/gcc_dev_el7
72+
steps:
73+
- do_all_centos
74+
75+
gcc-5:
76+
docker:
77+
- image: conanio/gcc5
78+
auth:
79+
username: $DOCKER_USER
80+
password: $DOCKER_TOKEN
81+
environment:
82+
CONAN_CPU_COUNT: 4
83+
steps:
84+
- do_all
85+
gcc-6:
86+
docker:
87+
- image: conanio/gcc6
88+
auth:
89+
username: $DOCKER_USER
90+
password: $DOCKER_TOKEN
91+
environment:
92+
CONAN_CPU_COUNT: 4
93+
steps:
94+
- do_all
95+
gcc-7:
96+
docker:
97+
- image: conanio/gcc7
98+
auth:
99+
username: $DOCKER_USER
100+
password: $DOCKER_TOKEN
101+
environment:
102+
CONAN_CPU_COUNT: 4
103+
steps:
104+
- do_all
105+
gcc-8:
106+
docker:
107+
- image: conanio/gcc8
108+
auth:
109+
username: $DOCKER_USER
110+
password: $DOCKER_TOKEN
111+
environment:
112+
CONAN_CPU_COUNT: 4
113+
steps:
114+
- do_all
115+
gcc-9:
116+
docker:
117+
- image: conanio/gcc9
118+
auth:
119+
username: $DOCKER_USER
120+
password: $DOCKER_TOKEN
121+
environment:
122+
CONAN_CPU_COUNT: 4
123+
steps:
124+
- do_all
125+
gcc-10:
126+
docker:
127+
- image: conanio/gcc10
128+
auth:
129+
username: $DOCKER_USER
130+
password: $DOCKER_TOKEN
131+
environment:
132+
CONAN_CPU_COUNT: 4
133+
steps:
134+
- do_all
135+
136+
workflows:
137+
build_and_test:
138+
jobs:
139+
- gcc-4_8_5:
140+
context:
141+
- remote_tokens
142+
- gcc-5:
143+
context:
144+
- remote_tokens
145+
- gcc-6:
146+
context:
147+
- remote_tokens
148+
- gcc-7:
149+
context:
150+
- remote_tokens
151+
- gcc-8:
152+
context:
153+
- remote_tokens
154+
- gcc-9:
155+
context:
156+
- remote_tokens
157+
- gcc-10:
158+
context:
159+
- remote_tokens
160+
# - package_all:
161+
# context:
162+
# - remote_tokens

.circleci/deploy.sh

Lines changed: 61 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,76 @@
11
#!/usr/bin/env bash
22
set -e
3-
set -x
4-
VERS=`git rev-parse --short HEAD`
5-
if [ -f "version" ]
6-
then
7-
VERS=`cat version | tr -d "\n"`
3+
4+
###### DEFINE PROJECT CONFIG HERE ######
5+
CONAN_PROJECT_NAME="minter_tx"
6+
CONAN_REPO="minter"
7+
CONAN_REPO_TAG="latest"
8+
# only boolean options supported
9+
BUILD_OPTIONS=(shared)
10+
11+
###### END PROJECT CONFIG ##############
12+
13+
if [ -f "version" ]; then
14+
VERS=$(cat version | tr -d "\n")
815
fi
916

10-
if [ -f "../version" ]
11-
then
12-
VERS=`cat ../version | tr -d "\n"`
17+
if [ -f "../version" ]; then
18+
VERS=$(cat ../version | tr -d "\n")
1319
fi
1420

15-
if [ "${1}" != "" ]
16-
then
17-
VERS=${1}
21+
if [ "${1}" != "" ]; then
22+
VERS=${1}
1823
fi
1924

2025
sysname=$(uname)
2126

22-
stdlibname="libstdc++"
23-
if [ "${sysname}" == "Darwin" ]
24-
then
25-
stdlibname="libc++"
27+
std_lib_names=(libstdc++ libstdc++11)
28+
if [ "${sysname}" == "Darwin" ]; then
29+
std_lib_names=(libc++)
2630
fi
2731

28-
## Deploy in latest channel
29-
if [ "${sysname}" == "Linux" ]
30-
then
31-
CONAN_LOCAL=1 conan create . minter/latest -s compiler.libcxx=${stdlibname}11 -s build_type=Debug --build=missing
32-
CONAN_LOCAL=1 conan create . minter/latest -s compiler.libcxx=${stdlibname}11 -s build_type=Release --build=missing
33-
fi
32+
BOOL_VALS=(True False)
33+
BUILD_OPTS_PRE=()
34+
TARGET_OPTS=()
35+
36+
opts_cnt=${#BUILD_OPTIONS[@]}
37+
bool_cnt=2
38+
39+
# count = 2^n
40+
# 2 is a vals set: {True; False}
41+
# n is options length
42+
res_cnt=$((bool_cnt ** opts_cnt))
43+
tmp_cnt=$((bool_cnt * opts_cnt))
44+
45+
# create temporary list of flat variants
46+
for ((bool_idx = 0, n = 0; bool_idx < bool_cnt; bool_idx++)); do
47+
for ((opt_idx = 0; opt_idx < opts_cnt; opt_idx++)); do
48+
BUILD_OPTS_PRE[$n]="-o ${BUILD_OPTIONS[$opt_idx]}=${BOOL_VALS[$bool_idx]}"
49+
n=$((n + 1))
50+
done
51+
done
52+
53+
# create target options list
54+
for ((i = 0; i < res_cnt; i++)); do
55+
for ((n = 0; n < opts_cnt; n++)); do
56+
next_index=$(((i + n) % tmp_cnt))
57+
TARGET_OPTS[$i]="${TARGET_OPTS[$i]} ${BUILD_OPTS_PRE[$next_index]}"
58+
done
59+
done
60+
61+
set -x
62+
63+
# iterate over each options cartesian product
64+
for opt_idx in ${!TARGET_OPTS[*]}; do
65+
echo "Build with opt:${TARGET_OPTS[$opt_idx]}"
3466

35-
## Deploy in latest channel
36-
CONAN_LOCAL=1 conan create . minter/latest -s compiler.libcxx=${stdlibname} -s build_type=Debug --build=missing
37-
CONAN_LOCAL=1 conan create . minter/latest -s compiler.libcxx=${stdlibname} -s build_type=Release --build=missing -s build_type=Release
67+
# iterate over available c++ stdlib
68+
for stdlib_idx in ${!std_lib_names[*]}; do
69+
CONAN_LOCAL=1 conan create . ${CONAN_REPO}/${CONAN_REPO_TAG} -s compiler.libcxx="${std_lib_names[$stdlib_idx]}" -s build_type=Debug --build=missing ${TARGET_OPTS[$opt_idx]}
70+
CONAN_LOCAL=1 conan create . ${CONAN_REPO}/${CONAN_REPO_TAG} -s compiler.libcxx="${std_lib_names[$stdlib_idx]}" -s build_type=Release --build=missing ${TARGET_OPTS[$opt_idx]}
71+
done
72+
done
3873

39-
if [ "${NOUPLOAD}" != "1" ]
40-
then
41-
CONAN_LOCAL=1 conan upload minter_tx/${VERS}@minter/latest --all -r=minter
74+
if [ "${NOUPLOAD}" != "1" ]; then
75+
CONAN_LOCAL=1 conan upload ${CONAN_PROJECT_NAME}/${VERS}@${CONAN_REPO}/${CONAN_REPO_TAG} --all -r=${CONAN_REPO}
4276
fi

.circleci/deploy_win.bat

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
@echo off
2+
set CONAN_LOCAL=1
3+
4+
for /f %%i in ('type ..\version') do set VERS=%%i
5+
6+
@rem default config
7+
conan create . minter/latest -s build_type=Debug --build=missing
8+
conan create . minter/latest -s build_type=Release --build=missing
9+
10+
@rem dll
11+
conan create . minter/latest -s build_type=Debug --build=missing -o shared=True
12+
conan create . minter/latest -s build_type=Release --build=missing -o shared=True
13+
14+
@rem
15+
rem conan upload minter_tx/%VERS%@minter/latest --all -r=minter

0 commit comments

Comments
 (0)