Skip to content
This repository was archived by the owner on Aug 2, 2022. It is now read-only.

Commit 6d51c0d

Browse files
authored
Merge pull request #1105 from EOSIO/merge-release-1.8.x-to-master
Merge release/1.8.x to master for v1.8.0
2 parents a6b8d3f + ecca060 commit 6d51c0d

File tree

300 files changed

+16358
-5790
lines changed

Some content is hidden

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

300 files changed

+16358
-5790
lines changed

.cicd/build.sh

+10-6
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ if [[ $(uname) == 'Darwin' ]]; then
88

99
# You can't use chained commands in execute
1010
cd $BUILD_DIR
11-
cmake ..
11+
cmake .. -DCMAKE_BUILD_TYPE=Release
1212
make -j$JOBS
1313

1414
else # Linux
@@ -19,15 +19,19 @@ else # Linux
1919

2020
# PRE_COMMANDS: Executed pre-cmake
2121
PRE_COMMANDS="cd $MOUNTED_DIR/build"
22-
BUILD_COMMANDS="cmake .. && make -j$JOBS"
22+
BUILD_COMMANDS="cmake .. -DCMAKE_BUILD_TYPE=Release && make -j$JOBS"
2323

24-
[[ $IMAGE_TAG == 'centos-7.6' ]] && PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-7/enable"
24+
BUILD_COMMANDS_1604="cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_FLAGS=\"-stdlib=libc++\" && make -j$JOBS"
25+
[[ $IMAGE_TAG == 'ubuntu-16.04' ]] && BUILD_COMMANDS="$BUILD_COMMANDS_1604"
26+
27+
[[ $IMAGE_TAG == 'centos-7.7' ]] && PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-7/enable"
2528
# Docker Commands
2629
if [[ $BUILDKITE == true ]]; then
2730
# Generate Base Images
2831
$CICD_DIR/generate-base-images.sh
29-
elif [[ $TRAVIS == true ]]; then
30-
ARGS="$ARGS -e JOBS -e CCACHE_DIR=/opt/.ccache"
32+
if [[ "$IMAGE_TAG" == 'ubuntu-18.04' ]]; then
33+
FULL_TAG='eosio/ci-contracts-builder:base-ubuntu-18.04-develop'
34+
fi
3135
fi
3236

3337
COMMANDS="$PRE_COMMANDS && $BUILD_COMMANDS"
@@ -42,4 +46,4 @@ else # Linux
4246

4347
eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\"
4448

45-
fi
49+
fi

.cicd/create-docker-from-binary.sh

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#!/bin/bash
2+
echo '--- :evergreen_tree: Configuring Environment'
3+
set -euo pipefail
4+
5+
buildkite-agent artifact download '*.deb' --step ':ubuntu: Ubuntu 18.04 - Package Builder' .
6+
echo ":done: download successful"
7+
8+
SANITIZED_BRANCH=$(echo "$BUILDKITE_BRANCH" | sed 's.^/..' | sed 's/[:/]/_/g')
9+
SANITIZED_TAG=$(echo "$BUILDKITE_TAG" | sed 's.^/..' | tr '/' '_')
10+
echo "$SANITIZED_BRANCH"
11+
echo "$SANITIZED_TAG"
12+
13+
# do docker build
14+
echo '+++ :docker: Building Container'
15+
echo ":docker::build: Building image..."
16+
DOCKERHUB_REGISTRY="docker.io/eosio/eosio.cdt"
17+
18+
BUILD_TAG=${BUILDKITE_BUILD_NUMBER:-latest}
19+
DOCKER_BUILD_GEN="docker build -t eosio_cdt_image:$BUILD_TAG -f ./docker/dockerfile ."
20+
echo "$ $DOCKER_BUILD_GEN"
21+
eval $DOCKER_BUILD_GEN
22+
23+
#tag and push on each destination AWS & DOCKERHUB
24+
echo '+++ :arrow_up: Pushing Container'
25+
EOSIO_REGS=("$EOSIO_CDT_REGISTRY" "$DOCKERHUB_REGISTRY")
26+
for REG in ${EOSIO_REGS[@]}; do
27+
DOCKER_TAG_COMMIT="docker tag eosio_cdt_image:$BUILD_TAG $REG:$BUILDKITE_COMMIT"
28+
DOCKER_TAG_BRANCH="docker tag eosio_cdt_image:$BUILD_TAG $REG:$SANITIZED_BRANCH"
29+
echo -e "$ Tagging Images: \n$DOCKER_TAG_COMMIT \n$DOCKER_TAG_BRANCH"
30+
eval $DOCKER_TAG_COMMIT
31+
eval $DOCKER_TAG_BRANCH
32+
DOCKER_PUSH_COMMIT="docker push $REG:$BUILDKITE_COMMIT"
33+
DOCKER_PUSH_BRANCH="docker push $REG:$SANITIZED_BRANCH"
34+
echo -e "$ Pushing Images: \n$DOCKER_PUSH_COMMIT \n$DOCKER_PUSH_BRANCH"
35+
eval $DOCKER_PUSH_COMMIT
36+
eval $DOCKER_PUSH_BRANCH
37+
CLEAN_IMAGE_COMMIT="docker rmi $REG:$BUILDKITE_COMMIT"
38+
CLEAN_IMAGE_BRANCH="docker rmi $REG:$SANITIZED_BRANCH"
39+
echo -e "Cleaning Up: \n$CLEAN_IMAGE_COMMIT \n$CLEAN_IMAGE_BRANCH$"
40+
eval $CLEAN_IMAGE_COMMIT
41+
eval $CLEAN_IMAGE_BRANCH
42+
if [[ ! -z "$SANITIZED_TAG" ]]; then
43+
DOCKER_TAG="docker tag eosio_cdt_image $REG:$SANITIZED_TAG"
44+
DOCKER_REM="docker rmi $REG:$SANITIZED_TAG"
45+
echo -e "$ \n Tagging Image: \n$DOCKER_TAG \n Cleaning Up: \n$DOCKER_REM"
46+
eval $DOCKER_TAG
47+
eval $DOCKER_REM
48+
fi
49+
done
50+
51+
DOCKER_GEN="docker rmi eosio_cdt_image:$BUILD_TAG"
52+
echo "Clean up base image"
53+
eval $DOCKER_GEN

.cicd/docker/amazonlinux-2.dockerfile

+3-1
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,6 @@ RUN curl -LO https://cmake.org/files/v3.10/cmake-3.10.2.tar.gz && \
1818
make -j$(nproc) && \
1919
make install && \
2020
cd .. && \
21-
rm -f cmake-3.10.2.tar.gz
21+
rm -f cmake-3.10.2.tar.gz
22+
23+
RUN ln -sfn /usr/bin/python3 /usr/local/bin/python3
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,41 @@
1-
FROM centos:7.6.1810
1+
FROM centos:7.7.1908
22
# install dependencies
33
RUN yum update -y && \
44
yum --enablerepo=extras install -y centos-release-scl && \
55
yum install -y devtoolset-7 && \
6-
yum install -y python33.x86_64 git autoconf automake bzip2 \
6+
yum install -y git autoconf automake bzip2 \
77
libtool ocaml.x86_64 doxygen graphviz-devel.x86_64 \
88
libicu-devel.x86_64 bzip2.x86_64 bzip2-devel.x86_64 openssl-devel.x86_64 \
9-
gmp-devel.x86_64 python-devel.x86_64 gettext-devel.x86_64 gcc-c++.x86_64 perl
9+
gmp-devel.x86_64 gettext-devel.x86_64 gcc-c++.x86_64 perl \
10+
libffi-devel.x86_64
11+
12+
# build Python 3.7.4
13+
RUN curl -LO https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz && \
14+
source /opt/rh/devtoolset-7/enable && \
15+
tar xzf Python-3.7.4.tgz && \
16+
cd Python-3.7.4 && \
17+
./configure --enable-optimizations && \
18+
make -j$(nproc) altinstall && \
19+
cd .. && \
20+
rm -rf Python-3.7.4 && rm -rf Python-3.7.4.tgz
21+
1022
# build lcov
1123
RUN git clone https://github.com/linux-test-project/lcov.git && \
12-
source /opt/rh/python33/enable && \
1324
source /opt/rh/devtoolset-7/enable && \
1425
cd lcov && \
1526
make install && \
1627
cd / && \
1728
rm -rf lcov/
29+
1830
# build cmake
1931
RUN curl -LO https://cmake.org/files/v3.10/cmake-3.10.2.tar.gz && \
20-
source /opt/rh/python33/enable && \
2132
source /opt/rh/devtoolset-7/enable && \
2233
tar -xzf cmake-3.10.2.tar.gz && \
2334
cd cmake-3.10.2 && \
2435
./bootstrap --prefix=/usr/local && \
2536
make -j$(nproc) && \
2637
make install && \
2738
cd .. && \
28-
rm -f cmake-3.10.2.tar.gz
39+
rm -f cmake-3.10.2.tar.gz
40+
41+
RUN ln -sfn /usr/local/bin/python3.7 /usr/local/bin/python3

.cicd/docker/centos-8.dockerfile

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
FROM centos:8
2+
# install dependencies
3+
RUN yum update -y && \
4+
yum install -y gdisk && \
5+
yum install -y cmake && \
6+
yum install -y git autoconf automake bzip2 \
7+
libtool make \
8+
libicu-devel.x86_64 bzip2.x86_64 bzip2-devel.x86_64 openssl-devel.x86_64 \
9+
gmp-devel.x86_64 python38 python3-devel gettext-devel.x86_64 gcc-c++.x86_64 perl

.cicd/docker/ubuntu-16.04.dockerfile

+27-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
FROM ubuntu:16.04
22
# install dependencies
33
RUN apt-get update && apt-get upgrade -y && \
4-
DEBIAN_FRONTEND=noninteractive apt-get install -y git clang-4.0 \
5-
lldb-4.0 libclang-4.0-dev make automake libbz2-dev libssl-dev \
4+
DEBIAN_FRONTEND=noninteractive apt-get install -y git \
5+
lldb-4.0 make automake libbz2-dev libssl-dev \
66
libgmp3-dev autotools-dev build-essential libicu-dev python2.7-dev \
7-
python3-dev autoconf libtool curl zlib1g-dev doxygen graphviz
7+
autoconf libtool curl zlib1g-dev doxygen graphviz \
8+
wget libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev xz-utils
9+
810
# install cmake
911
RUN curl -LO https://cmake.org/files/v3.10/cmake-3.10.2.tar.gz && \
1012
tar -xzf cmake-3.10.2.tar.gz && \
@@ -13,4 +15,25 @@ RUN curl -LO https://cmake.org/files/v3.10/cmake-3.10.2.tar.gz && \
1315
make -j$(nproc) && \
1416
make install && \
1517
cd .. && \
16-
rm -f cmake-3.10.2.tar.gz
18+
rm -f cmake-3.10.2.tar.gz
19+
20+
# install Python 3.7.4
21+
RUN curl -LO https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz && \
22+
tar xzf Python-3.7.4.tgz && \
23+
cd Python-3.7.4 && \
24+
./configure --enable-optimizations && \
25+
make -j$(nproc) altinstall && \
26+
cd .. && \
27+
rm -rf Python-3.7.4 && rm -rf Python-3.7.4.tar.gz
28+
29+
RUN ln -sfn /usr/local/bin/python3.7 /usr/local/bin/python3
30+
31+
# install clang 9
32+
RUN curl -LO https://releases.llvm.org/9.0.0/clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz && \
33+
tar -xvf clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz && \
34+
cp -R clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/* /usr/local/bin && \
35+
cp -R clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-16.04/include/* /usr/local/include && \
36+
cp -R clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-16.04/lib/* /usr/local/lib && \
37+
mkdir -p /usr/local/libexec && cp -R clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-16.04/libexec/* /usr/local/libexec && \
38+
cp -R clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-16.04/share/* /usr/local/share && \
39+
cp -R clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-16.04/lib/libc++* /usr/lib

.cicd/docker/ubuntu-18.04.dockerfile

+15-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,20 @@
11
FROM ubuntu:18.04
22
# install dependencies
3+
34
RUN apt-get update && apt-get upgrade -y && \
45
DEBIAN_FRONTEND=noninteractive apt-get install -y git clang-4.0 \
56
lldb-4.0 libclang-4.0-dev cmake make automake libbz2-dev libssl-dev \
6-
libgmp3-dev autotools-dev build-essential libicu-dev python2.7-dev \
7-
python3-dev autoconf libtool curl zlib1g-dev doxygen graphviz
7+
libgmp3-dev autotools-dev build-essential libicu-dev python2.7-dev \
8+
autoconf libtool curl zlib1g-dev doxygen graphviz \
9+
libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev
10+
11+
# install Python 3.7.4
12+
RUN curl -LO https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz && \
13+
tar xzf Python-3.7.4.tgz && \
14+
cd Python-3.7.4 && \
15+
./configure --enable-optimizations && \
16+
make -j$(nproc) altinstall && \
17+
cd .. && \
18+
rm -rf Python-3.7.4 && rm -rf Python-3.7.4.tar.gz
19+
20+
RUN ln -sfn /usr/local/bin/python3.7 /usr/local/bin/python3

.cicd/docker/ubuntu-20.04.dockerfile

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
FROM ubuntu:20.04
2+
# install dependencies
3+
4+
RUN apt-get update && apt-get upgrade -y && \
5+
DEBIAN_FRONTEND=noninteractive apt-get install -y git clang-8 \
6+
lldb-8 libclang-8-dev cmake make automake libbz2-dev libssl-dev \
7+
libgmp3-dev autotools-dev build-essential libicu-dev python2.7-dev python3 \
8+
autoconf libtool curl zlib1g-dev doxygen graphviz \
9+
libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev
10+
11+
RUN ln -sfn /usr/bin/python3 /usr/local/bin/python3

.cicd/integration-tests.sh

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#!/usr/bin/env bash
2+
set -eo pipefail
3+
. ./.cicd/helpers/general.sh
4+
5+
mkdir -p $BUILD_DIR
6+
7+
PRE_COMMANDS="cd $MOUNTED_DIR/build"
8+
TEST="ctest -j$JOBS -L integration_tests -V -T Test"
9+
COMMANDS="$PRE_COMMANDS && $TEST"
10+
11+
ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"}
12+
13+
# . $HELPERS_DIR/docker-hash.sh
14+
15+
# Load BUILDKITE Environment Variables for use in docker run
16+
if [[ -f $BUILDKITE_ENV_FILE ]]; then
17+
evars=""
18+
while read -r var; do
19+
evars="$evars --env ${var%%=*}"
20+
done < "$BUILDKITE_ENV_FILE"
21+
fi
22+
23+
if [[ "$BUILDKITE" == 'true' && "$IMAGE_TAG" == 'ubuntu-18.04' ]]; then
24+
FULL_TAG='eosio/ci-contracts-builder:base-ubuntu-18.04-develop'
25+
fi
26+
27+
set +e
28+
eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\"
29+
EXIT_STATUS=$?
30+
31+
# buildkite
32+
if [[ "$BUILDKITE" == 'true' ]]; then
33+
cd build
34+
# upload artifacts
35+
echo '+++ :arrow_up: Uploading Artifacts'
36+
echo 'Exporting xUnit XML'
37+
mv -f ./Testing/$(ls ./Testing/ | grep '2' | tail -n 1)/Test.xml test-results.xml
38+
echo 'Uploading artifacts'
39+
buildkite-agent artifact upload test-results.xml
40+
echo 'Done uploading artifacts.'
41+
fi
42+
# re-throw
43+
if [[ "$EXIT_STATUS" != 0 ]]; then
44+
echo "Failing due to non-zero exit status from ctest: $EXIT_STATUS"
45+
exit $EXIT_STATUS
46+
fi

.cicd/package.sh

+3-3
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ else # Linux
3232
if [[ "$IMAGE_TAG" =~ "ubuntu" ]]; then
3333
ARTIFACT='*.deb'
3434
PACKAGE_TYPE='deb'
35-
PACKAGE_COMMANDS="./generate_package.sh $PACKAGE_TYPE"
36-
elif [[ "$IMAGE_TAG" =~ "centos" ]]; then
35+
PACKAGE_COMMANDS="./generate_package.sh $PACKAGE_TYPE $OS"
36+
elif [[ "$IMAGE_TAG" =~ "centos" || "$IMAGE_TAG" =~ "amazonlinux" ]]; then
3737
ARTIFACT='*.rpm'
3838
PACKAGE_TYPE='rpm'
3939
PACKAGE_COMMANDS="mkdir -p ~/rpmbuild/BUILD && mkdir -p ~/rpmbuild/BUILDROOT && mkdir -p ~/rpmbuild/RPMS && mkdir -p ~/rpmbuild/SOURCES && mkdir -p ~/rpmbuild/SPECS && mkdir -p ~/rpmbuild/SRPMS && yum install -y rpm-build && ./generate_package.sh $PACKAGE_TYPE"
@@ -63,4 +63,4 @@ else # Linux
6363
fi
6464
done
6565

66-
fi
66+
fi

0 commit comments

Comments
 (0)