From e94b8bbd6d7aeff698b75c2c533ce6676e61f8c4 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Mon, 8 Jul 2019 17:22:33 -0400 Subject: [PATCH 001/528] Builder Dockerfile for Ubuntu 18.04 added. --- .cicd/Dockerfile | 57 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .cicd/Dockerfile diff --git a/.cicd/Dockerfile b/.cicd/Dockerfile new file mode 100644 index 00000000000..511aee148ec --- /dev/null +++ b/.cicd/Dockerfile @@ -0,0 +1,57 @@ +FROM ubuntu:18.04 + +# APT-GET dependencies. +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y git make \ + bzip2 automake libbz2-dev libssl-dev doxygen graphviz libgmp3-dev \ + autotools-dev libicu-dev python2.7 python2.7-dev python3 python3-dev \ + autoconf libtool g++ gcc curl zlib1g-dev sudo ruby libusb-1.0-0-dev \ + libcurl4-gnutls-dev pkg-config patch llvm-4.0 clang + +# Build appropriate version of CMake. +RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz \ + && tar -xzf cmake-3.13.2.tar.gz \ + && cd cmake-3.13.2 \ + && ./bootstrap \ + && make \ + && make install \ + && cd .. \ + && rm -f cmake-3.13.2.tar.gz + +# Build appropriate version of Boost. +RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 \ + && tar -xjf boost_1_70_0.tar.bz2 \ + && cd boost_1_70_0 \ + && ./bootstrap.sh --prefix=/usr/local \ + && ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test install \ + && cd .. \ + && rm -f boost_1_70_0.tar.bz2 + +# Build appropriate version of MongoDB. +RUN curl -LO http://downloads.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz \ + && tar -xzf mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz + +# Build appropriate version of MongoDB C Driver. +RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz \ + && tar -xzf mongo-c-driver-1.13.0.tar.gz \ + && cd mongo-c-driver-1.13.0 \ + && mkdir -p build \ + && cd build \ + && cmake --DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON .. \ + && make \ + && make install \ + && cd / \ + && rm -rf mongo-c-driver-1.13.0.tar.gz + +# Build appropriate version of MongoDB C++ driver. +RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz \ + && tar -xzf mongo-cxx-driver-r3.4.0.tar.gz \ + && cd mongo-cxx-driver-r3.4.0 \ + && sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp \ + && sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt \ + && cd build \ + && cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. \ + && make \ + && make install \ + && cd / \ + && rm -f mongo-cxx-driver-r3.4.0.tar.gz From 71ca088c21cfa23da803f45d8d216d521c768eb7 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 9 Jul 2019 11:15:56 -0400 Subject: [PATCH 002/528] Fixes for MongoDB plugin. --- .cicd/Dockerfile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.cicd/Dockerfile b/.cicd/Dockerfile index 511aee148ec..b5245760b55 100644 --- a/.cicd/Dockerfile +++ b/.cicd/Dockerfile @@ -29,7 +29,8 @@ RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0. # Build appropriate version of MongoDB. RUN curl -LO http://downloads.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz \ - && tar -xzf mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz + && tar -xzf mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz \ + && rm -f mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz # Build appropriate version of MongoDB C Driver. RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz \ @@ -55,3 +56,5 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o && make install \ && cd / \ && rm -f mongo-cxx-driver-r3.4.0.tar.gz + +ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin From 595b591fae66893ffa8a5f00e0ce4aa9c0aac670 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Tue, 9 Jul 2019 13:05:49 -0400 Subject: [PATCH 003/528] Created "Hello, world!" Travis CI YAML file --- .travis.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000000..598f7a70bb9 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,12 @@ +language: cpp +dist: trusty +compiler: +- clang +os: +- linux +before_install: +- echo '##### CHECKPOINT 1 #####' +script: +- echo '##### CHECKPOINT 2 #####' +after_success: +- echo '##### CHECKPOINT 3 #####' \ No newline at end of file From 2f7171ba81fbf371f4ea17cbca793721167db416 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Tue, 9 Jul 2019 13:08:10 -0400 Subject: [PATCH 004/528] Remove trailing hash tags --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 598f7a70bb9..2eabdc1a3a2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,8 +5,8 @@ compiler: os: - linux before_install: -- echo '##### CHECKPOINT 1 #####' +- echo '##### CHECKPOINT 1' script: -- echo '##### CHECKPOINT 2 #####' +- echo '##### CHECKPOINT 2' after_success: -- echo '##### CHECKPOINT 3 #####' \ No newline at end of file +- echo '##### CHECKPOINT 3' \ No newline at end of file From b7ad53e5394eb5607e18c2844c0fab1cf4f670de Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 9 Jul 2019 13:10:17 -0400 Subject: [PATCH 005/528] Added script and renamed dockerfile. --- .cicd/{Dockerfile => Dockerfile-U18} | 11 +++++++++++ .cicd/eosio_build_u18.sh | 13 +++++++++++++ 2 files changed, 24 insertions(+) rename .cicd/{Dockerfile => Dockerfile-U18} (85%) create mode 100755 .cicd/eosio_build_u18.sh diff --git a/.cicd/Dockerfile b/.cicd/Dockerfile-U18 similarity index 85% rename from .cicd/Dockerfile rename to .cicd/Dockerfile-U18 index b5245760b55..29f19b39523 100644 --- a/.cicd/Dockerfile +++ b/.cicd/Dockerfile-U18 @@ -58,3 +58,14 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o && rm -f mongo-cxx-driver-r3.4.0.tar.gz ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin + +# Git clone, checkout, and submodule update. +# Make build directory. +# mkdir /eos/build +# cd /eos/build +# cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos +# make +# Make mongodb direcotry. Start mongo in background. +# mkdir -p /eos/data/mongodb +# mongod --fork --dbpath /eos/data/mongodb -f /eos/scripts/mongod.conf --logpath /eos/mongod.log +# make test \ No newline at end of file diff --git a/.cicd/eosio_build_u18.sh b/.cicd/eosio_build_u18.sh new file mode 100755 index 00000000000..5de6ef01d25 --- /dev/null +++ b/.cicd/eosio_build_u18.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +set -eu + +rm -rf ./eos +docker build -t eos-dev -f Dockerfile-U18 . +git clone https://github.com/EOSIO/eos +cd eos +git checkout release/1.8.x +git submodule update --init --recursive + +docker run --rm -v /Users/scott.arnette/Repos/eos/.cicd/eos:/eos eos-dev bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j$(nproc)" + +cd .. && rm -rf eos \ No newline at end of file From fb9027b288380ee0ab067c306f1c8fd15c5b89d3 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Tue, 9 Jul 2019 13:20:17 -0400 Subject: [PATCH 006/528] First attempt at a Docker build --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 2eabdc1a3a2..c7c2e765f8d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,9 +4,12 @@ compiler: - clang os: - linux +services: +- docker before_install: - echo '##### CHECKPOINT 1' script: - echo '##### CHECKPOINT 2' +- docker build -t eos-dev -f ./.cicd/Dockerfile-U18 . after_success: - echo '##### CHECKPOINT 3' \ No newline at end of file From e861c845f8a50389b489bfa5f8f80ecbcbad032b Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 9 Jul 2019 13:39:18 -0400 Subject: [PATCH 007/528] Removed local reference when mounting EOS volume. --- .cicd/eosio_build_u18.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/eosio_build_u18.sh b/.cicd/eosio_build_u18.sh index 5de6ef01d25..50208ac60ab 100755 --- a/.cicd/eosio_build_u18.sh +++ b/.cicd/eosio_build_u18.sh @@ -8,6 +8,6 @@ cd eos git checkout release/1.8.x git submodule update --init --recursive -docker run --rm -v /Users/scott.arnette/Repos/eos/.cicd/eos:/eos eos-dev bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j$(nproc)" +docker run --rm -v $(pwd):/eos eos-dev bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j$(nproc)" cd .. && rm -rf eos \ No newline at end of file From 288d83ae065a617ad85aaf42760be8c6b535be83 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Tue, 9 Jul 2019 13:55:47 -0400 Subject: [PATCH 008/528] docker push, first attempt --- .travis.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c7c2e765f8d..5119c33f525 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,4 +12,7 @@ script: - echo '##### CHECKPOINT 2' - docker build -t eos-dev -f ./.cicd/Dockerfile-U18 . after_success: -- echo '##### CHECKPOINT 3' \ No newline at end of file +- echo '##### CHECKPOINT 3' +- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin +- docker tag eos-dev eoio/ci:ubuntu-18.04 +- docker push eoio/ci:ubuntu-18.04 \ No newline at end of file From e3ad49e67a512e54c9aa4ed45e20b42a228c30dd Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Tue, 9 Jul 2019 15:32:48 -0400 Subject: [PATCH 009/528] Fixed missing character in Travis YAML --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5119c33f525..b7b2ba2cb66 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,4 +15,4 @@ after_success: - echo '##### CHECKPOINT 3' - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin - docker tag eos-dev eoio/ci:ubuntu-18.04 -- docker push eoio/ci:ubuntu-18.04 \ No newline at end of file +- docker push eosio/ci:ubuntu-18.04 \ No newline at end of file From 2d90c9995876d6c894fc6f93d9e80c533410d441 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Tue, 9 Jul 2019 17:25:56 -0400 Subject: [PATCH 010/528] Fixed another missing character in Travis YAML --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b7b2ba2cb66..7f4d1ba496e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,5 +14,5 @@ script: after_success: - echo '##### CHECKPOINT 3' - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin -- docker tag eos-dev eoio/ci:ubuntu-18.04 +- docker tag eos-dev eosio/ci:ubuntu-18.04 - docker push eosio/ci:ubuntu-18.04 \ No newline at end of file From 58dc6cc55311e14b7cd2dcf9c9f8f89db2d6d56b Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Tue, 9 Jul 2019 17:32:40 -0400 Subject: [PATCH 011/528] Refactored YAML --- .travis.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7f4d1ba496e..f5c4fdab7ac 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,7 @@ -language: cpp +os: linux dist: trusty -compiler: -- clang -os: -- linux +language: cpp +compiler: clang services: - docker before_install: From e190d163e85d008b87f7bd1b5ab8384e8945a417 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Tue, 9 Jul 2019 17:41:31 -0400 Subject: [PATCH 012/528] Updated host OS to newest Ubuntu Travis offers --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f5c4fdab7ac..1c4ee4cdcf2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ os: linux -dist: trusty +dist: xenial language: cpp compiler: clang services: From 9474e253ac91578d608a4460a0788e24ada873b3 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Tue, 9 Jul 2019 18:15:35 -0400 Subject: [PATCH 013/528] Renamed Dockerfile so editors which look for ([^.]*.)*[Dd]ockerfile have syntax highlighting by default --- .cicd/eosio_build_u18.sh | 2 +- .cicd/{Dockerfile-U18 => ubuntu-18.04.dockerfile} | 0 .travis.yml | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename .cicd/{Dockerfile-U18 => ubuntu-18.04.dockerfile} (100%) diff --git a/.cicd/eosio_build_u18.sh b/.cicd/eosio_build_u18.sh index 50208ac60ab..d1bfea23f26 100755 --- a/.cicd/eosio_build_u18.sh +++ b/.cicd/eosio_build_u18.sh @@ -2,7 +2,7 @@ set -eu rm -rf ./eos -docker build -t eos-dev -f Dockerfile-U18 . +docker build -t eos-dev -f ubuntu-18.04.dockerfile . git clone https://github.com/EOSIO/eos cd eos git checkout release/1.8.x diff --git a/.cicd/Dockerfile-U18 b/.cicd/ubuntu-18.04.dockerfile similarity index 100% rename from .cicd/Dockerfile-U18 rename to .cicd/ubuntu-18.04.dockerfile diff --git a/.travis.yml b/.travis.yml index 1c4ee4cdcf2..03cf390ed06 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ before_install: - echo '##### CHECKPOINT 1' script: - echo '##### CHECKPOINT 2' -- docker build -t eos-dev -f ./.cicd/Dockerfile-U18 . +- docker build -t eos-dev -f ./.cicd/ubuntu-18.04.dockerfile . after_success: - echo '##### CHECKPOINT 3' - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin From e0a401fe63052a2dd3d63ffce03c3c6af28add47 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Wed, 10 Jul 2019 10:44:59 -0400 Subject: [PATCH 014/528] Changed Docker Hub repo from eosio/ci to eosio/producer to side-step permissions issue --- .travis.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 03cf390ed06..a8f918e253f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,5 +12,7 @@ script: after_success: - echo '##### CHECKPOINT 3' - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin -- docker tag eos-dev eosio/ci:ubuntu-18.04 -- docker push eosio/ci:ubuntu-18.04 \ No newline at end of file +# - docker tag eos-dev eosio/ci:ubuntu-18.04 +# - docker push eosio/ci:ubuntu-18.04 +- docker tag eos-dev eosio/producer:ci-ubuntu-18.04 # temporary workarond while awaiting permissions to docker.io/eosio/ci +- docker push eosio/producer:ci-ubuntu-18.04 \ No newline at end of file From 51ee5ee747cc002b7b84dd5d6b4ae23f852b9564 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Wed, 10 Jul 2019 11:54:28 -0400 Subject: [PATCH 015/528] EOSIO build, first attempt --- .travis.yml | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index a8f918e253f..1075630bc25 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,13 +6,21 @@ services: - docker before_install: - echo '##### CHECKPOINT 1' +# DOCKER +# script: +# - echo '##### CHECKPOINT 2' +# - docker build -t eos-dev -f ./.cicd/ubuntu-18.04.dockerfile . +# after_success: +# - echo '##### CHECKPOINT 3' +# - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin +# # - docker tag eos-dev eosio/ci:ubuntu-18.04 +# # - docker push eosio/ci:ubuntu-18.04 +# - docker tag eos-dev eosio/producer:ci-ubuntu-18.04 # temporary workarond while awaiting permissions to docker.io/eosio/ci +# - docker push eosio/producer:ci-ubuntu-18.04 +# EOSIO script: - echo '##### CHECKPOINT 2' -- docker build -t eos-dev -f ./.cicd/ubuntu-18.04.dockerfile . +- docker pull eosio/producer:ci-ubuntu-18.04 +- docker run --rm -v $(pwd):/eos eosio/producer:ci-ubuntu-18.04 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j$(nproc)" after_success: -- echo '##### CHECKPOINT 3' -- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin -# - docker tag eos-dev eosio/ci:ubuntu-18.04 -# - docker push eosio/ci:ubuntu-18.04 -- docker tag eos-dev eosio/producer:ci-ubuntu-18.04 # temporary workarond while awaiting permissions to docker.io/eosio/ci -- docker push eosio/producer:ci-ubuntu-18.04 \ No newline at end of file +- echo '##### CHECKPOINT 3' \ No newline at end of file From a7f2e4f39c1b6f3ebe87a13025910252a40933f6 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 10 Jul 2019 14:28:57 -0400 Subject: [PATCH 016/528] Merged build script. --- .cicd/eosio_build_u18.sh | 4 ++-- .cicd/ubuntu-18.04.dockerfile | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.cicd/eosio_build_u18.sh b/.cicd/eosio_build_u18.sh index d1bfea23f26..f09384ec194 100755 --- a/.cicd/eosio_build_u18.sh +++ b/.cicd/eosio_build_u18.sh @@ -2,12 +2,12 @@ set -eu rm -rf ./eos -docker build -t eos-dev -f ubuntu-18.04.dockerfile . +docker build -t eos-dev-u18 -f ubuntu-18.04.dockerfile . git clone https://github.com/EOSIO/eos cd eos git checkout release/1.8.x git submodule update --init --recursive -docker run --rm -v $(pwd):/eos eos-dev bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j$(nproc)" +docker run --rm -v $(pwd):/eos eos-dev-u18 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j$(nproc)" cd .. && rm -rf eos \ No newline at end of file diff --git a/.cicd/ubuntu-18.04.dockerfile b/.cicd/ubuntu-18.04.dockerfile index 29f19b39523..b8e288070b1 100644 --- a/.cicd/ubuntu-18.04.dockerfile +++ b/.cicd/ubuntu-18.04.dockerfile @@ -1,7 +1,7 @@ FROM ubuntu:18.04 # APT-GET dependencies. -RUN apt-get update \ +RUN apt-get update && apt-get upgrade -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -y git make \ bzip2 automake libbz2-dev libssl-dev doxygen graphviz libgmp3-dev \ autotools-dev libicu-dev python2.7 python2.7-dev python3 python3-dev \ @@ -12,8 +12,8 @@ RUN apt-get update \ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz \ && tar -xzf cmake-3.13.2.tar.gz \ && cd cmake-3.13.2 \ - && ./bootstrap \ - && make \ + && ./bootstrap --prefix=/usr/local \ + && make -j$(nproc) \ && make install \ && cd .. \ && rm -f cmake-3.13.2.tar.gz @@ -39,7 +39,7 @@ RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/ && mkdir -p build \ && cd build \ && cmake --DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON .. \ - && make \ + && make -j$(nproc) \ && make install \ && cd / \ && rm -rf mongo-c-driver-1.13.0.tar.gz @@ -52,7 +52,7 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o && sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt \ && cd build \ && cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. \ - && make \ + && make -j$(nproc) \ && make install \ && cd / \ && rm -f mongo-cxx-driver-r3.4.0.tar.gz From fb1ad618b9fa6572fb51c13857259c319b86b9ba Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 10 Jul 2019 14:37:24 -0400 Subject: [PATCH 017/528] Adjusted boost command. --- .cicd/ubuntu-18.04.dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/ubuntu-18.04.dockerfile b/.cicd/ubuntu-18.04.dockerfile index b8e288070b1..1fe19ebd9fe 100644 --- a/.cicd/ubuntu-18.04.dockerfile +++ b/.cicd/ubuntu-18.04.dockerfile @@ -23,7 +23,7 @@ RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0. && tar -xjf boost_1_70_0.tar.bz2 \ && cd boost_1_70_0 \ && ./bootstrap.sh --prefix=/usr/local \ - && ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test install \ + && ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -j$(nproc) install \ && cd .. \ && rm -f boost_1_70_0.tar.bz2 From db9743247fac7efbe7391468ab11f3cf8e123f02 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 10 Jul 2019 14:38:11 -0400 Subject: [PATCH 018/528] Added dockerfile and build script for Ubuntu 16. --- .cicd/eosio_build_u16.sh | 13 ++++++ .cicd/ubuntu-16.04.dockerfile | 76 +++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100755 .cicd/eosio_build_u16.sh create mode 100644 .cicd/ubuntu-16.04.dockerfile diff --git a/.cicd/eosio_build_u16.sh b/.cicd/eosio_build_u16.sh new file mode 100755 index 00000000000..8940eae25ea --- /dev/null +++ b/.cicd/eosio_build_u16.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +set -eu + +rm -rf ./eos +docker build -t eos-dev-u16 -f ubuntu-16.04.dockerfile . +git clone https://github.com/EOSIO/eos +cd eos +git checkout release/1.8.x +git submodule update --init --recursive + +docker run --rm -v $(pwd):/eos eos-dev-u16 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' /eos && make -j$(nproc)" + +cd .. && rm -rf eos \ No newline at end of file diff --git a/.cicd/ubuntu-16.04.dockerfile b/.cicd/ubuntu-16.04.dockerfile new file mode 100644 index 00000000000..f7b37b64100 --- /dev/null +++ b/.cicd/ubuntu-16.04.dockerfile @@ -0,0 +1,76 @@ +FROM ubuntu:16.04 + +COPY ./clang-devtoolset8-support.patch /tmp/clang-devtoolset8-support.patch +COPY ./pinned_toolchain.cmake /tmp/pinned_toolchain.cmake + +# APT-GET dependencies. +RUN apt-get update && apt-get upgrade -y \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential git automake \ + libbz2-dev libssl-dev doxygen graphviz libgmp3-dev autotools-dev libicu-dev \ + python2.7 python2.7-dev python3 python3-dev autoconf libtool curl zlib1g-dev \ + sudo ruby libusb-1.0-0-dev libcurl4-gnutls-dev pkg-config + +# Build appropriate version of CMake. +RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz \ + && tar -xzf cmake-3.13.2.tar.gz \ + && cd cmake-3.13.2 \ + && ./bootstrap --prefix=/usr/local \ + && make -j$(nproc) \ + && make install \ + && cd .. \ + && rm -f cmake-3.13.2.tar.gz + +# Build appropriate version of Clang. +RUN mkdir -p /root/tmp && cd /root/tmp && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && patch -p2 < "/tmp/clang-devtoolset8-support.patch" && cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && cd .. && cd ../../../../projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && cd ../ && cd /root/tmp/clang8 && mkdir build && cd build && cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=all -DCMAKE_BUILD_TYPE=Release .. && make -j$(nproc) && make install \ + && cd / + +# # Build appropriate version of LLVM. +RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm \ + && cd llvm \ + && mkdir build \ + && cd build \ + && cmake -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' .. \ + && make -j$(nproc) \ + && make install \ + && cd / + +# Build appropriate version of Boost. +RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 \ + && tar -xjf boost_1_70_0.tar.bz2 \ + && cd boost_1_70_0 \ + && ./bootstrap.sh --with-toolset=clang --prefix=/usr/local \ + && ./b2 toolset=clang cxxflags='-stdlib=libc++ -D__STRICT_ANSI__ -nostdinc++ -I/usr/local/include/c++/v1' linkflags='-stdlib=libc++' link=static threading=multi --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install \ + && cd .. \ + && rm -f boost_1_70_0.tar.bz2 + +# Build appropriate version of MongoDB. +RUN curl -LO http://downloads.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz \ + && tar -xzf mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz \ + && rm -f mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz + +# Build appropriate version of MongoDB C Driver. +RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz \ + && tar -xzf mongo-c-driver-1.13.0.tar.gz \ + && cd mongo-c-driver-1.13.0 \ + && mkdir -p build \ + && cd build \ + && cmake --DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' .. \ + && make -j$(nproc) \ + && make install \ + && cd / \ + && rm -rf mongo-c-driver-1.13.0.tar.gz + +# Build appropriate version of MongoDB C++ driver. +RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz \ + && tar -xzf mongo-cxx-driver-r3.4.0.tar.gz \ + && cd mongo-cxx-driver-r3.4.0 \ + && sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp \ + && sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt \ + && cd build \ + && cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' .. \ + && make -j$(nproc) \ + && make install \ + && cd / \ + && rm -f mongo-cxx-driver-r3.4.0.tar.gz + +ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1604-3.6.3/bin From 805f87f400c062987d797aff54c040d5dff4add4 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Wed, 10 Jul 2019 15:22:53 -0400 Subject: [PATCH 019/528] Travis now prints VM host resources --- .travis.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1075630bc25..331192f835e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,8 +4,13 @@ language: cpp compiler: clang services: - docker -before_install: -- echo '##### CHECKPOINT 1' +before_install: | + echo '##### CHECKPOINT 1' + echo '===== RESOURCES =====' + echo "$(getconf _NPROCESSORS_ONLN) CPU cores found." + if [[ "$(uname)" == Darwin ]]; then top -l 1 -s 0 | grep PhysMem; else vmstat -sSM | grep -i 'memory'; fi + df -h + echo '=====================' # DOCKER # script: # - echo '##### CHECKPOINT 2' From 751614ab357bf41f1cc69b19ad24c234a5010bb8 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 10 Jul 2019 15:53:48 -0400 Subject: [PATCH 020/528] Added missing dependent files for Ubuntu 16 container builds. --- .cicd/clang-devtoolset8-support.patch | 55 +++++++++++++++++++++++++++ .cicd/pinned_toolchain.cmake | 14 +++++++ 2 files changed, 69 insertions(+) create mode 100644 .cicd/clang-devtoolset8-support.patch create mode 100644 .cicd/pinned_toolchain.cmake diff --git a/.cicd/clang-devtoolset8-support.patch b/.cicd/clang-devtoolset8-support.patch new file mode 100644 index 00000000000..64a946e26cd --- /dev/null +++ b/.cicd/clang-devtoolset8-support.patch @@ -0,0 +1,55 @@ +From 32b65345c5760295d04c95e0abb3653fe20ffd16 Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Tue, 9 Apr 2019 13:26:10 +0000 +Subject: [PATCH] Add support for detection of devtoolset-8 + +Summary: +The current llvm/clang et al. project can be built with the latest developer toolset (devtoolset-8) on RHEL, which provides GCC 8.2.1. +However, the result compiler will not identify this toolset itself when compiling programs, which is of course not desirable. + +After the patch - which simply adds the name of the developer toolset to the existing list - it gets identified and selected, as shown below: + +[bamboo@bamboo llvm-project]$ clang -v +clang version 9.0.0 (https://github.com/llvm/llvm-project.git e5ac385fb1ffa4bd3875ea6a4d24efdbd7814572) +Target: x86_64-unknown-linux-gnu +Thread model: posix +InstalledDir: /home/bamboo/llvm/bin +Found candidate GCC installation: /opt/rh/devtoolset-4/root/usr/lib/gcc/x86_64-redhat-linux/5.2.1 +Found candidate GCC installation: /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7 +Found candidate GCC installation: /opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8 +Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/4.8.2 +Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/4.8.5 +Selected GCC installation: /opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8 +Candidate multilib: .;@m64 +Candidate multilib: 32;@m32 +Selected multilib: .;@m64 + +Patch By: Radu-Adrian Popescu + +Reviewers: tstellar, fedor.sergeev + +Reviewed By: tstellar + +Subscribers: jdoerfert, cfe-commits + +Tags: #clang + +Differential Revision: https://reviews.llvm.org/D59987 + +llvm-svn: 358002 +--- + clang/lib/Driver/ToolChains/Gnu.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp +index 2a58f0f7142..8915e3f948f 100644 +--- a/clang/lib/Driver/ToolChains/Gnu.cpp ++++ b/clang/lib/Driver/ToolChains/Gnu.cpp +@@ -1875,6 +1875,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes( + // Non-Solaris is much simpler - most systems just go with "/usr". + if (SysRoot.empty() && TargetTriple.getOS() == llvm::Triple::Linux) { + // Yet, still look for RHEL devtoolsets. ++ Prefixes.push_back("/opt/rh/devtoolset-8/root/usr"); + Prefixes.push_back("/opt/rh/devtoolset-7/root/usr"); + Prefixes.push_back("/opt/rh/devtoolset-6/root/usr"); + Prefixes.push_back("/opt/rh/devtoolset-4/root/usr"); diff --git a/.cicd/pinned_toolchain.cmake b/.cicd/pinned_toolchain.cmake new file mode 100644 index 00000000000..70d0b114ae9 --- /dev/null +++ b/.cicd/pinned_toolchain.cmake @@ -0,0 +1,14 @@ +set(CMAKE_C_COMPILER_WORKS 1) +set(CMAKE_CXX_COMPILER_WORKS 1) +set(CMAKE_C_COMPILER /usr/local/bin/clang) +set(CMAKE_CXX_COMPILER /usr/local/bin/clang++) + +set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES /usr/local/include/c++/v1 /usr/local/include /usr/include) + +set(CMAKE_CXX_FLAGS_INIT "-nostdinc++") + +set(CMAKE_EXE_LINKER_FLAGS_INIT "-stdlib=libc++ -nostdlib++") +set(CMAKE_SHARED_LINKER_FLAGS_INIT "-stdlib=libc++ -nostdlib++") +set(CMAKE_MODULE_LINKER_FLAGS_INIT "-stdlib=libc++ -nostdlib++") + +set(CMAKE_CXX_STANDARD_LIBRARIES "/usr/local/lib/libc++.a /usr/local/lib/libc++abi.a") From fffa86be6c098500f3ffa9801fd30f3a4ff122e9 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 10 Jul 2019 15:54:11 -0400 Subject: [PATCH 021/528] Created dockerfile and script for amazonlinux2. --- .cicd/amazonlinux-2.dockerfile | 72 ++++++++++++++++++++++++++++++++++ .cicd/eosio_build_a2.sh | 13 ++++++ 2 files changed, 85 insertions(+) create mode 100644 .cicd/amazonlinux-2.dockerfile create mode 100755 .cicd/eosio_build_a2.sh diff --git a/.cicd/amazonlinux-2.dockerfile b/.cicd/amazonlinux-2.dockerfile new file mode 100644 index 00000000000..3db67fa1ac2 --- /dev/null +++ b/.cicd/amazonlinux-2.dockerfile @@ -0,0 +1,72 @@ +FROM amazonlinux:2 + +# COPY ./clang-devtoolset8-support.patch /tmp/clang-devtoolset8-support.patch +# COPY ./pinned_toolchain.cmake /tmp/pinned_toolchain.cmake + +# YUM dependencies. +RUN yum update -y \ + && yum install -y which git sudo procps-ng util-linux autoconf automake \ + libtool make bzip2 bzip2-devel openssl-devel gmp-devel libstdc++ libcurl-devel \ + libusbx-devel python3 python3-devel python-devel libedit-devel doxygen \ + graphviz clang patch + +# Build appropriate version of CMake. +RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz \ + && tar -xzf cmake-3.13.2.tar.gz \ + && cd cmake-3.13.2 \ + && ./bootstrap --prefix=/usr/local \ + && make -j$(nproc) \ + && make install \ + && cd .. \ + && rm -f cmake-3.13.2.tar.gz + +# Build appropriate version of LLVM. +RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm \ + && cd llvm \ + && mkdir build \ + && cd build \ + && cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. \ + && make -j$(nproc) \ + && make install \ + && cd / + +# Build appropriate version of Boost. +RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 \ + && tar -xjf boost_1_70_0.tar.bz2 \ + && cd boost_1_70_0 \ + && ./bootstrap.sh --prefix=/usr/local \ + && ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install \ + && cd .. \ + && rm -f boost_1_70_0.tar.bz2 + +# Build appropriate version of MongoDB. +RUN curl -LO http://downloads.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz \ + && tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz \ + && rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz + +# Build appropriate version of MongoDB C Driver. +RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz \ + && tar -xzf mongo-c-driver-1.13.0.tar.gz \ + && cd mongo-c-driver-1.13.0 \ + && mkdir -p build \ + && cd build \ + && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. \ + && make -j$(nproc) \ + && make install \ + && cd / \ + && rm -rf mongo-c-driver-1.13.0.tar.gz + +# Build appropriate version of MongoDB C++ driver. +RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz \ + && tar -xzf mongo-cxx-driver-r3.4.0.tar.gz \ + && cd mongo-cxx-driver-r3.4.0 \ + && sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp \ + && sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt \ + && cd build \ + && cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. \ + && make -j$(nproc) \ + && make install \ + && cd / \ + && rm -f mongo-cxx-driver-r3.4.0.tar.gz + +ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin diff --git a/.cicd/eosio_build_a2.sh b/.cicd/eosio_build_a2.sh new file mode 100755 index 00000000000..e4ba8b79533 --- /dev/null +++ b/.cicd/eosio_build_a2.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +set -eu + +rm -rf ./eos +docker build -t eos-dev-a2 -f amazonlinux-2.dockerfile . +git clone https://github.com/EOSIO/eos +cd eos +git checkout release/1.8.x +git submodule update --init --recursive + +docker run --rm -v $(pwd):/eos eos-dev-a2 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j$(nproc)" + +cd .. && rm -rf eos \ No newline at end of file From 103323d98fdce5c318df71ebb576a4096e8738a0 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 10 Jul 2019 16:30:04 -0400 Subject: [PATCH 022/528] Modified amazonlinux mongo url and cmake args. --- .cicd/amazonlinux-2.dockerfile | 5 +---- .cicd/eosio_build_a2.sh | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.cicd/amazonlinux-2.dockerfile b/.cicd/amazonlinux-2.dockerfile index 3db67fa1ac2..d16211c5986 100644 --- a/.cicd/amazonlinux-2.dockerfile +++ b/.cicd/amazonlinux-2.dockerfile @@ -1,8 +1,5 @@ FROM amazonlinux:2 -# COPY ./clang-devtoolset8-support.patch /tmp/clang-devtoolset8-support.patch -# COPY ./pinned_toolchain.cmake /tmp/pinned_toolchain.cmake - # YUM dependencies. RUN yum update -y \ && yum install -y which git sudo procps-ng util-linux autoconf automake \ @@ -40,7 +37,7 @@ RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0. && rm -f boost_1_70_0.tar.bz2 # Build appropriate version of MongoDB. -RUN curl -LO http://downloads.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz \ +RUN curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz \ && tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz \ && rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz diff --git a/.cicd/eosio_build_a2.sh b/.cicd/eosio_build_a2.sh index e4ba8b79533..ce4398e7262 100755 --- a/.cicd/eosio_build_a2.sh +++ b/.cicd/eosio_build_a2.sh @@ -8,6 +8,6 @@ cd eos git checkout release/1.8.x git submodule update --init --recursive -docker run --rm -v $(pwd):/eos eos-dev-a2 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j$(nproc)" +docker run --rm -v $(pwd):/eos eos-dev-a2 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j$(nproc)" cd .. && rm -rf eos \ No newline at end of file From be70a500bb804deca7eceb337aeedf53bf0845cc Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Wed, 10 Jul 2019 16:40:06 -0400 Subject: [PATCH 023/528] Created Travis matrix with macOS and Ubuntu 16.04 --- .cicd/travis-build.sh | 17 +++++++++++++++++ .travis.yml | 25 ++++++++++++++++--------- 2 files changed, 33 insertions(+), 9 deletions(-) create mode 100755 .cicd/travis-build.sh diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh new file mode 100755 index 00000000000..3594c9a71ae --- /dev/null +++ b/.cicd/travis-build.sh @@ -0,0 +1,17 @@ +#!/bin/bash +set -e +CPU_CORES=$(getconf _NPROCESSORS_ONLN) +if [[ "$(uname)" == Darwin ]]; then + echo 'Detected Darwin, building natively.' + [[ -d eos ]] && cd eos + [[ ! -d build ]] && mkdir build + cd build + cmake .. + make -j $CPU_CORES +else # linux + echo 'Detected Linux, building in Docker.' + echo "$ docker pull eosio/producer:ci-$IMAGE_TAG" + docker pull eosio/producer:ci-$IMAGE_TAG + echo "docker run --rm -v $(pwd):/eos eosio/producer:ci-$IMAGE_TAG bash -c \"mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)\"" + docker run --rm -v $(pwd):/eos eosio/producer:ci-$IMAGE_TAG bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" +fi \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 331192f835e..c8f9aed3a9d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,13 @@ -os: linux -dist: xenial language: cpp -compiler: clang -services: -- docker +matrix: + include: + - os: linux + dist: xenial + services: docker + env: IMAGE_TAG='ubuntu-18.04' + - os: osx + osx_image: xcode10.2 + before_install: | echo '##### CHECKPOINT 1' echo '===== RESOURCES =====' @@ -23,9 +27,12 @@ before_install: | # - docker tag eos-dev eosio/producer:ci-ubuntu-18.04 # temporary workarond while awaiting permissions to docker.io/eosio/ci # - docker push eosio/producer:ci-ubuntu-18.04 # EOSIO -script: -- echo '##### CHECKPOINT 2' -- docker pull eosio/producer:ci-ubuntu-18.04 -- docker run --rm -v $(pwd):/eos eosio/producer:ci-ubuntu-18.04 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j$(nproc)" +script: | + echo '##### CHECKPOINT 2' + echo '$ pwd' + pwd + echo '$ ls -la' + ls -la + ./.cicd/travis-build.sh after_success: - echo '##### CHECKPOINT 3' \ No newline at end of file From 4ac37b2fc6d4c82c863a128eee2c9dd364977baf Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 10 Jul 2019 17:07:17 -0400 Subject: [PATCH 024/528] Added dockerfile and script for centos 7. --- .cicd/centos-7.dockerfile | 81 +++++++++++++++++++++++++++++++++++++++ .cicd/eosio_build_c7.sh | 13 +++++++ 2 files changed, 94 insertions(+) create mode 100644 .cicd/centos-7.dockerfile create mode 100755 .cicd/eosio_build_c7.sh diff --git a/.cicd/centos-7.dockerfile b/.cicd/centos-7.dockerfile new file mode 100644 index 00000000000..3d14835f19f --- /dev/null +++ b/.cicd/centos-7.dockerfile @@ -0,0 +1,81 @@ +FROM centos:7 + +# YUM dependencies. +RUN yum update -y \ + && yum --enablerepo=extras install -y centos-release-scl \ + && yum --enablerepo=extras install -y devtoolset-8 \ + && yum --enablerepo=extras install -y which git autoconf automake libtool make bzip2 doxygen \ + graphviz bzip2-devel openssl-devel gmp-devel ocaml libicu-devel \ + python python-devel rh-python36 gettext-devel file libusbx-devel \ + libcurl-devel patch + +# Build appropriate version of CMake. +RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz \ + && source /opt/rh/devtoolset-8/enable \ + && source /opt/rh/rh-python36/enable \ + && tar -xzf cmake-3.13.2.tar.gz \ + && cd cmake-3.13.2 \ + && ./bootstrap --prefix=/usr/local \ + && make -j$(nproc) \ + && make install \ + && cd .. \ + && rm -f cmake-3.13.2.tar.gz + +# Build appropriate version of LLVM. +RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm \ + && source /opt/rh/devtoolset-8/enable \ + && source /opt/rh/rh-python36/enable \ + && cd llvm \ + && mkdir build \ + && cd build \ + && cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. \ + && make -j$(nproc) \ + && make install \ + && cd / + +# Build appropriate version of Boost. +RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 \ + && source /opt/rh/devtoolset-8/enable \ + && source /opt/rh/rh-python36/enable \ + && tar -xjf boost_1_70_0.tar.bz2 \ + && cd boost_1_70_0 \ + && ./bootstrap.sh --prefix=/usr/local \ + && ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install \ + && cd .. \ + && rm -f boost_1_70_0.tar.bz2 + +# Build appropriate version of MongoDB. +RUN curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz \ + && tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz \ + && rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz + +# Build appropriate version of MongoDB C Driver. +RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz \ + && source /opt/rh/devtoolset-8/enable \ + && source /opt/rh/rh-python36/enable \ + && tar -xzf mongo-c-driver-1.13.0.tar.gz \ + && cd mongo-c-driver-1.13.0 \ + && mkdir -p build \ + && cd build \ + && cmake --DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. \ + && make -j$(nproc) \ + && make install \ + && cd / \ + && rm -rf mongo-c-driver-1.13.0.tar.gz + +# Build appropriate version of MongoDB C++ driver. +RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz \ + && source /opt/rh/devtoolset-8/enable \ + && source /opt/rh/rh-python36/enable \ + && tar -xzf mongo-cxx-driver-r3.4.0.tar.gz \ + && cd mongo-cxx-driver-r3.4.0 \ + && sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp \ + && sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt \ + && cd build \ + && cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. \ + && make -j$(nproc) \ + && make install \ + && cd / \ + && rm -f mongo-cxx-driver-r3.4.0.tar.gz + +ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin diff --git a/.cicd/eosio_build_c7.sh b/.cicd/eosio_build_c7.sh new file mode 100755 index 00000000000..85acdf4ee51 --- /dev/null +++ b/.cicd/eosio_build_c7.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +set -eu + +rm -rf ./eos +docker build -t eos-dev-c7 -f centos-7.dockerfile . +git clone https://github.com/EOSIO/eos +cd eos +git checkout release/1.8.x +git submodule update --init --recursive + +docker run --rm -v $(pwd):/eos eos-dev-c7 bash -c "source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j$(nproc)" + +cd .. && rm -rf eos \ No newline at end of file From ad0f5134240a826f9354c0334f83d36c7849469d Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Wed, 10 Jul 2019 17:30:10 -0400 Subject: [PATCH 025/528] Tag Docker image correctly from the beginning --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index c8f9aed3a9d..cfcddb7281c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,11 +18,10 @@ before_install: | # DOCKER # script: # - echo '##### CHECKPOINT 2' -# - docker build -t eos-dev -f ./.cicd/ubuntu-18.04.dockerfile . +# - docker build -t eosio/ci:ubuntu-18.04 -f ./.cicd/ubuntu-18.04.dockerfile . # after_success: # - echo '##### CHECKPOINT 3' # - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin -# # - docker tag eos-dev eosio/ci:ubuntu-18.04 # # - docker push eosio/ci:ubuntu-18.04 # - docker tag eos-dev eosio/producer:ci-ubuntu-18.04 # temporary workarond while awaiting permissions to docker.io/eosio/ci # - docker push eosio/producer:ci-ubuntu-18.04 From 6afbaa220e78867ea19973065206f3776b9b900e Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Wed, 10 Jul 2019 17:33:54 -0400 Subject: [PATCH 026/528] Update the other half of the Docker tag, too --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index cfcddb7281c..db70ca9d60f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,12 +18,12 @@ before_install: | # DOCKER # script: # - echo '##### CHECKPOINT 2' -# - docker build -t eosio/ci:ubuntu-18.04 -f ./.cicd/ubuntu-18.04.dockerfile . +# # - docker build -t eosio/ci:ubuntu-18.04 -f ./.cicd/ubuntu-18.04.dockerfile . +# - docker build -t eosio/producer:ci-ubuntu-18.04 -f ./.cicd/ubuntu-18.04.dockerfile . # after_success: # - echo '##### CHECKPOINT 3' # - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin # # - docker push eosio/ci:ubuntu-18.04 -# - docker tag eos-dev eosio/producer:ci-ubuntu-18.04 # temporary workarond while awaiting permissions to docker.io/eosio/ci # - docker push eosio/producer:ci-ubuntu-18.04 # EOSIO script: | From c8fecb7bf2e920c98cccafd0ea6c27e9591fe062 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 09:22:28 -0400 Subject: [PATCH 027/528] testing ccache for linux --- .cicd/travis-build.sh | 4 +++- .travis.yml | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 3594c9a71ae..527d761ef9f 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -13,5 +13,7 @@ else # linux echo "$ docker pull eosio/producer:ci-$IMAGE_TAG" docker pull eosio/producer:ci-$IMAGE_TAG echo "docker run --rm -v $(pwd):/eos eosio/producer:ci-$IMAGE_TAG bash -c \"mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)\"" - docker run --rm -v $(pwd):/eos eosio/producer:ci-$IMAGE_TAG bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" + docker run --rm -v $(pwd):/eos -v $HOME/.ccache:/usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c " \ + export PATH=/usr/lib/ccache:\$PATH && apt-get update; apt-get install -y ccache && ccache -s; \ + mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index db70ca9d60f..36c8f926abd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,7 @@ language: cpp +git: + # Depth is needed to prevent git describe failures in appbase + depth: false matrix: include: - os: linux From 1e317c75d4adf4dbd59b73ea7197e87335c433d8 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 09:24:52 -0400 Subject: [PATCH 028/528] added ccache and mac brew stuff --- .cicd/travis-build.sh | 2 ++ .travis.yml | 1 + 2 files changed, 3 insertions(+) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 527d761ef9f..7d0381718bb 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -2,6 +2,8 @@ set -e CPU_CORES=$(getconf _NPROCESSORS_ONLN) if [[ "$(uname)" == Darwin ]]; then + brew install ccache + export PATH="/usr/local/opt/ccache/libexec:$PATH" echo 'Detected Darwin, building natively.' [[ -d eos ]] && cd eos [[ ! -d build ]] && mkdir build diff --git a/.travis.yml b/.travis.yml index 36c8f926abd..b165d445b57 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,7 @@ language: cpp git: # Depth is needed to prevent git describe failures in appbase depth: false +cache: ccache matrix: include: - os: linux From 7a0a8f9e415b2a311eee5ccc1dc9959f55be33ca Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 09:55:48 -0400 Subject: [PATCH 029/528] added ccache to docker files + fixed travis-build --- .cicd/amazonlinux-2.dockerfile | 6 +++++- .cicd/centos-7.dockerfile | 6 +++++- .cicd/travis-build.sh | 6 ++---- .cicd/ubuntu-16.04.dockerfile | 5 ++++- .cicd/ubuntu-18.04.dockerfile | 7 +++++-- 5 files changed, 21 insertions(+), 9 deletions(-) diff --git a/.cicd/amazonlinux-2.dockerfile b/.cicd/amazonlinux-2.dockerfile index d16211c5986..1af7bcac82c 100644 --- a/.cicd/amazonlinux-2.dockerfile +++ b/.cicd/amazonlinux-2.dockerfile @@ -66,4 +66,8 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o && cd / \ && rm -f mongo-cxx-driver-r3.4.0.tar.gz -ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin +ENV PATH=/usr/lib/ccache:${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin + +# CCACHE +RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm \ + && yum install ccache-3.3.4-1.el7.x86_64.rpm \ No newline at end of file diff --git a/.cicd/centos-7.dockerfile b/.cicd/centos-7.dockerfile index 3d14835f19f..a495d457dfa 100644 --- a/.cicd/centos-7.dockerfile +++ b/.cicd/centos-7.dockerfile @@ -78,4 +78,8 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o && cd / \ && rm -f mongo-cxx-driver-r3.4.0.tar.gz -ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin +ENV PATH=/usr/lib/ccache:${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin + +# CCACHE +RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm \ + && yum install ccache-3.3.4-1.el7.x86_64.rpm \ No newline at end of file diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 7d0381718bb..075e627ff1f 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -14,8 +14,6 @@ else # linux echo 'Detected Linux, building in Docker.' echo "$ docker pull eosio/producer:ci-$IMAGE_TAG" docker pull eosio/producer:ci-$IMAGE_TAG - echo "docker run --rm -v $(pwd):/eos eosio/producer:ci-$IMAGE_TAG bash -c \"mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)\"" - docker run --rm -v $(pwd):/eos -v $HOME/.ccache:/usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c " \ - export PATH=/usr/lib/ccache:\$PATH && apt-get update; apt-get install -y ccache && ccache -s; \ - mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" + echo "docker run --rm -v $(pwd):/eos -v $HOME/.ccache:/usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c \"ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)\"" + docker run --rm -v $(pwd):/eos -v $HOME/.ccache:/usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c "ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file diff --git a/.cicd/ubuntu-16.04.dockerfile b/.cicd/ubuntu-16.04.dockerfile index f7b37b64100..eef66bdc14c 100644 --- a/.cicd/ubuntu-16.04.dockerfile +++ b/.cicd/ubuntu-16.04.dockerfile @@ -73,4 +73,7 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o && cd / \ && rm -f mongo-cxx-driver-r3.4.0.tar.gz -ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1604-3.6.3/bin +ENV PATH=/usr/lib/ccache:${PATH}:/mongodb-linux-x86_64-ubuntu1604-3.6.3/bin + +# CCACHE +RUN apt-get install -y ccache \ No newline at end of file diff --git a/.cicd/ubuntu-18.04.dockerfile b/.cicd/ubuntu-18.04.dockerfile index 1fe19ebd9fe..6e5b74f8b39 100644 --- a/.cicd/ubuntu-18.04.dockerfile +++ b/.cicd/ubuntu-18.04.dockerfile @@ -57,7 +57,10 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o && cd / \ && rm -f mongo-cxx-driver-r3.4.0.tar.gz -ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin +ENV PATH=/usr/lib/ccache:${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin + +# CCACHE +RUN apt-get install -y ccache # Git clone, checkout, and submodule update. # Make build directory. @@ -68,4 +71,4 @@ ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin # Make mongodb direcotry. Start mongo in background. # mkdir -p /eos/data/mongodb # mongod --fork --dbpath /eos/data/mongodb -f /eos/scripts/mongod.conf --logpath /eos/mongod.log -# make test \ No newline at end of file +# make test From bb0f68c780b351deeb68b6e2ee3870f7360e7430 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Thu, 11 Jul 2019 10:04:42 -0400 Subject: [PATCH 030/528] Added -y flag to ccache install. --- .cicd/amazonlinux-2.dockerfile | 2 +- .cicd/centos-7.dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/amazonlinux-2.dockerfile b/.cicd/amazonlinux-2.dockerfile index 1af7bcac82c..68916d8c1dd 100644 --- a/.cicd/amazonlinux-2.dockerfile +++ b/.cicd/amazonlinux-2.dockerfile @@ -70,4 +70,4 @@ ENV PATH=/usr/lib/ccache:${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin # CCACHE RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm \ - && yum install ccache-3.3.4-1.el7.x86_64.rpm \ No newline at end of file + && yum install -y ccache-3.3.4-1.el7.x86_64.rpm \ No newline at end of file diff --git a/.cicd/centos-7.dockerfile b/.cicd/centos-7.dockerfile index a495d457dfa..64e6bc393f4 100644 --- a/.cicd/centos-7.dockerfile +++ b/.cicd/centos-7.dockerfile @@ -82,4 +82,4 @@ ENV PATH=/usr/lib/ccache:${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin # CCACHE RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm \ - && yum install ccache-3.3.4-1.el7.x86_64.rpm \ No newline at end of file + && yum install -y ccache-3.3.4-1.el7.x86_64.rpm \ No newline at end of file From 7a51c0fe582a0a86f1c182073decf095e6cc25b3 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Thu, 11 Jul 2019 10:05:14 -0400 Subject: [PATCH 031/528] Modified local build scripts to use new container tags. --- .cicd/eosio_build_a2.sh | 4 ++-- .cicd/eosio_build_c7.sh | 4 ++-- .cicd/eosio_build_u16.sh | 4 ++-- .cicd/eosio_build_u18.sh | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.cicd/eosio_build_a2.sh b/.cicd/eosio_build_a2.sh index ce4398e7262..0dcdcd5f5ad 100755 --- a/.cicd/eosio_build_a2.sh +++ b/.cicd/eosio_build_a2.sh @@ -2,12 +2,12 @@ set -eu rm -rf ./eos -docker build -t eos-dev-a2 -f amazonlinux-2.dockerfile . +docker build -t eosio/producer:ci-amazonlinux-2 -f amazonlinux-2.dockerfile . git clone https://github.com/EOSIO/eos cd eos git checkout release/1.8.x git submodule update --init --recursive -docker run --rm -v $(pwd):/eos eos-dev-a2 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j$(nproc)" +docker run --rm -v $(pwd):/eos eosio/producer:ci-amazonlinux-2 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j$(nproc)" cd .. && rm -rf eos \ No newline at end of file diff --git a/.cicd/eosio_build_c7.sh b/.cicd/eosio_build_c7.sh index 85acdf4ee51..3992fc5762b 100755 --- a/.cicd/eosio_build_c7.sh +++ b/.cicd/eosio_build_c7.sh @@ -2,12 +2,12 @@ set -eu rm -rf ./eos -docker build -t eos-dev-c7 -f centos-7.dockerfile . +docker build -t eosio/producer:ci-centos-7 -f centos-7.dockerfile . git clone https://github.com/EOSIO/eos cd eos git checkout release/1.8.x git submodule update --init --recursive -docker run --rm -v $(pwd):/eos eos-dev-c7 bash -c "source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j$(nproc)" +docker run --rm -v $(pwd):/eos eosio/producer:ci-centos-7 bash -c "source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j$(nproc)" cd .. && rm -rf eos \ No newline at end of file diff --git a/.cicd/eosio_build_u16.sh b/.cicd/eosio_build_u16.sh index 8940eae25ea..28b051374eb 100755 --- a/.cicd/eosio_build_u16.sh +++ b/.cicd/eosio_build_u16.sh @@ -2,12 +2,12 @@ set -eu rm -rf ./eos -docker build -t eos-dev-u16 -f ubuntu-16.04.dockerfile . +docker build -t eosio/producer:ci-ubuntu-16.04 -f ubuntu-16.04.dockerfile . git clone https://github.com/EOSIO/eos cd eos git checkout release/1.8.x git submodule update --init --recursive -docker run --rm -v $(pwd):/eos eos-dev-u16 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' /eos && make -j$(nproc)" +docker run --rm -v $(pwd):/eos eosio/producer:ci-ubuntu-16.04 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' /eos && make -j$(nproc)" cd .. && rm -rf eos \ No newline at end of file diff --git a/.cicd/eosio_build_u18.sh b/.cicd/eosio_build_u18.sh index f09384ec194..a0d79f07ad3 100755 --- a/.cicd/eosio_build_u18.sh +++ b/.cicd/eosio_build_u18.sh @@ -2,12 +2,12 @@ set -eu rm -rf ./eos -docker build -t eos-dev-u18 -f ubuntu-18.04.dockerfile . +docker build -t eosio/producer:ci-ubuntu-18.04 -f ubuntu-18.04.dockerfile . git clone https://github.com/EOSIO/eos cd eos git checkout release/1.8.x git submodule update --init --recursive -docker run --rm -v $(pwd):/eos eos-dev-u18 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j$(nproc)" +docker run --rm -v $(pwd):/eos eosio/producer:ci-ubuntu-18.04 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j$(nproc)" cd .. && rm -rf eos \ No newline at end of file From 96fe9ef64ec1d40a48219abf6ffce3ec8060ae5a Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 11 Jul 2019 10:15:49 -0400 Subject: [PATCH 032/528] Removed debug code --- .travis.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index b165d445b57..d25d8a4943e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,6 @@ language: cpp git: - # Depth is needed to prevent git describe failures in appbase - depth: false + depth: false # prevent git describe failure when executing the appbase version.cmake.in cache: ccache matrix: include: @@ -32,10 +31,6 @@ before_install: | # EOSIO script: | echo '##### CHECKPOINT 2' - echo '$ pwd' - pwd - echo '$ ls -la' - ls -la ./.cicd/travis-build.sh after_success: - echo '##### CHECKPOINT 3' \ No newline at end of file From b1c6a4c22c6f98bce85a4a8ad32fa61e0729bff5 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 11 Jul 2019 10:16:59 -0400 Subject: [PATCH 033/528] Disable macOS in build matrix --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index d25d8a4943e..6838a20b515 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,8 +8,8 @@ matrix: dist: xenial services: docker env: IMAGE_TAG='ubuntu-18.04' - - os: osx - osx_image: xcode10.2 + # - os: osx + # osx_image: xcode10.2 before_install: | echo '##### CHECKPOINT 1' From 80d7dda9e5a6eefa47804328cbcadd85a83d296a Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 10:21:06 -0400 Subject: [PATCH 034/528] added ubuntu16 to matrix --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index 6838a20b515..b453a6f2235 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,10 @@ matrix: dist: xenial services: docker env: IMAGE_TAG='ubuntu-18.04' + - os: linux + dist: xenial + services: docker + env: env: IMAGE_TAG='ubuntu:16.04' # - os: osx # osx_image: xcode10.2 From 29c906e88f47ee3a0bb906d84613c8ce4fef7d01 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 10:22:16 -0400 Subject: [PATCH 035/528] quick fix --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b453a6f2235..441d92e3ead 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,7 @@ matrix: - os: linux dist: xenial services: docker - env: env: IMAGE_TAG='ubuntu:16.04' + env: IMAGE_TAG='ubuntu:16.04' # - os: osx # osx_image: xcode10.2 From 37367df141d244d3521661f4bb6c3ae584a6f93c Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 10:25:27 -0400 Subject: [PATCH 036/528] added centos-7 and amazonlinux-2 --- .travis.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 441d92e3ead..bd09d662015 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,15 @@ matrix: - os: linux dist: xenial services: docker - env: IMAGE_TAG='ubuntu:16.04' + env: IMAGE_TAG='ubuntu-16.04' + - os: linux + dist: xenial + services: docker + env: IMAGE_TAG='amazonlinux-2' + - os: linux + dist: xenial + services: docker + env: IMAGE_TAG='centos-7' # - os: osx # osx_image: xcode10.2 From 0c729ceed5ceb0de672c3fad5ae2d98f178e4472 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 10:38:50 -0400 Subject: [PATCH 037/528] testing PATH --- .cicd/travis-build.sh | 2 +- .cicd/ubuntu-18.04.dockerfile | 2 -- .travis.yml | 24 ++++++++++++------------ 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 075e627ff1f..3b549279034 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -15,5 +15,5 @@ else # linux echo "$ docker pull eosio/producer:ci-$IMAGE_TAG" docker pull eosio/producer:ci-$IMAGE_TAG echo "docker run --rm -v $(pwd):/eos -v $HOME/.ccache:/usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c \"ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)\"" - docker run --rm -v $(pwd):/eos -v $HOME/.ccache:/usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c "ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" + docker run --rm -v $(pwd):/eos -v $HOME/.ccache:/usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c "echo \$PATH; exit 1; ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file diff --git a/.cicd/ubuntu-18.04.dockerfile b/.cicd/ubuntu-18.04.dockerfile index 6e5b74f8b39..57d4906c867 100644 --- a/.cicd/ubuntu-18.04.dockerfile +++ b/.cicd/ubuntu-18.04.dockerfile @@ -57,8 +57,6 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o && cd / \ && rm -f mongo-cxx-driver-r3.4.0.tar.gz -ENV PATH=/usr/lib/ccache:${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin - # CCACHE RUN apt-get install -y ccache diff --git a/.travis.yml b/.travis.yml index bd09d662015..8ea4ed6d71d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,18 +8,18 @@ matrix: dist: xenial services: docker env: IMAGE_TAG='ubuntu-18.04' - - os: linux - dist: xenial - services: docker - env: IMAGE_TAG='ubuntu-16.04' - - os: linux - dist: xenial - services: docker - env: IMAGE_TAG='amazonlinux-2' - - os: linux - dist: xenial - services: docker - env: IMAGE_TAG='centos-7' + # - os: linux + # dist: xenial + # services: docker + # env: IMAGE_TAG='ubuntu-16.04' + # - os: linux + # dist: xenial + # services: docker + # env: IMAGE_TAG='amazonlinux-2' + # - os: linux + # dist: xenial + # services: docker + # env: IMAGE_TAG='centos-7' # - os: osx # osx_image: xcode10.2 From 052de18ff2002e4d810735595c5a2ec7853790fa Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 10:42:33 -0400 Subject: [PATCH 038/528] testing PATH --- .cicd/travis-build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 3b549279034..6c68589427e 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -14,6 +14,6 @@ else # linux echo 'Detected Linux, building in Docker.' echo "$ docker pull eosio/producer:ci-$IMAGE_TAG" docker pull eosio/producer:ci-$IMAGE_TAG - echo "docker run --rm -v $(pwd):/eos -v $HOME/.ccache:/usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c \"ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)\"" - docker run --rm -v $(pwd):/eos -v $HOME/.ccache:/usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c "echo \$PATH; exit 1; ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" + # echo "docker run --rm -v $(pwd):/eos -v $HOME/.ccache:/usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c \"ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)\"" + docker run --rm -v $(pwd):/eos -v $HOME/.ccache:/usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c "ls -laht /usr/lib/ccache; echo \$PATH; exit 1; ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file From 5b5d9a68b58afc3f3d85d17168274859f2b701f7 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 10:49:51 -0400 Subject: [PATCH 039/528] testing PATH --- .cicd/travis-build.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 6c68589427e..786d53b9bea 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -11,9 +11,10 @@ if [[ "$(uname)" == Darwin ]]; then cmake .. make -j $CPU_CORES else # linux + ls -laht /usr/lib/ccache echo 'Detected Linux, building in Docker.' echo "$ docker pull eosio/producer:ci-$IMAGE_TAG" docker pull eosio/producer:ci-$IMAGE_TAG # echo "docker run --rm -v $(pwd):/eos -v $HOME/.ccache:/usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c \"ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)\"" - docker run --rm -v $(pwd):/eos -v $HOME/.ccache:/usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c "ls -laht /usr/lib/ccache; echo \$PATH; exit 1; ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" + docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c "ls -laht /usr/lib/ccache; echo \$PATH; exit 1; ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file From cfcfd15a415b5552c7b6b6e31eb9858d9109c6b0 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 10:54:14 -0400 Subject: [PATCH 040/528] testing PATH --- .cicd/travis-build.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 786d53b9bea..f04f5acfcce 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -11,10 +11,9 @@ if [[ "$(uname)" == Darwin ]]; then cmake .. make -j $CPU_CORES else # linux - ls -laht /usr/lib/ccache echo 'Detected Linux, building in Docker.' echo "$ docker pull eosio/producer:ci-$IMAGE_TAG" docker pull eosio/producer:ci-$IMAGE_TAG # echo "docker run --rm -v $(pwd):/eos -v $HOME/.ccache:/usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c \"ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)\"" - docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c "ls -laht /usr/lib/ccache; echo \$PATH; exit 1; ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" + docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:\$HOME/.ccache -e CCACHE_DIR=\$HOME/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "pwd && ls -laht \$HOME/.ccache; ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file From 45e2ff7f48b53cc1dff32ce018c123a0618671cb Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 11:01:15 -0400 Subject: [PATCH 041/528] testing ccache fixes --- .cicd/travis-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index f04f5acfcce..6308047c9ad 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -15,5 +15,5 @@ else # linux echo "$ docker pull eosio/producer:ci-$IMAGE_TAG" docker pull eosio/producer:ci-$IMAGE_TAG # echo "docker run --rm -v $(pwd):/eos -v $HOME/.ccache:/usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c \"ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)\"" - docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:\$HOME/.ccache -e CCACHE_DIR=\$HOME/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "pwd && ls -laht \$HOME/.ccache; ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" + docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "ls -laht /opt/.ccache; ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file From 4dd933c18c59f4daa8d5155f775a8ff4748d490f Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 11:12:21 -0400 Subject: [PATCH 042/528] testing ccache fixes --- .cicd/travis-build.sh | 2 +- .travis.yml | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 6308047c9ad..991ee6b49b1 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -15,5 +15,5 @@ else # linux echo "$ docker pull eosio/producer:ci-$IMAGE_TAG" docker pull eosio/producer:ci-$IMAGE_TAG # echo "docker run --rm -v $(pwd):/eos -v $HOME/.ccache:/usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c \"ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)\"" - docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "ls -laht /opt/.ccache; ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" + docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 8ea4ed6d71d..bd09d662015 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,18 +8,18 @@ matrix: dist: xenial services: docker env: IMAGE_TAG='ubuntu-18.04' - # - os: linux - # dist: xenial - # services: docker - # env: IMAGE_TAG='ubuntu-16.04' - # - os: linux - # dist: xenial - # services: docker - # env: IMAGE_TAG='amazonlinux-2' - # - os: linux - # dist: xenial - # services: docker - # env: IMAGE_TAG='centos-7' + - os: linux + dist: xenial + services: docker + env: IMAGE_TAG='ubuntu-16.04' + - os: linux + dist: xenial + services: docker + env: IMAGE_TAG='amazonlinux-2' + - os: linux + dist: xenial + services: docker + env: IMAGE_TAG='centos-7' # - os: osx # osx_image: xcode10.2 From db7f1a9ab0e8ec71a4aed924433165ed68a1ac1a Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 11:19:01 -0400 Subject: [PATCH 043/528] testing centos-7 fix --- .cicd/travis-build.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 991ee6b49b1..2e334ef87a0 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -14,6 +14,7 @@ else # linux echo 'Detected Linux, building in Docker.' echo "$ docker pull eosio/producer:ci-$IMAGE_TAG" docker pull eosio/producer:ci-$IMAGE_TAG + [[ $IMAGE_TAG == centos-7 ]] && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable" # echo "docker run --rm -v $(pwd):/eos -v $HOME/.ccache:/usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c \"ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)\"" - docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" + docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "$PRE_COMMANDS && ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file From fc03730b061b27035fd904f5b9b2bdcef3414d0c Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 11:20:52 -0400 Subject: [PATCH 044/528] testing ubuntu16 extras --- .cicd/travis-build.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 2e334ef87a0..14bccde49b2 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -15,6 +15,7 @@ else # linux echo "$ docker pull eosio/producer:ci-$IMAGE_TAG" docker pull eosio/producer:ci-$IMAGE_TAG [[ $IMAGE_TAG == centos-7 ]] && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable" + [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # echo "docker run --rm -v $(pwd):/eos -v $HOME/.ccache:/usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c \"ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)\"" - docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "$PRE_COMMANDS && ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" + docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "$PRE_COMMANDS && ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file From cafbd484e61500cb55c699bc0e2dd3b0135730eb Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 11:24:27 -0400 Subject: [PATCH 045/528] quick fix --- .cicd/travis-build.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 14bccde49b2..92753cd71b6 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -14,8 +14,10 @@ else # linux echo 'Detected Linux, building in Docker.' echo "$ docker pull eosio/producer:ci-$IMAGE_TAG" docker pull eosio/producer:ci-$IMAGE_TAG - [[ $IMAGE_TAG == centos-7 ]] && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable" - [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" + [[ $IMAGE_TAG == centos-7 ]] \\ + && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" + [[ $IMAGE_TAG == ubuntu-16.04 ]] \ + && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default # echo "docker run --rm -v $(pwd):/eos -v $HOME/.ccache:/usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c \"ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)\"" - docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "$PRE_COMMANDS && ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" + docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "$PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file From fef5913f7de97d0d7e4c01b92e6ecc501e045f8e Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 11:25:57 -0400 Subject: [PATCH 046/528] quick fix --- .cicd/travis-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 92753cd71b6..e6ad89e1e93 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -14,7 +14,7 @@ else # linux echo 'Detected Linux, building in Docker.' echo "$ docker pull eosio/producer:ci-$IMAGE_TAG" docker pull eosio/producer:ci-$IMAGE_TAG - [[ $IMAGE_TAG == centos-7 ]] \\ + [[ $IMAGE_TAG == centos-7 ]] \ && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" [[ $IMAGE_TAG == ubuntu-16.04 ]] \ && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default From b5f9c4cfe1483b776477bdc8859b0c11f11d31a4 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 11:33:58 -0400 Subject: [PATCH 047/528] export for ccache --- .cicd/amazonlinux-2.dockerfile | 2 +- .cicd/centos-7.dockerfile | 2 +- .cicd/travis-build.sh | 3 ++- .cicd/ubuntu-16.04.dockerfile | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.cicd/amazonlinux-2.dockerfile b/.cicd/amazonlinux-2.dockerfile index 68916d8c1dd..fb6f178cdb2 100644 --- a/.cicd/amazonlinux-2.dockerfile +++ b/.cicd/amazonlinux-2.dockerfile @@ -66,7 +66,7 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o && cd / \ && rm -f mongo-cxx-driver-r3.4.0.tar.gz -ENV PATH=/usr/lib/ccache:${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin +ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin # CCACHE RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm \ diff --git a/.cicd/centos-7.dockerfile b/.cicd/centos-7.dockerfile index 64e6bc393f4..8d6823474f3 100644 --- a/.cicd/centos-7.dockerfile +++ b/.cicd/centos-7.dockerfile @@ -78,7 +78,7 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o && cd / \ && rm -f mongo-cxx-driver-r3.4.0.tar.gz -ENV PATH=/usr/lib/ccache:${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin +ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin # CCACHE RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm \ diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index e6ad89e1e93..72c3a9b02e6 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -19,5 +19,6 @@ else # linux [[ $IMAGE_TAG == ubuntu-16.04 ]] \ && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default # echo "docker run --rm -v $(pwd):/eos -v $HOME/.ccache:/usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c \"ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)\"" - docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "$PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" + EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) + docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "$PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file diff --git a/.cicd/ubuntu-16.04.dockerfile b/.cicd/ubuntu-16.04.dockerfile index eef66bdc14c..e3785c43fa9 100644 --- a/.cicd/ubuntu-16.04.dockerfile +++ b/.cicd/ubuntu-16.04.dockerfile @@ -73,7 +73,7 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o && cd / \ && rm -f mongo-cxx-driver-r3.4.0.tar.gz -ENV PATH=/usr/lib/ccache:${PATH}:/mongodb-linux-x86_64-ubuntu1604-3.6.3/bin +ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1604-3.6.3/bin # CCACHE RUN apt-get install -y ccache \ No newline at end of file From ef6496f884ab224c1f1cb1548af5919f78483822 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 12:11:01 -0400 Subject: [PATCH 048/528] fixes --- .cicd/travis-build.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 72c3a9b02e6..73d7889b5bc 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -14,11 +14,11 @@ else # linux echo 'Detected Linux, building in Docker.' echo "$ docker pull eosio/producer:ci-$IMAGE_TAG" docker pull eosio/producer:ci-$IMAGE_TAG + # Per distro additions to docker command [[ $IMAGE_TAG == centos-7 ]] \ && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" [[ $IMAGE_TAG == ubuntu-16.04 ]] \ - && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default - # echo "docker run --rm -v $(pwd):/eos -v $HOME/.ccache:/usr/lib/ccache -e CCACHE_DIR=/usr/lib/ccache eosio/producer:ci-$IMAGE_TAG bash -c \"ccache -s && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)\"" - EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) + && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='c'" # Explicitly set to clang else it will try and use gcc that's installed by default + ( [[ $IMAGE_TAG == amazonlinux-2 ]] || [[ $IMAGE_TAG == centos-7 ]] ) && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "$PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file From 81193274a25300b3f2ccc69b1f4266157855c81d Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 12:24:09 -0400 Subject: [PATCH 049/528] fixes for centos7 --- .cicd/travis-build.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 73d7889b5bc..6d4a193df8c 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -14,11 +14,14 @@ else # linux echo 'Detected Linux, building in Docker.' echo "$ docker pull eosio/producer:ci-$IMAGE_TAG" docker pull eosio/producer:ci-$IMAGE_TAG + # Per distro additions to docker command [[ $IMAGE_TAG == centos-7 ]] \ - && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" + && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" \ + && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='gcc' -DCMAKE_C_COMPILER='cc'" [[ $IMAGE_TAG == ubuntu-16.04 ]] \ - && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='c'" # Explicitly set to clang else it will try and use gcc that's installed by default + && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default ( [[ $IMAGE_TAG == amazonlinux-2 ]] || [[ $IMAGE_TAG == centos-7 ]] ) && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) + docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "$PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file From e56371bef05a94d8f2e2af3fdb8ceed26c1ed849 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 12:39:43 -0400 Subject: [PATCH 050/528] fixes for centos7 and ubuntu16 not having their compiler symlinks under /usr/lib --- .cicd/centos-7.dockerfile | 4 +++- .cicd/travis-build.sh | 3 +-- .cicd/ubuntu-16.04.dockerfile | 4 +++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.cicd/centos-7.dockerfile b/.cicd/centos-7.dockerfile index 8d6823474f3..066199313f5 100644 --- a/.cicd/centos-7.dockerfile +++ b/.cicd/centos-7.dockerfile @@ -82,4 +82,6 @@ ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin # CCACHE RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm \ - && yum install -y ccache-3.3.4-1.el7.x86_64.rpm \ No newline at end of file + && yum install -y ccache-3.3.4-1.el7.x86_64.rpm +## Needed as devtoolset uses c++ and it's not in ccache by default +RUN cd /usr/lib64/ccache && ln -s ../../bin/ccache c++ \ No newline at end of file diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 6d4a193df8c..8abc7521ba0 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -17,8 +17,7 @@ else # linux # Per distro additions to docker command [[ $IMAGE_TAG == centos-7 ]] \ - && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" \ - && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='gcc' -DCMAKE_C_COMPILER='cc'" + && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" [[ $IMAGE_TAG == ubuntu-16.04 ]] \ && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default ( [[ $IMAGE_TAG == amazonlinux-2 ]] || [[ $IMAGE_TAG == centos-7 ]] ) && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) diff --git a/.cicd/ubuntu-16.04.dockerfile b/.cicd/ubuntu-16.04.dockerfile index e3785c43fa9..90a463a901c 100644 --- a/.cicd/ubuntu-16.04.dockerfile +++ b/.cicd/ubuntu-16.04.dockerfile @@ -76,4 +76,6 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1604-3.6.3/bin # CCACHE -RUN apt-get install -y ccache \ No newline at end of file +RUN apt-get install -y ccache +## Needed as devtoolset uses c++ and it's not in ccache by default +RUN cd /usr/lib64/ccache && ln -s ../../bin/ccache clang++ && ln -s ../../bin/ccache clang \ No newline at end of file From f3b9197be39260fc9936a367bc6c20cee49cbcf5 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 12:42:09 -0400 Subject: [PATCH 051/528] symlink fix --- .cicd/ubuntu-16.04.dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/ubuntu-16.04.dockerfile b/.cicd/ubuntu-16.04.dockerfile index 90a463a901c..323239208fc 100644 --- a/.cicd/ubuntu-16.04.dockerfile +++ b/.cicd/ubuntu-16.04.dockerfile @@ -78,4 +78,4 @@ ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1604-3.6.3/bin # CCACHE RUN apt-get install -y ccache ## Needed as devtoolset uses c++ and it's not in ccache by default -RUN cd /usr/lib64/ccache && ln -s ../../bin/ccache clang++ && ln -s ../../bin/ccache clang \ No newline at end of file +RUN cd /usr/lib/ccache && ln -s ../../bin/ccache clang++ && ln -s ../../bin/ccache clang \ No newline at end of file From cbbb463d7f5649e257b9f664fd3e9add4116473f Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 12:44:57 -0400 Subject: [PATCH 052/528] amazonlinux2 clang compiler --- .cicd/travis-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 8abc7521ba0..28794de8455 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -18,7 +18,7 @@ else # linux # Per distro additions to docker command [[ $IMAGE_TAG == centos-7 ]] \ && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" - [[ $IMAGE_TAG == ubuntu-16.04 ]] \ + [[ $IMAGE_TAG == ubuntu-16.04 ]] || [[ $IMAGE_TAG == amazonlinux-2 ]] \ && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default ( [[ $IMAGE_TAG == amazonlinux-2 ]] || [[ $IMAGE_TAG == centos-7 ]] ) && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) From 4eed44973c9e69fa20747e8da90391c15ae2b83a Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 12:46:15 -0400 Subject: [PATCH 053/528] cleanup --- .cicd/travis-build.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 28794de8455..b673dddd352 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -21,6 +21,7 @@ else # linux [[ $IMAGE_TAG == ubuntu-16.04 ]] || [[ $IMAGE_TAG == amazonlinux-2 ]] \ && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default ( [[ $IMAGE_TAG == amazonlinux-2 ]] || [[ $IMAGE_TAG == centos-7 ]] ) && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) - + + # DOCKER docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "$PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file From 9cfff4a70a377a4e797c2525f5b37ad1ca6b627c Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 13:15:34 -0400 Subject: [PATCH 054/528] CCACHE_PATH --- .cicd/centos-7.dockerfile | 4 +++- .cicd/ubuntu-16.04.dockerfile | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.cicd/centos-7.dockerfile b/.cicd/centos-7.dockerfile index 066199313f5..95048b5361c 100644 --- a/.cicd/centos-7.dockerfile +++ b/.cicd/centos-7.dockerfile @@ -84,4 +84,6 @@ ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm \ && yum install -y ccache-3.3.4-1.el7.x86_64.rpm ## Needed as devtoolset uses c++ and it's not in ccache by default -RUN cd /usr/lib64/ccache && ln -s ../../bin/ccache c++ \ No newline at end of file +RUN cd /usr/lib64/ccache && ln -s ../../bin/ccache c++ +## We need to tell ccache to actually use devtoolset-8 instead of the default system one (ccache resets anything set in PATH when it launches) +ENV CCACHE_PATH="/opt/rh/devtoolset-8/root/usr/bin" \ No newline at end of file diff --git a/.cicd/ubuntu-16.04.dockerfile b/.cicd/ubuntu-16.04.dockerfile index 323239208fc..ec8552b883f 100644 --- a/.cicd/ubuntu-16.04.dockerfile +++ b/.cicd/ubuntu-16.04.dockerfile @@ -78,4 +78,6 @@ ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1604-3.6.3/bin # CCACHE RUN apt-get install -y ccache ## Needed as devtoolset uses c++ and it's not in ccache by default -RUN cd /usr/lib/ccache && ln -s ../../bin/ccache clang++ && ln -s ../../bin/ccache clang \ No newline at end of file +RUN cd /usr/lib/ccache && ln -s ../../bin/ccache clang++ && ln -s ../../bin/ccache clang +## We need to tell ccache to actually use devtoolset-8 instead of the default system one (ccache resets anything set in PATH when it launches) +ENV CCACHE_PATH="/usr/local/bin" \ No newline at end of file From 7dff05a0cf0b3e8596d12985544a2aab9329d250 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 13:20:42 -0400 Subject: [PATCH 055/528] cleanup --- .cicd/travis-build.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index b673dddd352..fbe6996c7a8 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -21,7 +21,6 @@ else # linux [[ $IMAGE_TAG == ubuntu-16.04 ]] || [[ $IMAGE_TAG == amazonlinux-2 ]] \ && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default ( [[ $IMAGE_TAG == amazonlinux-2 ]] || [[ $IMAGE_TAG == centos-7 ]] ) && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) - # DOCKER docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "$PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file From 87a956e27e847e684dc7524cbb972be52ece583a Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 13:46:13 -0400 Subject: [PATCH 056/528] pin compiler fix for ubuntu16 --- .cicd/travis-build.sh | 3 ++- .cicd/ubuntu-16.04.dockerfile | 7 ++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index fbe6996c7a8..24ea0a4cbd1 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -18,8 +18,9 @@ else # linux # Per distro additions to docker command [[ $IMAGE_TAG == centos-7 ]] \ && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" - [[ $IMAGE_TAG == ubuntu-16.04 ]] || [[ $IMAGE_TAG == amazonlinux-2 ]] \ + ([[ $IMAGE_TAG == ubuntu-16.04 ]] || [[ $IMAGE_TAG == amazonlinux-2 ]] ) \ && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default + [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS DCMAKE_TOOLCHAIN_FILE='/home/cicd/eos/scripts/../build/pinned_toolchain.cmake" ( [[ $IMAGE_TAG == amazonlinux-2 ]] || [[ $IMAGE_TAG == centos-7 ]] ) && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) # DOCKER docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "$PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" diff --git a/.cicd/ubuntu-16.04.dockerfile b/.cicd/ubuntu-16.04.dockerfile index ec8552b883f..e362f569369 100644 --- a/.cicd/ubuntu-16.04.dockerfile +++ b/.cicd/ubuntu-16.04.dockerfile @@ -1,6 +1,5 @@ FROM ubuntu:16.04 -COPY ./clang-devtoolset8-support.patch /tmp/clang-devtoolset8-support.patch COPY ./pinned_toolchain.cmake /tmp/pinned_toolchain.cmake # APT-GET dependencies. @@ -21,7 +20,7 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz \ && rm -f cmake-3.13.2.tar.gz # Build appropriate version of Clang. -RUN mkdir -p /root/tmp && cd /root/tmp && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && patch -p2 < "/tmp/clang-devtoolset8-support.patch" && cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && cd .. && cd ../../../../projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && cd ../ && cd /root/tmp/clang8 && mkdir build && cd build && cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=all -DCMAKE_BUILD_TYPE=Release .. && make -j$(nproc) && make install \ +RUN mkdir -p /root/tmp && cd /root/tmp && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && cd .. && cd ../../../../projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && cd ../ && cd /root/tmp/clang8 && mkdir build && cd build && cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=all -DCMAKE_BUILD_TYPE=Release .. && make -j$(nproc) && make install \ && cd / # # Build appropriate version of LLVM. @@ -78,6 +77,4 @@ ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1604-3.6.3/bin # CCACHE RUN apt-get install -y ccache ## Needed as devtoolset uses c++ and it's not in ccache by default -RUN cd /usr/lib/ccache && ln -s ../../bin/ccache clang++ && ln -s ../../bin/ccache clang -## We need to tell ccache to actually use devtoolset-8 instead of the default system one (ccache resets anything set in PATH when it launches) -ENV CCACHE_PATH="/usr/local/bin" \ No newline at end of file +RUN cd /usr/lib/ccache && ln -s ../../bin/ccache clang++ && ln -s ../../bin/ccache clang \ No newline at end of file From cd4523d5995e8670198a8314be90c76f48bcba80 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Thu, 11 Jul 2019 13:48:51 -0400 Subject: [PATCH 057/528] Modified local test scripts to run ctest. --- .cicd/eosio_build_a2.sh | 2 +- .cicd/eosio_build_c7.sh | 2 +- .cicd/eosio_build_u16.sh | 2 +- .cicd/eosio_build_u18.sh | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.cicd/eosio_build_a2.sh b/.cicd/eosio_build_a2.sh index 0dcdcd5f5ad..a477a9511aa 100755 --- a/.cicd/eosio_build_a2.sh +++ b/.cicd/eosio_build_a2.sh @@ -8,6 +8,6 @@ cd eos git checkout release/1.8.x git submodule update --init --recursive -docker run --rm -v $(pwd):/eos eosio/producer:ci-amazonlinux-2 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j$(nproc)" +docker run --rm -v $(pwd):/eos eosio/producer:ci-amazonlinux-2 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j6 && mkdir -p /eos/data/mongodb && mongod --fork --dbpath /eos/data/mongodb -f /eos/scripts/mongod.conf --logpath /eos/mongod.log && ctest -j 8 -LE _tests --output-on-failure -T Test" cd .. && rm -rf eos \ No newline at end of file diff --git a/.cicd/eosio_build_c7.sh b/.cicd/eosio_build_c7.sh index 3992fc5762b..498a78a7f00 100755 --- a/.cicd/eosio_build_c7.sh +++ b/.cicd/eosio_build_c7.sh @@ -8,6 +8,6 @@ cd eos git checkout release/1.8.x git submodule update --init --recursive -docker run --rm -v $(pwd):/eos eosio/producer:ci-centos-7 bash -c "source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j$(nproc)" +docker run --rm -v $(pwd):/eos eosio/producer:ci-centos-7 bash -c "source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j6 && mkdir -p /eos/data/mongodb && mongod --fork --dbpath /eos/data/mongodb -f /eos/scripts/mongod.conf --logpath /eos/mongod.log && ctest -j 8 -LE _tests --output-on-failure -T Test" cd .. && rm -rf eos \ No newline at end of file diff --git a/.cicd/eosio_build_u16.sh b/.cicd/eosio_build_u16.sh index 28b051374eb..028ccaac60f 100755 --- a/.cicd/eosio_build_u16.sh +++ b/.cicd/eosio_build_u16.sh @@ -8,6 +8,6 @@ cd eos git checkout release/1.8.x git submodule update --init --recursive -docker run --rm -v $(pwd):/eos eosio/producer:ci-ubuntu-16.04 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' /eos && make -j$(nproc)" +docker run --rm -v $(pwd):/eos eosio/producer:ci-ubuntu-16.04 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' /eos && make -j6 && mkdir -p /eos/data/mongodb && mongod --fork --dbpath /eos/data/mongodb -f /eos/scripts/mongod.conf --logpath /eos/mongod.log && ctest -j 8 -LE _tests --output-on-failure -T Test" cd .. && rm -rf eos \ No newline at end of file diff --git a/.cicd/eosio_build_u18.sh b/.cicd/eosio_build_u18.sh index a0d79f07ad3..1ae903f7b36 100755 --- a/.cicd/eosio_build_u18.sh +++ b/.cicd/eosio_build_u18.sh @@ -8,6 +8,6 @@ cd eos git checkout release/1.8.x git submodule update --init --recursive -docker run --rm -v $(pwd):/eos eosio/producer:ci-ubuntu-18.04 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j$(nproc)" +docker run --rm -v $(pwd):/eos eosio/producer:ci-ubuntu-18.04 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j6 && mkdir -p /eos/data/mongodb && mongod --fork --dbpath /eos/data/mongodb -f /eos/scripts/mongod.conf --logpath /eos/mongod.log && ctest -j 8 -LE _tests --output-on-failure -T Test" cd .. && rm -rf eos \ No newline at end of file From 56143547ba1531466fb8c52595eec8ee6ede6686 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 11 Jul 2019 13:53:33 -0400 Subject: [PATCH 058/528] Created travis-before.sh script --- .cicd/travis-before.sh | 8 ++++++++ .travis.yml | 21 +++------------------ 2 files changed, 11 insertions(+), 18 deletions(-) create mode 100755 .cicd/travis-before.sh diff --git a/.cicd/travis-before.sh b/.cicd/travis-before.sh new file mode 100755 index 00000000000..1d2cc2254bb --- /dev/null +++ b/.cicd/travis-before.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -e +# print information about host resources +echo '===== RESOURCES =====' +echo "$(getconf _NPROCESSORS_ONLN) CPU cores found." +if [[ "$(uname)" == Darwin ]]; then top -l 1 -s 0 | grep PhysMem; else vmstat -sSM | grep -i 'memory'; fi +df -h +echo '=====================' \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 6838a20b515..6669cef9bcc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,35 +2,20 @@ language: cpp git: depth: false # prevent git describe failure when executing the appbase version.cmake.in cache: ccache -matrix: - include: - - os: linux - dist: xenial - services: docker - env: IMAGE_TAG='ubuntu-18.04' - # - os: osx - # osx_image: xcode10.2 - +os: osx +osx_image: xcode10.2 before_install: | - echo '##### CHECKPOINT 1' - echo '===== RESOURCES =====' - echo "$(getconf _NPROCESSORS_ONLN) CPU cores found." - if [[ "$(uname)" == Darwin ]]; then top -l 1 -s 0 | grep PhysMem; else vmstat -sSM | grep -i 'memory'; fi - df -h - echo '=====================' + ./.cicd/travis-before.sh # DOCKER # script: -# - echo '##### CHECKPOINT 2' # # - docker build -t eosio/ci:ubuntu-18.04 -f ./.cicd/ubuntu-18.04.dockerfile . # - docker build -t eosio/producer:ci-ubuntu-18.04 -f ./.cicd/ubuntu-18.04.dockerfile . # after_success: -# - echo '##### CHECKPOINT 3' # - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin # # - docker push eosio/ci:ubuntu-18.04 # - docker push eosio/producer:ci-ubuntu-18.04 # EOSIO script: | - echo '##### CHECKPOINT 2' ./.cicd/travis-build.sh after_success: - echo '##### CHECKPOINT 3' \ No newline at end of file From 005802360e575702da8f3656a72183d5cf4293e9 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 11 Jul 2019 13:54:14 -0400 Subject: [PATCH 059/528] Declared dependencies as homebrew packages in YAML --- .travis.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.travis.yml b/.travis.yml index 6669cef9bcc..83cdab5ade4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,22 @@ git: cache: ccache os: osx osx_image: xcode10.2 +addons: + homebrew: + packages: + # - cmake + - graphviz + - libtool + # - automake + # - wget + - gmp + - llvm@4 + - pkgconfig + - python + - python@2 + - doxygen + - libusb + - openssl before_install: | ./.cicd/travis-before.sh # DOCKER From 85238256876d741abbc4378cc2de35bdcde8a7f0 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 13:55:38 -0400 Subject: [PATCH 060/528] pin compiler fix for ubuntu16 --- .cicd/travis-build.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 24ea0a4cbd1..18616d0eac9 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -20,7 +20,8 @@ else # linux && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" ([[ $IMAGE_TAG == ubuntu-16.04 ]] || [[ $IMAGE_TAG == amazonlinux-2 ]] ) \ && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default - [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS DCMAKE_TOOLCHAIN_FILE='/home/cicd/eos/scripts/../build/pinned_toolchain.cmake" + ## Ubuntu 16 is pinned only + [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS DCMAKE_TOOLCHAIN_FILE='/home/cicd/eos/scripts/../build/pinned_toolchain.cmake'" ( [[ $IMAGE_TAG == amazonlinux-2 ]] || [[ $IMAGE_TAG == centos-7 ]] ) && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) # DOCKER docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "$PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" From 10c04783e32f38e9083c4f0054f70f331a6da952 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 14:47:21 -0400 Subject: [PATCH 061/528] pin compiler fix for ubuntu16 --- .cicd/travis-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 18616d0eac9..d3ff692d83c 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -21,7 +21,7 @@ else # linux ([[ $IMAGE_TAG == ubuntu-16.04 ]] || [[ $IMAGE_TAG == amazonlinux-2 ]] ) \ && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default ## Ubuntu 16 is pinned only - [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS DCMAKE_TOOLCHAIN_FILE='/home/cicd/eos/scripts/../build/pinned_toolchain.cmake'" + [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake'" ( [[ $IMAGE_TAG == amazonlinux-2 ]] || [[ $IMAGE_TAG == centos-7 ]] ) && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) # DOCKER docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "$PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" From a2334442e60601ee15196b556b463fd96c014701 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Thu, 11 Jul 2019 14:51:39 -0400 Subject: [PATCH 062/528] Added mongo to path. --- .cicd/ubuntu-18.04.dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.cicd/ubuntu-18.04.dockerfile b/.cicd/ubuntu-18.04.dockerfile index 57d4906c867..4ff9ac94573 100644 --- a/.cicd/ubuntu-18.04.dockerfile +++ b/.cicd/ubuntu-18.04.dockerfile @@ -60,6 +60,8 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o # CCACHE RUN apt-get install -y ccache +ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin + # Git clone, checkout, and submodule update. # Make build directory. # mkdir /eos/build From cb1756e72d4937d8310b5b3f682349d756e0ca64 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Thu, 11 Jul 2019 15:07:20 -0400 Subject: [PATCH 063/528] Added dash for toolchain file arg. --- .cicd/travis-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index d3ff692d83c..ad7a5f3875c 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -21,7 +21,7 @@ else # linux ([[ $IMAGE_TAG == ubuntu-16.04 ]] || [[ $IMAGE_TAG == amazonlinux-2 ]] ) \ && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default ## Ubuntu 16 is pinned only - [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake'" + [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake'" ( [[ $IMAGE_TAG == amazonlinux-2 ]] || [[ $IMAGE_TAG == centos-7 ]] ) && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) # DOCKER docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "$PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" From 609a5f16218b11ea7d4188c868415a57433ab452 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Thu, 11 Jul 2019 15:26:13 -0400 Subject: [PATCH 064/528] Removing ccache to test U16 build. --- .cicd/travis-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index ad7a5f3875c..bad541422cf 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -24,5 +24,5 @@ else # linux [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake'" ( [[ $IMAGE_TAG == amazonlinux-2 ]] || [[ $IMAGE_TAG == centos-7 ]] ) && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) # DOCKER - docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "$PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" + docker run --rm -v $(pwd):/eos eosio/producer:ci-$IMAGE_TAG bash -c "$PRE_COMMANDS mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file From 69456d2726d0289694669eaa70b572dc3090b25f Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Thu, 11 Jul 2019 15:28:47 -0400 Subject: [PATCH 065/528] Removing ccache to test U16 build. --- .cicd/travis-build.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index bad541422cf..d5229faab49 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -22,7 +22,6 @@ else # linux && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default ## Ubuntu 16 is pinned only [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake'" - ( [[ $IMAGE_TAG == amazonlinux-2 ]] || [[ $IMAGE_TAG == centos-7 ]] ) && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) # DOCKER docker run --rm -v $(pwd):/eos eosio/producer:ci-$IMAGE_TAG bash -c "$PRE_COMMANDS mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file From e858029169bc5c77c1a99da2579a588b33a3b02c Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 11 Jul 2019 15:37:52 -0400 Subject: [PATCH 066/528] Added boost to list of dependencies --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 83cdab5ade4..f1ab2c9da45 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,6 +20,7 @@ addons: - doxygen - libusb - openssl + - boost before_install: | ./.cicd/travis-before.sh # DOCKER From 6c677dd59857f4087093ca871788c514b4dae100 Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Thu, 11 Jul 2019 15:52:03 -0400 Subject: [PATCH 067/528] sets cache name uniquely for docker builds --- .travis.yml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index bd09d662015..e6e28ed9bff 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,19 +7,27 @@ matrix: - os: linux dist: xenial services: docker - env: IMAGE_TAG='ubuntu-18.04' + env: + - IMAGE_TAG='ubuntu-18.04' + - CACHE_NAME='ubuntu-18.04' - os: linux dist: xenial services: docker - env: IMAGE_TAG='ubuntu-16.04' + env: + - IMAGE_TAG='ubuntu-16.04' + - CACHE_NAME='ubuntu-16.04' - os: linux dist: xenial services: docker - env: IMAGE_TAG='amazonlinux-2' + env: + - IMAGE_TAG='amazonlinux-2' + - CACHE_NAME='amazonlinux-2' - os: linux dist: xenial services: docker - env: IMAGE_TAG='centos-7' + env: + - IMAGE_TAG='centos-7' + - CACHE_NAME='centos-7' # - os: osx # osx_image: xcode10.2 From 1c6bc14f4b224e9dce011052794c5b8177e9ee52 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 16:14:46 -0400 Subject: [PATCH 068/528] CCACHE NAME Doesn't work --- .cicd/travis-build.sh | 2 +- .travis.yml | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index ad7a5f3875c..bcb1c01f319 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -24,5 +24,5 @@ else # linux [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake'" ( [[ $IMAGE_TAG == amazonlinux-2 ]] || [[ $IMAGE_TAG == centos-7 ]] ) && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) # DOCKER - docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "$PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" + docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "echo \$CXX && echo \$CC && $PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index e6e28ed9bff..ce4aeebb44e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,25 +9,21 @@ matrix: services: docker env: - IMAGE_TAG='ubuntu-18.04' - - CACHE_NAME='ubuntu-18.04' - os: linux dist: xenial services: docker env: - IMAGE_TAG='ubuntu-16.04' - - CACHE_NAME='ubuntu-16.04' - os: linux dist: xenial services: docker env: - IMAGE_TAG='amazonlinux-2' - - CACHE_NAME='amazonlinux-2' - os: linux dist: xenial services: docker env: - IMAGE_TAG='centos-7' - - CACHE_NAME='centos-7' # - os: osx # osx_image: xcode10.2 From f0a532dca924d671f8891dab2926faf9f70073c7 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Thu, 11 Jul 2019 16:27:00 -0400 Subject: [PATCH 069/528] Removed hard specify clang for U16 and AL2. --- .cicd/travis-build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index bcb1c01f319..bf0e46e4d73 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -18,8 +18,8 @@ else # linux # Per distro additions to docker command [[ $IMAGE_TAG == centos-7 ]] \ && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" - ([[ $IMAGE_TAG == ubuntu-16.04 ]] || [[ $IMAGE_TAG == amazonlinux-2 ]] ) \ - && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default + # ([[ $IMAGE_TAG == ubuntu-16.04 ]] || [[ $IMAGE_TAG == amazonlinux-2 ]] ) \ + # && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default ## Ubuntu 16 is pinned only [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake'" ( [[ $IMAGE_TAG == amazonlinux-2 ]] || [[ $IMAGE_TAG == centos-7 ]] ) && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) From f236289c5a23f0da86bdb5f21adccdd2ab6c6a60 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 11 Jul 2019 16:36:57 -0400 Subject: [PATCH 070/528] clang8 removal to limit size of docker image --- .cicd/ubuntu-16.04.dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/ubuntu-16.04.dockerfile b/.cicd/ubuntu-16.04.dockerfile index e362f569369..4d43c7cdc81 100644 --- a/.cicd/ubuntu-16.04.dockerfile +++ b/.cicd/ubuntu-16.04.dockerfile @@ -21,7 +21,7 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz \ # Build appropriate version of Clang. RUN mkdir -p /root/tmp && cd /root/tmp && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && cd .. && cd ../../../../projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && cd ../ && cd /root/tmp/clang8 && mkdir build && cd build && cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=all -DCMAKE_BUILD_TYPE=Release .. && make -j$(nproc) && make install \ - && cd / + && cd / && rm -rf /root/tmp/clang8 # # Build appropriate version of LLVM. RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm \ From b03374d2fa8b7f9623b549d191ff18be62b4d52d Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 11 Jul 2019 16:37:54 -0400 Subject: [PATCH 071/528] Specify boost version to use --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f1ab2c9da45..b98b06f4a03 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ addons: - doxygen - libusb - openssl - - boost + - boost@1.70 before_install: | ./.cicd/travis-before.sh # DOCKER From 5ae994082be5db8853cd0ef1ae9a61302ee93d10 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Thu, 11 Jul 2019 16:43:59 -0400 Subject: [PATCH 072/528] Amazon linux requires clang flags. --- .cicd/travis-build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index bf0e46e4d73..4903ee7705c 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -18,8 +18,8 @@ else # linux # Per distro additions to docker command [[ $IMAGE_TAG == centos-7 ]] \ && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" - # ([[ $IMAGE_TAG == ubuntu-16.04 ]] || [[ $IMAGE_TAG == amazonlinux-2 ]] ) \ - # && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default + [[ $IMAGE_TAG == amazonlinux-2 ]] \ + && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default ## Ubuntu 16 is pinned only [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake'" ( [[ $IMAGE_TAG == amazonlinux-2 ]] || [[ $IMAGE_TAG == centos-7 ]] ) && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) From eebeb16f817ddaa7a96ef8559b1edfaeea53d433 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 11 Jul 2019 16:57:02 -0400 Subject: [PATCH 073/528] Update homebrew to get the latest boost --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index b98b06f4a03..5c1cce58c5b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,7 @@ os: osx osx_image: xcode10.2 addons: homebrew: + update: true packages: # - cmake - graphviz From c654f6de3a9ff5a50558b930539b257bfa673f95 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 11 Jul 2019 17:44:17 -0400 Subject: [PATCH 074/528] Remove dependencies already installed by Travis CI --- .travis.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5c1cce58c5b..b34a982b80f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,11 +8,8 @@ addons: homebrew: update: true packages: - # - cmake - graphviz - libtool - # - automake - # - wget - gmp - llvm@4 - pkgconfig From ab6481452740b7516e7549e2bd3394f6a9f7f686 Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Thu, 11 Jul 2019 17:58:38 -0400 Subject: [PATCH 075/528] adds brew cache for mac --- .cicd/travis-before-cache.sh | 5 +++++ .cicd/{travis-before.sh => travis-before-install.sh} | 0 .travis.yml | 9 +++++++-- 3 files changed, 12 insertions(+), 2 deletions(-) create mode 100755 .cicd/travis-before-cache.sh rename .cicd/{travis-before.sh => travis-before-install.sh} (100%) diff --git a/.cicd/travis-before-cache.sh b/.cicd/travis-before-cache.sh new file mode 100755 index 00000000000..2b31853a04b --- /dev/null +++ b/.cicd/travis-before-cache.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +if [[ "$(uname)" == Darwin ]]; then + brew cleanup +fi diff --git a/.cicd/travis-before.sh b/.cicd/travis-before-install.sh similarity index 100% rename from .cicd/travis-before.sh rename to .cicd/travis-before-install.sh diff --git a/.travis.yml b/.travis.yml index 4de25a0721b..589f4318bff 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,10 @@ language: cpp git: depth: false # prevent git describe failure when executing the appbase version.cmake.in -cache: ccache +cache: + ccache: true + directories: + - $HOME/Library/Caches/Homebrew matrix: include: - os: linux @@ -37,8 +40,10 @@ matrix: - libusb - openssl - boost@1.70 +before_cache: | + ./.cicd/travis-before-cache.sh before_install: | - ./.cicd/travis-before.sh + ./.cicd/travis-before-install.sh # DOCKER # script: # # - docker build -t eosio/ci:ubuntu-18.04 -f ./.cicd/ubuntu-18.04.dockerfile . From 6e85795b140fb3871a91cba181af2118562b2308 Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Thu, 11 Jul 2019 20:32:39 -0400 Subject: [PATCH 076/528] buildplskthxbai From f05813374f0ec61979c1a044f6b7ba51d885cd80 Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Thu, 11 Jul 2019 21:15:38 -0400 Subject: [PATCH 077/528] adds ccache directory --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 589f4318bff..ab00a49e085 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,7 @@ cache: ccache: true directories: - $HOME/Library/Caches/Homebrew + - $HOME/.ccache matrix: include: - os: linux From d6974a71678a68274f4c64547ed9823544540426 Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Fri, 12 Jul 2019 05:55:54 -0400 Subject: [PATCH 078/528] buildplskthxbai From dc46277c6c4dda924468dc908085edcc595a748e Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Fri, 12 Jul 2019 08:38:31 -0400 Subject: [PATCH 079/528] adds webhook for metrics collection --- .travis.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index ab00a49e085..e3eda191b8f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -56,5 +56,6 @@ before_install: | # EOSIO script: | ./.cicd/travis-build.sh -after_success: -- echo '##### CHECKPOINT 3' \ No newline at end of file +notifications: + webhooks: + secure: gmqODqoFAil2cR7v++ibqRNECBOSD/VJX+2qPa7XptkVWmVMzbII5CNgBQAscjFsp9arHPMXCCzkBi847PCSiHdsnYFQ4T273FLRWr3cDbLjfmR+BJ7dGKvQnlpSi2Ze2TtAPJyRl+iv+cxDj7cWE5zw2c4xbgh1a/cNO+/ayUfFkyMEIfVWRsHkdkra4gOLywou0XRLHr4CX1V60uU7uuqATnIMMi7gQYwiKKtZqjkbf8wcBvZirDhjQ6lDPN5tnZo6L4QHmqjtzNJg/UrD4h+zES53dLVI4uxlXRAwwpw+mJOFA3QE/3FT+bMQjLCffUz4gZaWcdgebPYzrwSWUbJoFdWAOwcTqivQY0FIQzcz/r6uGWcwWTavzkPEbg68BVM2BZId/0110J6feeTkpJ3MPV+UsIoGTvbg50vi/I06icftuZ/cLqDj3+Emifm7Jlr1sRTSdqtYAJj/2ImUfsb46cwgjAVhFOTvc+KuPgJQgvOXV7bZkxEr5qDWo8Al2sV8BWb83j1rMlZ4LfERokImDVqxu2kkcunchzvhtYFTesSpmwegVpwceCtOtO0rEUgATnfTEHzk2rm8nuz4UtidsQnluUKqmKD0QCqHXFfn+3ZRJsDqr+iCYdxv1BAeAVc9q1L7bgrKDMGiJgkxuhZ2v3J2SflWLvjZjFDduuc= From bdba0464bdc78bf3d5723c44aebc3acde61bc92e Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Fri, 12 Jul 2019 08:42:21 -0400 Subject: [PATCH 080/528] adds opt/ccache for linux --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index e3eda191b8f..9660f8f5822 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,7 @@ cache: directories: - $HOME/Library/Caches/Homebrew - $HOME/.ccache + - /opt/.ccache matrix: include: - os: linux From baed723f171e873cd425d93f25952a58c79a67b1 Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Fri, 12 Jul 2019 09:38:26 -0400 Subject: [PATCH 081/528] fixes ccache --- .cicd/travis-build.sh | 8 ++++---- .travis.yml | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index d5229faab49..cca429a3341 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -15,13 +15,13 @@ else # linux echo "$ docker pull eosio/producer:ci-$IMAGE_TAG" docker pull eosio/producer:ci-$IMAGE_TAG - # Per distro additions to docker command + # Per distro additions to docker command [[ $IMAGE_TAG == centos-7 ]] \ && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" - ([[ $IMAGE_TAG == ubuntu-16.04 ]] || [[ $IMAGE_TAG == amazonlinux-2 ]] ) \ + [[ $IMAGE_TAG == amazonlinux-2 ]] \ && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default ## Ubuntu 16 is pinned only [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake'" # DOCKER - docker run --rm -v $(pwd):/eos eosio/producer:ci-$IMAGE_TAG bash -c "$PRE_COMMANDS mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" -fi \ No newline at end of file + docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "echo \$CXX && echo \$CC && $PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" +fi \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 9660f8f5822..e3eda191b8f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,6 @@ cache: directories: - $HOME/Library/Caches/Homebrew - $HOME/.ccache - - /opt/.ccache matrix: include: - os: linux From 2701745db2faebd77d1b6194d74dfd92e71ad158 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Fri, 12 Jul 2019 11:12:55 -0400 Subject: [PATCH 082/528] Added initial ctest command for Linux. --- .cicd/travis-build.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 06585a07d43..4e96fc54c49 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -22,6 +22,9 @@ else # linux && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default ## Ubuntu 16 is pinned only [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake'" + + # Tests commands + TEST_COMMAND="&& ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" # DOCKER - docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "echo \$CXX && echo \$CC && $PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" + docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "echo \$CXX && echo \$CC && $PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN) $TEST_COMMAND" fi \ No newline at end of file From fcd142cbdc28b2e7c44de1872a0942279d411b0f Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 12 Jul 2019 11:33:36 -0400 Subject: [PATCH 083/528] fix for ccache --- .cicd/travis-build.sh | 2 ++ .travis.yml | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index cca429a3341..d5d50f5ced1 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -22,6 +22,8 @@ else # linux && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default ## Ubuntu 16 is pinned only [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake'" + ## Needed for cache to load properly + ( [[ $IMAGE_TAG == amazonlinux-2 ]] || [[ $IMAGE_TAG == centos-7 ]] ) && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) # DOCKER docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "echo \$CXX && echo \$CC && $PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index e3eda191b8f..0798d3dcac8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,6 @@ cache: ccache: true directories: - $HOME/Library/Caches/Homebrew - - $HOME/.ccache matrix: include: - os: linux From 5933eed30e706ce04f3d8bf2955991b1ad116b9f Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 12 Jul 2019 11:44:09 -0400 Subject: [PATCH 084/528] fix for path --- .cicd/travis-build.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 06585a07d43..4903ee7705c 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -22,6 +22,7 @@ else # linux && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default ## Ubuntu 16 is pinned only [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake'" + ( [[ $IMAGE_TAG == amazonlinux-2 ]] || [[ $IMAGE_TAG == centos-7 ]] ) && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) # DOCKER docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "echo \$CXX && echo \$CC && $PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file From 7063ec5228adcd087c76442ae2b339f5649ee400 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 12 Jul 2019 13:21:17 -0400 Subject: [PATCH 085/528] compiler path change to use ccache on ubuntu16 --- .cicd/pinned_toolchain.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/pinned_toolchain.cmake b/.cicd/pinned_toolchain.cmake index 70d0b114ae9..f0b07053cf3 100644 --- a/.cicd/pinned_toolchain.cmake +++ b/.cicd/pinned_toolchain.cmake @@ -1,7 +1,7 @@ set(CMAKE_C_COMPILER_WORKS 1) set(CMAKE_CXX_COMPILER_WORKS 1) -set(CMAKE_C_COMPILER /usr/local/bin/clang) -set(CMAKE_CXX_COMPILER /usr/local/bin/clang++) +set(CMAKE_C_COMPILER /usr/lib/ccache/clang) +set(CMAKE_CXX_COMPILER /usr/lib/ccache/clang++) set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES /usr/local/include/c++/v1 /usr/local/include /usr/include) From c99d2e0a23f95c11072a3f4fce031731a6465b52 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Fri, 12 Jul 2019 14:12:38 -0400 Subject: [PATCH 086/528] Simplification in travis-build.sh --- .cicd/travis-build.sh | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index d5d50f5ced1..713f0aceeae 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -14,16 +14,11 @@ else # linux echo 'Detected Linux, building in Docker.' echo "$ docker pull eosio/producer:ci-$IMAGE_TAG" docker pull eosio/producer:ci-$IMAGE_TAG - - # Per distro additions to docker command - [[ $IMAGE_TAG == centos-7 ]] \ - && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" - [[ $IMAGE_TAG == amazonlinux-2 ]] \ - && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Explicitly set to clang else it will try and use gcc that's installed by default - ## Ubuntu 16 is pinned only - [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake'" - ## Needed for cache to load properly - ( [[ $IMAGE_TAG == amazonlinux-2 ]] || [[ $IMAGE_TAG == centos-7 ]] ) && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) - # DOCKER + # per-distro additions to docker commands + [[ $IMAGE_TAG == centos-7 ]] && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" + [[ $IMAGE_TAG == amazonlinux-2 ]] && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # explicitly set to clang as gcc is default + [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake'" # pinned only + [[ $IMAGE_TAG == amazonlinux-2 || $IMAGE_TAG == centos-7 ]] && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) + # docker docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "echo \$CXX && echo \$CC && $PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" fi \ No newline at end of file From aae1acde2301f4feee7ac485069a9322a15152af Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Fri, 12 Jul 2019 14:13:30 -0400 Subject: [PATCH 087/528] Added unit tests to macOS --- .cicd/travis-build.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 713f0aceeae..35c9ab8824f 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -10,6 +10,7 @@ if [[ "$(uname)" == Darwin ]]; then cd build cmake .. make -j $CPU_CORES + ctest -j $CPU_CORES -LE _tests --output-on-failure -T Test # run unit tests else # linux echo 'Detected Linux, building in Docker.' echo "$ docker pull eosio/producer:ci-$IMAGE_TAG" From 66d05484fdc286282e0cc5e9c9e1aa2c913a8cc6 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Fri, 12 Jul 2019 14:15:24 -0400 Subject: [PATCH 088/528] Added print statements to the macOS build. --- .cicd/travis-build.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 35c9ab8824f..3e1ad03250f 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -8,8 +8,12 @@ if [[ "$(uname)" == Darwin ]]; then [[ -d eos ]] && cd eos [[ ! -d build ]] && mkdir build cd build + echo '$ cmake ..' cmake .. + echo "$ make -j $CPU_CORES" make -j $CPU_CORES + echo 'Running unit tests.' + echo "$ ctest -j $CPU_CORES -LE _tests --output-on-failure -T Test" ctest -j $CPU_CORES -LE _tests --output-on-failure -T Test # run unit tests else # linux echo 'Detected Linux, building in Docker.' @@ -22,4 +26,4 @@ else # linux [[ $IMAGE_TAG == amazonlinux-2 || $IMAGE_TAG == centos-7 ]] && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) # docker docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "echo \$CXX && echo \$CC && $PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)" -fi \ No newline at end of file +fi \ No newline at end of file From 94de3c8bf9396f0dd88cf25184c5adfa65fb1d12 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 12 Jul 2019 14:22:58 -0400 Subject: [PATCH 089/528] added tests for mac --- .cicd/travis-build.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index b5f385ca971..6623728007d 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -10,6 +10,7 @@ if [[ "$(uname)" == Darwin ]]; then cd build cmake .. make -j $CPU_CORES + ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test else # linux echo 'Detected Linux, building in Docker.' echo "$ docker pull eosio/producer:ci-$IMAGE_TAG" @@ -23,7 +24,9 @@ else # linux ## Ubuntu 16 is pinned only [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake'" ( [[ $IMAGE_TAG == amazonlinux-2 ]] || [[ $IMAGE_TAG == centos-7 ]] ) && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) - TEST_COMMAND="&& ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" # DOCKER - docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c "echo \$CXX && echo \$CC && $PRE_COMMANDS ccache -s && mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN) $TEST_COMMAND" + docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c " \ + $PRE_COMMANDS ccache -s && \ + mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN) + ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" fi \ No newline at end of file From 8d5b9864b9fcd730df4e45a6fce61b207fdaf09a Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 12 Jul 2019 14:28:50 -0400 Subject: [PATCH 090/528] ccache -s to get the path --- .cicd/travis-build.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 6623728007d..87b273e531b 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -3,6 +3,7 @@ set -e CPU_CORES=$(getconf _NPROCESSORS_ONLN) if [[ "$(uname)" == Darwin ]]; then brew install ccache + ccache -s export PATH="/usr/local/opt/ccache/libexec:$PATH" echo 'Detected Darwin, building natively.' [[ -d eos ]] && cd eos From 2a37715c51928d4d932af313b60ed6948a8b17ea Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 12 Jul 2019 14:33:29 -0400 Subject: [PATCH 091/528] [ci skip] ccache in travis.yml --- .cicd/travis-build.sh | 1 - .travis.yml | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 87b273e531b..78d14ce5de9 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -2,7 +2,6 @@ set -e CPU_CORES=$(getconf _NPROCESSORS_ONLN) if [[ "$(uname)" == Darwin ]]; then - brew install ccache ccache -s export PATH="/usr/local/opt/ccache/libexec:$PATH" echo 'Detected Darwin, building natively.' diff --git a/.travis.yml b/.travis.yml index a2127ce64d1..4b0bba38f05 100644 --- a/.travis.yml +++ b/.travis.yml @@ -46,6 +46,7 @@ matrix: - libusb - openssl - boost@1.70 + - ccache before_cache: | ./.cicd/travis-before-cache.sh before_install: | From 0cff77bbf35c4c48682bfb0ec9de12a08c050002 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Fri, 12 Jul 2019 17:11:16 -0400 Subject: [PATCH 092/528] Attempt to solve U16 cache issue. --- .cicd/travis-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index e9fedbb8cef..54c79a89b2a 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -21,7 +21,7 @@ else # linux # Per distro additions to docker command [[ $IMAGE_TAG == centos-7 ]] && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" [[ $IMAGE_TAG == amazonlinux-2 ]] && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # explicitly set to clang as gcc is default - [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake'" # pinned only + [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" # pinned only [[ $IMAGE_TAG == amazonlinux-2 || $IMAGE_TAG == centos-7 ]] && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) # DOCKER docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c " \ From 330d8721d745a21160ae896a07009a6cbf756b1d Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Sat, 13 Jul 2019 07:29:17 -0400 Subject: [PATCH 093/528] adds incbin support for ccache on u16 via extrafiles --- .cicd/travis-build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 54c79a89b2a..a2c7b6a8806 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -21,8 +21,8 @@ else # linux # Per distro additions to docker command [[ $IMAGE_TAG == centos-7 ]] && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" [[ $IMAGE_TAG == amazonlinux-2 ]] && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # explicitly set to clang as gcc is default - [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" # pinned only - [[ $IMAGE_TAG == amazonlinux-2 || $IMAGE_TAG == centos-7 ]] && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) + [[ $IMAGE_TAG == ubuntu-16.04 ]] && EXPORTS="CCACHE_EXTRAFILES=\"/eos/unittests/wasm_tests.cpp:/eos/unittests/incbin.h:/eos/plugins/producer_api_plugin.cpp\" &&" && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" # pinned only + [[ $IMAGE_TAG == amazonlinux-2 || $IMAGE_TAG == centos-7 ]] && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="$EXPORTS export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) # DOCKER docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c " \ $PRE_COMMANDS ccache -s && \ From 953de9c454fd16b7d6fd984d6c58f5cf72677915 Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Sat, 13 Jul 2019 07:41:17 -0400 Subject: [PATCH 094/528] exports ccache_extrafiles --- .cicd/travis-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index a2c7b6a8806..bc7abf106d8 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -21,7 +21,7 @@ else # linux # Per distro additions to docker command [[ $IMAGE_TAG == centos-7 ]] && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" [[ $IMAGE_TAG == amazonlinux-2 ]] && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # explicitly set to clang as gcc is default - [[ $IMAGE_TAG == ubuntu-16.04 ]] && EXPORTS="CCACHE_EXTRAFILES=\"/eos/unittests/wasm_tests.cpp:/eos/unittests/incbin.h:/eos/plugins/producer_api_plugin.cpp\" &&" && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" # pinned only + [[ $IMAGE_TAG == ubuntu-16.04 ]] && EXPORTS="export CCACHE_EXTRAFILES=\"/eos/unittests/wasm_tests.cpp:/eos/unittests/incbin.h:/eos/plugins/producer_api_plugin.cpp\" &&" && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" # pinned only [[ $IMAGE_TAG == amazonlinux-2 || $IMAGE_TAG == centos-7 ]] && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="$EXPORTS export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) # DOCKER docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c " \ From ce30cc25d0f5652e9a2d0443f46fe2d78ef43d89 Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Sat, 13 Jul 2019 14:24:10 -0400 Subject: [PATCH 095/528] adds verbose logging for ccache --- .cicd/travis-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index bc7abf106d8..d8c2b33f8ee 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -24,7 +24,7 @@ else # linux [[ $IMAGE_TAG == ubuntu-16.04 ]] && EXPORTS="export CCACHE_EXTRAFILES=\"/eos/unittests/wasm_tests.cpp:/eos/unittests/incbin.h:/eos/plugins/producer_api_plugin.cpp\" &&" && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" # pinned only [[ $IMAGE_TAG == amazonlinux-2 || $IMAGE_TAG == centos-7 ]] && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="$EXPORTS export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) # DOCKER - docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c " \ + docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_LOGFILE=/dev/stdout -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c " \ $PRE_COMMANDS ccache -s && \ mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN) ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" From e83fb7cc704f441fd3eb0d1629b0b59faa164f44 Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Sat, 13 Jul 2019 14:39:48 -0400 Subject: [PATCH 096/528] removes verbose logging --- .cicd/travis-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index d8c2b33f8ee..bc7abf106d8 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -24,7 +24,7 @@ else # linux [[ $IMAGE_TAG == ubuntu-16.04 ]] && EXPORTS="export CCACHE_EXTRAFILES=\"/eos/unittests/wasm_tests.cpp:/eos/unittests/incbin.h:/eos/plugins/producer_api_plugin.cpp\" &&" && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" # pinned only [[ $IMAGE_TAG == amazonlinux-2 || $IMAGE_TAG == centos-7 ]] && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="$EXPORTS export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) # DOCKER - docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_LOGFILE=/dev/stdout -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c " \ + docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c " \ $PRE_COMMANDS ccache -s && \ mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN) ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" From d4f738115a225edde29ab510425c0e93401e721a Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Sat, 13 Jul 2019 15:10:52 -0400 Subject: [PATCH 097/528] corrects path to producer plugin --- .cicd/travis-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index bc7abf106d8..e2da385afc8 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -21,7 +21,7 @@ else # linux # Per distro additions to docker command [[ $IMAGE_TAG == centos-7 ]] && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" [[ $IMAGE_TAG == amazonlinux-2 ]] && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # explicitly set to clang as gcc is default - [[ $IMAGE_TAG == ubuntu-16.04 ]] && EXPORTS="export CCACHE_EXTRAFILES=\"/eos/unittests/wasm_tests.cpp:/eos/unittests/incbin.h:/eos/plugins/producer_api_plugin.cpp\" &&" && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" # pinned only + [[ $IMAGE_TAG == ubuntu-16.04 ]] && EXPORTS="export CCACHE_EXTRAFILES=\"/eos/unittests/wasm_tests.cpp:/eos/unittests/incbin.h:/eos/plugins/producer_api_plugin/producer_api_plugin.cpp\" &&" && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" # pinned only [[ $IMAGE_TAG == amazonlinux-2 || $IMAGE_TAG == centos-7 ]] && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="$EXPORTS export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) # DOCKER docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c " \ From eb7557ad88c7dcb5e1e5df17087b248532b89775 Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Sat, 13 Jul 2019 17:20:32 -0400 Subject: [PATCH 098/528] copys wasms for incbin --- .cicd/travis-build.sh | 2 +- unittests/CMakeLists.txt | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index e2da385afc8..dadd92622dc 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -21,7 +21,7 @@ else # linux # Per distro additions to docker command [[ $IMAGE_TAG == centos-7 ]] && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" [[ $IMAGE_TAG == amazonlinux-2 ]] && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # explicitly set to clang as gcc is default - [[ $IMAGE_TAG == ubuntu-16.04 ]] && EXPORTS="export CCACHE_EXTRAFILES=\"/eos/unittests/wasm_tests.cpp:/eos/unittests/incbin.h:/eos/plugins/producer_api_plugin/producer_api_plugin.cpp\" &&" && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" # pinned only + [[ $IMAGE_TAG == ubuntu-16.04 ]] && EXPORTS="export CCACHE_EXTRAFILES=\"/eos/unittests/wasm_tests.cpp\" &&" && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" # pinned only [[ $IMAGE_TAG == amazonlinux-2 || $IMAGE_TAG == centos-7 ]] && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="$EXPORTS export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) # DOCKER docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c " \ diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt index 82e723e5563..31f6b801392 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -36,6 +36,40 @@ link_directories(${LLVM_LIBRARY_DIR}) add_subdirectory(contracts) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts.hpp.in ${CMAKE_CURRENT_BINARY_DIR}/include/contracts.hpp ESCAPE_QUOTES) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz1.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz1.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz2.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz2.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz3.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz3.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz4.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz4.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz5.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz5.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz6.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz6.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz7.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz7.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz8.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz8.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz9.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz9.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz10.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz10.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz11.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz11.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz12.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz12.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz13.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz13.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz14.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz14.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz15.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz15.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/big_allocation.wasm ${CMAKE_CURRENT_BINARY_DIR}/big_allocation.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/crash_section_size_too_big.wasm ${CMAKE_CURRENT_BINARY_DIR}/crash_section_size_too_big.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/leak_no_destructor.wasm ${CMAKE_CURRENT_BINARY_DIR}/leak_no_destructor.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/leak_readExports.wasm ${CMAKE_CURRENT_BINARY_DIR}/leak_readExports.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/leak_readFunctions.wasm ${CMAKE_CURRENT_BINARY_DIR}/leak_readFunctions.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/leak_readFunctions_2.wasm ${CMAKE_CURRENT_BINARY_DIR}/leak_readFunctions_2.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/leak_readFunctions_3.wasm ${CMAKE_CURRENT_BINARY_DIR}/leak_readFunctions_3.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/leak_readGlobals.wasm ${CMAKE_CURRENT_BINARY_DIR}/leak_readGlobals.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/leak_readImports.wasm ${CMAKE_CURRENT_BINARY_DIR}/leak_readImports.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/leak_wasm_binary_cpp_L1249.wasm ${CMAKE_CURRENT_BINARY_DIR}/leak_wasm_binary_cpp_L1249.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/readFunctions_slowness_out_of_memory.wasm ${CMAKE_CURRENT_BINARY_DIR}/readFunctions_slowness_out_of_memory.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/locals-yc.wasm ${CMAKE_CURRENT_BINARY_DIR}/locals-yc.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/locals-s.wasm ${CMAKE_CURRENT_BINARY_DIR}/locals-s.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/slowwasm_localsets.wasm ${CMAKE_CURRENT_BINARY_DIR}/slowwasm_localsets.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/getcode_deepindent.wasm ${CMAKE_CURRENT_BINARY_DIR}/getcode_deepindent.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/indent-mismatch.wasm ${CMAKE_CURRENT_BINARY_DIR}/indent-mismatch.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/deep_loops_ext_report.wasm ${CMAKE_CURRENT_BINARY_DIR}/deep_loops_ext_report.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/80k_deep_loop_with_ret.wasm ${CMAKE_CURRENT_BINARY_DIR}/80k_deep_loop_with_ret.wasm COPYONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/80k_deep_loop_with_void.wasm ${CMAKE_CURRENT_BINARY_DIR}/80k_deep_loop_with_void.wasm COPYONLY) ### BUILD UNIT TEST EXECUTABLE ### file(GLOB UNIT_TESTS "*.cpp") # find all unit test suites From e43426374e2e1dd71b7670dd5a64d006412f4e13 Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Sat, 13 Jul 2019 19:36:00 -0400 Subject: [PATCH 099/528] buildplskthxbai From eeac4e189a14b7ca5fd881e38baf942dd5e7cea2 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Sat, 13 Jul 2019 20:26:35 -0400 Subject: [PATCH 100/528] U16 now installs custom ccache instead of using apt. --- .cicd/eosio_build_u16.sh | 4 ++-- .cicd/pinned_toolchain.cmake | 4 ++-- .cicd/travis-build.sh | 10 +++++++--- .cicd/ubuntu-16.04.dockerfile | 16 ++++++++++------ 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/.cicd/eosio_build_u16.sh b/.cicd/eosio_build_u16.sh index 028ccaac60f..8dbd9d65888 100755 --- a/.cicd/eosio_build_u16.sh +++ b/.cicd/eosio_build_u16.sh @@ -2,12 +2,12 @@ set -eu rm -rf ./eos -docker build -t eosio/producer:ci-ubuntu-16.04 -f ubuntu-16.04.dockerfile . +docker build -t eosio/producer:ci-ubuntu-16.04-ccache -f ubuntu-16.04.dockerfile . git clone https://github.com/EOSIO/eos cd eos git checkout release/1.8.x git submodule update --init --recursive -docker run --rm -v $(pwd):/eos eosio/producer:ci-ubuntu-16.04 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' /eos && make -j6 && mkdir -p /eos/data/mongodb && mongod --fork --dbpath /eos/data/mongodb -f /eos/scripts/mongod.conf --logpath /eos/mongod.log && ctest -j 8 -LE _tests --output-on-failure -T Test" +docker run --rm -v $(pwd):/eos eosio/producer:ci-ubuntu-16.04-ccache bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache /eos && make -j6 && mkdir -p /eos/data/mongodb && mongod --fork --dbpath /eos/data/mongodb -f /eos/scripts/mongod.conf --logpath /eos/mongod.log && ctest -j 8 -LE _tests --output-on-failure -T Test" cd .. && rm -rf eos \ No newline at end of file diff --git a/.cicd/pinned_toolchain.cmake b/.cicd/pinned_toolchain.cmake index f0b07053cf3..70d0b114ae9 100644 --- a/.cicd/pinned_toolchain.cmake +++ b/.cicd/pinned_toolchain.cmake @@ -1,7 +1,7 @@ set(CMAKE_C_COMPILER_WORKS 1) set(CMAKE_CXX_COMPILER_WORKS 1) -set(CMAKE_C_COMPILER /usr/lib/ccache/clang) -set(CMAKE_CXX_COMPILER /usr/lib/ccache/clang++) +set(CMAKE_C_COMPILER /usr/local/bin/clang) +set(CMAKE_CXX_COMPILER /usr/local/bin/clang++) set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES /usr/local/include/c++/v1 /usr/local/include /usr/include) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index dadd92622dc..fb5291fb095 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -16,12 +16,16 @@ if [[ "$(uname)" == Darwin ]]; then else # linux echo 'Detected Linux, building in Docker.' echo "$ docker pull eosio/producer:ci-$IMAGE_TAG" - docker pull eosio/producer:ci-$IMAGE_TAG - + # Branch specific logic to test custom ccache installation on U16. + if [[ $IMAGE_TAG == ubuntu-16.04 ]]; then + docker pull eosio/producer:ci-$IMAGE_TAG-ccache + else + docker pull eosio/producer:ci-$IMAGE_TAG + fi # Per distro additions to docker command [[ $IMAGE_TAG == centos-7 ]] && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" [[ $IMAGE_TAG == amazonlinux-2 ]] && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # explicitly set to clang as gcc is default - [[ $IMAGE_TAG == ubuntu-16.04 ]] && EXPORTS="export CCACHE_EXTRAFILES=\"/eos/unittests/wasm_tests.cpp\" &&" && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" # pinned only + [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" # pinned only [[ $IMAGE_TAG == amazonlinux-2 || $IMAGE_TAG == centos-7 ]] && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="$EXPORTS export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) # DOCKER docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c " \ diff --git a/.cicd/ubuntu-16.04.dockerfile b/.cicd/ubuntu-16.04.dockerfile index 4d43c7cdc81..e2b9f89c6f7 100644 --- a/.cicd/ubuntu-16.04.dockerfile +++ b/.cicd/ubuntu-16.04.dockerfile @@ -1,7 +1,5 @@ FROM ubuntu:16.04 -COPY ./pinned_toolchain.cmake /tmp/pinned_toolchain.cmake - # APT-GET dependencies. RUN apt-get update && apt-get upgrade -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential git automake \ @@ -23,6 +21,8 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz \ RUN mkdir -p /root/tmp && cd /root/tmp && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && cd .. && cd ../../../../projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && cd ../ && cd /root/tmp/clang8 && mkdir build && cd build && cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=all -DCMAKE_BUILD_TYPE=Release .. && make -j$(nproc) && make install \ && cd / && rm -rf /root/tmp/clang8 +COPY ./pinned_toolchain.cmake /tmp/pinned_toolchain.cmake + # # Build appropriate version of LLVM. RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm \ && cd llvm \ @@ -74,7 +74,11 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1604-3.6.3/bin -# CCACHE -RUN apt-get install -y ccache -## Needed as devtoolset uses c++ and it's not in ccache by default -RUN cd /usr/lib/ccache && ln -s ../../bin/ccache clang++ && ln -s ../../bin/ccache clang \ No newline at end of file +# Build appropriate version of ccache. +RUN curl -LO https://github.com/ccache/ccache/releases/download/v3.4.1/ccache-3.4.1.tar.gz \ + && tar -xzf ccache-3.4.1.tar.gz \ + && cd ccache-3.4.1 \ + && ./configure \ + && make \ + && make install \ + && cd / && rm -rf ccache-3.4.1/ From b7a0d3f0794a41c4b26f3eb4c3ccbb1d1833c99b Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Sat, 13 Jul 2019 21:13:39 -0400 Subject: [PATCH 101/528] Corrected flaw in docker run command. --- .cicd/travis-build.sh | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index fb5291fb095..a8b00da35e0 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -14,21 +14,20 @@ if [[ "$(uname)" == Darwin ]]; then make -j $CPU_CORES ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test else # linux - echo 'Detected Linux, building in Docker.' - echo "$ docker pull eosio/producer:ci-$IMAGE_TAG" # Branch specific logic to test custom ccache installation on U16. if [[ $IMAGE_TAG == ubuntu-16.04 ]]; then - docker pull eosio/producer:ci-$IMAGE_TAG-ccache - else - docker pull eosio/producer:ci-$IMAGE_TAG + IMAGE_SUFFIX='-ccache' fi + echo 'Detected Linux, building in Docker.' + echo "$ docker pull eosio/producer:ci-${IMAGE_TAG}${IMAGE_SUFFIX}" + docker pull eosio/producer:ci-${IMAGE_TAG}${IMAGE_SUFFIX} # Per distro additions to docker command [[ $IMAGE_TAG == centos-7 ]] && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" [[ $IMAGE_TAG == amazonlinux-2 ]] && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # explicitly set to clang as gcc is default [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" # pinned only [[ $IMAGE_TAG == amazonlinux-2 || $IMAGE_TAG == centos-7 ]] && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="$EXPORTS export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) # DOCKER - docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-$IMAGE_TAG bash -c " \ + docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-${IMAGE_TAG}${IMAGE_SUFFIX} bash -c " \ $PRE_COMMANDS ccache -s && \ mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN) ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" From 71567da5701a4e4ad420477e52b75248877a3058 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Mon, 15 Jul 2019 09:51:24 -0400 Subject: [PATCH 102/528] Removed suffix logic used during testing of new container. --- .cicd/travis-build.sh | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index a8b00da35e0..268df35662e 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -1,6 +1,11 @@ #!/bin/bash set -e CPU_CORES=$(getconf _NPROCESSORS_ONLN) + +# Dockerfile checks. + + +# EOS build. if [[ "$(uname)" == Darwin ]]; then ccache -s export PATH="/usr/local/opt/ccache/libexec:$PATH" @@ -14,20 +19,16 @@ if [[ "$(uname)" == Darwin ]]; then make -j $CPU_CORES ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test else # linux - # Branch specific logic to test custom ccache installation on U16. - if [[ $IMAGE_TAG == ubuntu-16.04 ]]; then - IMAGE_SUFFIX='-ccache' - fi echo 'Detected Linux, building in Docker.' - echo "$ docker pull eosio/producer:ci-${IMAGE_TAG}${IMAGE_SUFFIX}" - docker pull eosio/producer:ci-${IMAGE_TAG}${IMAGE_SUFFIX} + echo "$ docker pull eosio/producer:ci-${IMAGE_TAG}" + docker pull eosio/producer:ci-${IMAGE_TAG} # Per distro additions to docker command [[ $IMAGE_TAG == centos-7 ]] && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" [[ $IMAGE_TAG == amazonlinux-2 ]] && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # explicitly set to clang as gcc is default [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" # pinned only [[ $IMAGE_TAG == amazonlinux-2 || $IMAGE_TAG == centos-7 ]] && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="$EXPORTS export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) # DOCKER - docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-${IMAGE_TAG}${IMAGE_SUFFIX} bash -c " \ + docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-${IMAGE_TAG} bash -c " \ $PRE_COMMANDS ccache -s && \ mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN) ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" From 14e57086c3f037d35f0aea118fc3131772349b06 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Mon, 15 Jul 2019 11:41:33 -0400 Subject: [PATCH 103/528] Restore code deleted during erronious merge --- .cicd/travis-build.sh | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 268df35662e..f94d5a77397 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -1,11 +1,6 @@ #!/bin/bash set -e CPU_CORES=$(getconf _NPROCESSORS_ONLN) - -# Dockerfile checks. - - -# EOS build. if [[ "$(uname)" == Darwin ]]; then ccache -s export PATH="/usr/local/opt/ccache/libexec:$PATH" @@ -17,17 +12,19 @@ if [[ "$(uname)" == Darwin ]]; then cmake .. echo "$ make -j $CPU_CORES" make -j $CPU_CORES - ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test + echo 'Running unit tests.' + echo "$ ctest -j $CPU_CORES -LE _tests --output-on-failure -T Test" + ctest -j $CPU_CORES -LE _tests --output-on-failure -T Test # run unit tests else # linux echo 'Detected Linux, building in Docker.' echo "$ docker pull eosio/producer:ci-${IMAGE_TAG}" docker pull eosio/producer:ci-${IMAGE_TAG} - # Per distro additions to docker command + # per-distro additions to docker commands [[ $IMAGE_TAG == centos-7 ]] && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" [[ $IMAGE_TAG == amazonlinux-2 ]] && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # explicitly set to clang as gcc is default [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" # pinned only [[ $IMAGE_TAG == amazonlinux-2 || $IMAGE_TAG == centos-7 ]] && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="$EXPORTS export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) - # DOCKER + # docker docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-${IMAGE_TAG} bash -c " \ $PRE_COMMANDS ccache -s && \ mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN) From f3106e18a31f885be108d01ae48a749403c571ce Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 15 Jul 2019 14:53:48 -0400 Subject: [PATCH 104/528] pipeline.yml --- .cicd/pipeline.yml | 86 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 .cicd/pipeline.yml diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml new file mode 100644 index 00000000000..757520046cb --- /dev/null +++ b/.cicd/pipeline.yml @@ -0,0 +1,86 @@ +env: + BUILD_TIMEOUT: 120 + TEST_TIMEOUT: 60 + TIMEOUT: 120 + VERBOSE: true + + - label: ":aws: [Amazon] 2 Build" + command: + - "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' /eos && make -j $(getconf _NPROCESSORS_ONLN)" + - "ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + agents: + queue: "automation-large-builder-fleet" + plugins: + - docker#v3.2.0: + shell: ["/bin/bash", "-i", "-e", "-c"] + debug: $DEBUG + mount-checkout: false + image: "eosio/producer:ci-amazonlinux-2" + timeout: $BUILD_TIMEOUT + skip: $SKIP_AMAZON_LINUX_2 + + - label: ":centos: [CentOS] 7 Build" + command: + - "mkdir /eos/build && cd /eos/build && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" + - "ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + agents: + queue: "automation-large-builder-fleet" + plugins: + - docker#v3.2.0: + shell: ["/bin/bash", "-i", "-e", "-c"] + debug: $DEBUG + mount-checkout: false + image: "eosio/producer:ci-centos-7" + timeout: $BUILD_TIMEOUT + skip: $SKIP_CENTOS_7 + + - label: ":ubuntu: [Ubuntu] 16.04 Build" + command: + - "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' /eos && make -j $(getconf _NPROCESSORS_ONLN)" + - "ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + agents: + queue: "automation-large-builder-fleet" + plugins: + - docker#v3.2.0: + shell: ["/bin/bash", "-i", "-e", "-c"] + debug: $DEBUG + mount-checkout: false + image: "eosio/producer:ci-ubuntu-16.04" + timeout: $BUILD_TIMEOUT + skip: $SKIP_UBUNTU_16 + + - label: ":ubuntu: [Ubuntu] 18.04 Build" + command: + - "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" + - "ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + agents: + queue: "automation-large-builder-fleet" + plugins: + - docker#v3.2.0: + shell: ["/bin/bash", "-i", "-e", "-c"] + debug: $DEBUG + mount-checkout: false + image: "eosio/producer:ci-ubuntu-18.04" + timeout: $BUILD_TIMEOUT + skip: $SKIP_UBUNTU_18 + + - label: ":darwin: [Darwin] 10.14 Build" + command: + - "git clone $BUILDKITE_HTTPS_REPO_URL eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && mkdir build && cd build && cmake .. && make -j$(getconf _NPROCESSORS_ONLN)" + - "cd eos/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::xcode-10.2" + modify-cpu: 12 + modify-ram: 24 + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-large-node-fleet" + timeout: $BUILD_TIMEOUT + skip: $SKIP_MOJAVE \ No newline at end of file From 7e13c2a3c1591808e81ce6fd1447366b7b19da15 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 15 Jul 2019 14:55:14 -0400 Subject: [PATCH 105/528] silly mistake --- .cicd/pipeline.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 757520046cb..062e81668c9 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -4,6 +4,8 @@ env: TIMEOUT: 120 VERBOSE: true +steps: + - label: ":aws: [Amazon] 2 Build" command: - "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' /eos && make -j $(getconf _NPROCESSORS_ONLN)" From 189c5d19081c973ae641b2b2c5e5a4671703be16 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 15 Jul 2019 14:58:59 -0400 Subject: [PATCH 106/528] mac brew and path fixes --- .cicd/pipeline.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 062e81668c9..0c76c5da89b 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -8,7 +8,7 @@ steps: - label: ":aws: [Amazon] 2 Build" command: - - "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' /eos && make -j $(getconf _NPROCESSORS_ONLN)" + - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' /eos && make -j $(getconf _NPROCESSORS_ONLN)" - "ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" agents: queue: "automation-large-builder-fleet" @@ -23,7 +23,7 @@ steps: - label: ":centos: [CentOS] 7 Build" command: - - "mkdir /eos/build && cd /eos/build && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" + - "mkdir /workdir/build && cd /workdir/build && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" - "ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" agents: queue: "automation-large-builder-fleet" @@ -38,7 +38,7 @@ steps: - label: ":ubuntu: [Ubuntu] 16.04 Build" command: - - "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' /eos && make -j $(getconf _NPROCESSORS_ONLN)" + - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' /eos && make -j $(getconf _NPROCESSORS_ONLN)" - "ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" agents: queue: "automation-large-builder-fleet" @@ -53,7 +53,7 @@ steps: - label: ":ubuntu: [Ubuntu] 18.04 Build" command: - - "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" + - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" - "ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" agents: queue: "automation-large-builder-fleet" @@ -68,6 +68,7 @@ steps: - label: ":darwin: [Darwin] 10.14 Build" command: + - "brew install graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70" - "git clone $BUILDKITE_HTTPS_REPO_URL eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - "cd eos && mkdir build && cd build && cmake .. && make -j$(getconf _NPROCESSORS_ONLN)" - "cd eos/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" From f6cf475fc93a14a0d48010a6d79b0ad41d7d33ec Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 15 Jul 2019 15:01:23 -0400 Subject: [PATCH 107/528] fix for linux mount --- .cicd/pipeline.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 0c76c5da89b..9dff07dc2f4 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -16,7 +16,6 @@ steps: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG - mount-checkout: false image: "eosio/producer:ci-amazonlinux-2" timeout: $BUILD_TIMEOUT skip: $SKIP_AMAZON_LINUX_2 @@ -31,7 +30,6 @@ steps: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG - mount-checkout: false image: "eosio/producer:ci-centos-7" timeout: $BUILD_TIMEOUT skip: $SKIP_CENTOS_7 @@ -46,7 +44,6 @@ steps: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG - mount-checkout: false image: "eosio/producer:ci-ubuntu-16.04" timeout: $BUILD_TIMEOUT skip: $SKIP_UBUNTU_16 @@ -61,7 +58,6 @@ steps: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG - mount-checkout: false image: "eosio/producer:ci-ubuntu-18.04" timeout: $BUILD_TIMEOUT skip: $SKIP_UBUNTU_18 From f9f1d686f13531ea6efaeab56b828b8bfe96e204 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 15 Jul 2019 15:10:08 -0400 Subject: [PATCH 108/528] brew layer and git install --- .cicd/pipeline.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 9dff07dc2f4..c7d82d9023f 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -64,7 +64,7 @@ steps: - label: ":darwin: [Darwin] 10.14 Build" command: - - "brew install graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70" + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70" - "git clone $BUILDKITE_HTTPS_REPO_URL eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - "cd eos && mkdir build && cd build && cmake .. && make -j$(getconf _NPROCESSORS_ONLN)" - "cd eos/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" @@ -73,7 +73,7 @@ steps: no-volume: true inherit-environment-vars: true vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::xcode-10.2" + vm-registry-tag: "clean::cicd::git-ssh::nas::brew" modify-cpu: 12 modify-ram: 24 always-pull: true From 20776d2414dbdc0332ba2d82be609acc44b31e15 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 15 Jul 2019 15:12:50 -0400 Subject: [PATCH 109/528] path fixes --- .cicd/pipeline.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index c7d82d9023f..249f8622326 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -8,8 +8,8 @@ steps: - label: ":aws: [Amazon] 2 Build" command: - - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' /eos && make -j $(getconf _NPROCESSORS_ONLN)" - - "ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' /workdir && make -j $(getconf _NPROCESSORS_ONLN)" + - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" agents: queue: "automation-large-builder-fleet" plugins: @@ -22,8 +22,8 @@ steps: - label: ":centos: [CentOS] 7 Build" command: - - "mkdir /workdir/build && cd /workdir/build && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" - - "ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + - "mkdir /workdir/build && cd /workdir/build && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /workdir && make -j $(getconf _NPROCESSORS_ONLN)" + - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" agents: queue: "automation-large-builder-fleet" plugins: @@ -36,8 +36,8 @@ steps: - label: ":ubuntu: [Ubuntu] 16.04 Build" command: - - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' /eos && make -j $(getconf _NPROCESSORS_ONLN)" - - "ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' /workdir && make -j $(getconf _NPROCESSORS_ONLN)" + - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" agents: queue: "automation-large-builder-fleet" plugins: @@ -50,8 +50,8 @@ steps: - label: ":ubuntu: [Ubuntu] 18.04 Build" command: - - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j $(getconf _NPROCESSORS_ONLN)" - - "ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /workdir && make -j $(getconf _NPROCESSORS_ONLN)" + - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" agents: queue: "automation-large-builder-fleet" plugins: @@ -67,7 +67,7 @@ steps: - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70" - "git clone $BUILDKITE_HTTPS_REPO_URL eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - "cd eos && mkdir build && cd build && cmake .. && make -j$(getconf _NPROCESSORS_ONLN)" - - "cd eos/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + - "cd eos/build && cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" plugins: - chef/anka#v0.5.1: no-volume: true From dc925480b47748dc67d96865a196c31c5afe2ac6 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 15 Jul 2019 15:21:58 -0400 Subject: [PATCH 110/528] quick fix to mac repo url --- .cicd/pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 249f8622326..7ec92475b19 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -65,7 +65,7 @@ steps: - label: ":darwin: [Darwin] 10.14 Build" command: - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70" - - "git clone $BUILDKITE_HTTPS_REPO_URL eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - "cd eos && mkdir build && cd build && cmake .. && make -j$(getconf _NPROCESSORS_ONLN)" - "cd eos/build && cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" plugins: From 77ec83260cea6f57265431494245fbe7f810105b Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 15 Jul 2019 15:31:40 -0400 Subject: [PATCH 111/528] cmake --- .cicd/pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 7ec92475b19..8bab5136cae 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -64,7 +64,7 @@ steps: - label: ":darwin: [Darwin] 10.14 Build" command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70" + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake" - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - "cd eos && mkdir build && cd build && cmake .. && make -j$(getconf _NPROCESSORS_ONLN)" - "cd eos/build && cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" From 225dea8cea87fa1c7ed623f087aaef10c86f8123 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 15 Jul 2019 15:43:51 -0400 Subject: [PATCH 112/528] mac path fix --- .cicd/pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 8bab5136cae..d402869ba26 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -67,7 +67,7 @@ steps: - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake" - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - "cd eos && mkdir build && cd build && cmake .. && make -j$(getconf _NPROCESSORS_ONLN)" - - "cd eos/build && cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + - "cd eos/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" plugins: - chef/anka#v0.5.1: no-volume: true From b6f7bc555e610f03002481e8f51b7742bb4e835d Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 15 Jul 2019 16:38:36 -0400 Subject: [PATCH 113/528] generate script --- .cicd/base-images.yml | 85 +++++++++++++++++++++++++++++++++++ .cicd/generate-base-images.sh | 48 ++++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 .cicd/base-images.yml create mode 100755 .cicd/generate-base-images.sh diff --git a/.cicd/base-images.yml b/.cicd/base-images.yml new file mode 100644 index 00000000000..d402869ba26 --- /dev/null +++ b/.cicd/base-images.yml @@ -0,0 +1,85 @@ +env: + BUILD_TIMEOUT: 120 + TEST_TIMEOUT: 60 + TIMEOUT: 120 + VERBOSE: true + +steps: + + - label: ":aws: [Amazon] 2 Build" + command: + - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' /workdir && make -j $(getconf _NPROCESSORS_ONLN)" + - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + agents: + queue: "automation-large-builder-fleet" + plugins: + - docker#v3.2.0: + shell: ["/bin/bash", "-i", "-e", "-c"] + debug: $DEBUG + image: "eosio/producer:ci-amazonlinux-2" + timeout: $BUILD_TIMEOUT + skip: $SKIP_AMAZON_LINUX_2 + + - label: ":centos: [CentOS] 7 Build" + command: + - "mkdir /workdir/build && cd /workdir/build && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /workdir && make -j $(getconf _NPROCESSORS_ONLN)" + - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + agents: + queue: "automation-large-builder-fleet" + plugins: + - docker#v3.2.0: + shell: ["/bin/bash", "-i", "-e", "-c"] + debug: $DEBUG + image: "eosio/producer:ci-centos-7" + timeout: $BUILD_TIMEOUT + skip: $SKIP_CENTOS_7 + + - label: ":ubuntu: [Ubuntu] 16.04 Build" + command: + - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' /workdir && make -j $(getconf _NPROCESSORS_ONLN)" + - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + agents: + queue: "automation-large-builder-fleet" + plugins: + - docker#v3.2.0: + shell: ["/bin/bash", "-i", "-e", "-c"] + debug: $DEBUG + image: "eosio/producer:ci-ubuntu-16.04" + timeout: $BUILD_TIMEOUT + skip: $SKIP_UBUNTU_16 + + - label: ":ubuntu: [Ubuntu] 18.04 Build" + command: + - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /workdir && make -j $(getconf _NPROCESSORS_ONLN)" + - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + agents: + queue: "automation-large-builder-fleet" + plugins: + - docker#v3.2.0: + shell: ["/bin/bash", "-i", "-e", "-c"] + debug: $DEBUG + image: "eosio/producer:ci-ubuntu-18.04" + timeout: $BUILD_TIMEOUT + skip: $SKIP_UBUNTU_18 + + - label: ":darwin: [Darwin] 10.14 Build" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && mkdir build && cd build && cmake .. && make -j$(getconf _NPROCESSORS_ONLN)" + - "cd eos/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew" + modify-cpu: 12 + modify-ram: 24 + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-large-node-fleet" + timeout: $BUILD_TIMEOUT + skip: $SKIP_MOJAVE \ No newline at end of file diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh new file mode 100755 index 00000000000..a5e4ade16e2 --- /dev/null +++ b/.cicd/generate-base-images.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash +set -eo pipefail + +function determine-hash() { + # Determine the sha1 hash of all dockerfiles in the .cicd directory. + [[ -z $1 ]] && echo "Please provide the files to be hashed (wildcards supported)" && exit 1 + echo "Obtaining Hash of files from $1..." + # Collect all files, hash them, then hash those. + HASHES=() + for FILE in $(find $1 -type f); do + HASH=$(sha1sum $FILE | sha1sum | awk '{ print $1 }') + HASHES=($HASH "${HASHES[*]}") + echo "$FILE - $HASH" + done + export DETERMINED_HASH=$(echo ${HASHES[*]} | sha1sum | awk '{ print $1 }') + export HASHED_IMAGE_TAG="${IMAGE_TAG}-${DETERMINED_HASH}" +} + +function build() { + # Per distro additions to docker command + [[ $IMAGE_TAG == centos-7 ]] && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" + [[ $IMAGE_TAG == amazonlinux-2 ]] && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # explicitly set to clang as gcc is default + [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" # pinned only + [[ $IMAGE_TAG == amazonlinux-2 || $IMAGE_TAG == centos-7 ]] && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="$EXPORTS export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) + # DOCKER + docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-${HASHED_IMAGE_TAG} bash -c " \ + $PRE_COMMANDS ccache -s && \ + mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN) + ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" +} + +function generate_docker_image() { + # If we cannot pull the image, we build and push it first. + echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin + cd ./.cicd + docker build -t eosio/producer:ci-${HASHED_IMAGE_TAG} -f ./${IMAGE_TAG}.dockerfile . + docker push eosio/producer:ci-${HASHED_IMAGE_TAG} + cd - +} + +determine-hash ".cicd/${IMAGE_TAG}.dockerfile" +[[ -z $DETERMINED_HASH ]] && echo "DETERMINED_HASH empty! (check determine-hash function)" && exit 1 +echo "Looking for $IMAGE_TAG-$DETERMINED_HASH" +if docker pull eosio/producer:ci-${HASHED_IMAGE_TAG}; then + echo "eosio/producer:ci-${HASHED_IMAGE_TAG} already exists" +else + generate_docker_image +fi \ No newline at end of file From 1bc3330a24f868b72004b85e962ed07b83dd8a8a Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 15 Jul 2019 16:40:16 -0400 Subject: [PATCH 114/528] test --- .cicd/base-images.yml | 125 +++++++++++++++++++++--------------------- 1 file changed, 62 insertions(+), 63 deletions(-) diff --git a/.cicd/base-images.yml b/.cicd/base-images.yml index d402869ba26..005b53d8b8b 100644 --- a/.cicd/base-images.yml +++ b/.cicd/base-images.yml @@ -6,10 +6,9 @@ env: steps: - - label: ":aws: [Amazon] 2 Build" + - label: ":aws: [Amazon] 2 Ensure Docker Image" command: - - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' /workdir && make -j $(getconf _NPROCESSORS_ONLN)" - - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + - "pwd" agents: queue: "automation-large-builder-fleet" plugins: @@ -20,66 +19,66 @@ steps: timeout: $BUILD_TIMEOUT skip: $SKIP_AMAZON_LINUX_2 - - label: ":centos: [CentOS] 7 Build" - command: - - "mkdir /workdir/build && cd /workdir/build && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /workdir && make -j $(getconf _NPROCESSORS_ONLN)" - - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" - agents: - queue: "automation-large-builder-fleet" - plugins: - - docker#v3.2.0: - shell: ["/bin/bash", "-i", "-e", "-c"] - debug: $DEBUG - image: "eosio/producer:ci-centos-7" - timeout: $BUILD_TIMEOUT - skip: $SKIP_CENTOS_7 + # - label: ":centos: [CentOS] 7 Build" + # command: + # - "mkdir /workdir/build && cd /workdir/build && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /workdir && make -j $(getconf _NPROCESSORS_ONLN)" + # - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + # agents: + # queue: "automation-large-builder-fleet" + # plugins: + # - docker#v3.2.0: + # shell: ["/bin/bash", "-i", "-e", "-c"] + # debug: $DEBUG + # image: "eosio/producer:ci-centos-7" + # timeout: $BUILD_TIMEOUT + # skip: $SKIP_CENTOS_7 - - label: ":ubuntu: [Ubuntu] 16.04 Build" - command: - - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' /workdir && make -j $(getconf _NPROCESSORS_ONLN)" - - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" - agents: - queue: "automation-large-builder-fleet" - plugins: - - docker#v3.2.0: - shell: ["/bin/bash", "-i", "-e", "-c"] - debug: $DEBUG - image: "eosio/producer:ci-ubuntu-16.04" - timeout: $BUILD_TIMEOUT - skip: $SKIP_UBUNTU_16 + # - label: ":ubuntu: [Ubuntu] 16.04 Build" + # command: + # - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' /workdir && make -j $(getconf _NPROCESSORS_ONLN)" + # - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + # agents: + # queue: "automation-large-builder-fleet" + # plugins: + # - docker#v3.2.0: + # shell: ["/bin/bash", "-i", "-e", "-c"] + # debug: $DEBUG + # image: "eosio/producer:ci-ubuntu-16.04" + # timeout: $BUILD_TIMEOUT + # skip: $SKIP_UBUNTU_16 - - label: ":ubuntu: [Ubuntu] 18.04 Build" - command: - - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /workdir && make -j $(getconf _NPROCESSORS_ONLN)" - - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" - agents: - queue: "automation-large-builder-fleet" - plugins: - - docker#v3.2.0: - shell: ["/bin/bash", "-i", "-e", "-c"] - debug: $DEBUG - image: "eosio/producer:ci-ubuntu-18.04" - timeout: $BUILD_TIMEOUT - skip: $SKIP_UBUNTU_18 + # - label: ":ubuntu: [Ubuntu] 18.04 Build" + # command: + # - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /workdir && make -j $(getconf _NPROCESSORS_ONLN)" + # - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + # agents: + # queue: "automation-large-builder-fleet" + # plugins: + # - docker#v3.2.0: + # shell: ["/bin/bash", "-i", "-e", "-c"] + # debug: $DEBUG + # image: "eosio/producer:ci-ubuntu-18.04" + # timeout: $BUILD_TIMEOUT + # skip: $SKIP_UBUNTU_18 - - label: ":darwin: [Darwin] 10.14 Build" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && mkdir build && cd build && cmake .. && make -j$(getconf _NPROCESSORS_ONLN)" - - "cd eos/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew" - modify-cpu: 12 - modify-ram: 24 - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-large-node-fleet" - timeout: $BUILD_TIMEOUT - skip: $SKIP_MOJAVE \ No newline at end of file + # - label: ":darwin: [Darwin] 10.14 Build" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && mkdir build && cd build && cmake .. && make -j$(getconf _NPROCESSORS_ONLN)" + # - "cd eos/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew" + # modify-cpu: 12 + # modify-ram: 24 + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-large-node-fleet" + # timeout: $BUILD_TIMEOUT + # skip: $SKIP_MOJAVE \ No newline at end of file From ea4bebe893339a0d892f05e6599da9cf5cf6b433 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 15 Jul 2019 16:44:07 -0400 Subject: [PATCH 115/528] no need for build --- .cicd/base-images.yml | 2 +- .cicd/generate-base-images.sh | 13 ------------- 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/.cicd/base-images.yml b/.cicd/base-images.yml index 005b53d8b8b..b5ae452b5de 100644 --- a/.cicd/base-images.yml +++ b/.cicd/base-images.yml @@ -8,7 +8,7 @@ steps: - label: ":aws: [Amazon] 2 Ensure Docker Image" command: - - "pwd" + - "/workdir/.cicd/generate-base-images.sh" agents: queue: "automation-large-builder-fleet" plugins: diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index a5e4ade16e2..b3fb5fcaff9 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -16,19 +16,6 @@ function determine-hash() { export HASHED_IMAGE_TAG="${IMAGE_TAG}-${DETERMINED_HASH}" } -function build() { - # Per distro additions to docker command - [[ $IMAGE_TAG == centos-7 ]] && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" - [[ $IMAGE_TAG == amazonlinux-2 ]] && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # explicitly set to clang as gcc is default - [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" # pinned only - [[ $IMAGE_TAG == amazonlinux-2 || $IMAGE_TAG == centos-7 ]] && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="$EXPORTS export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) - # DOCKER - docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-${HASHED_IMAGE_TAG} bash -c " \ - $PRE_COMMANDS ccache -s && \ - mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN) - ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" -} - function generate_docker_image() { # If we cannot pull the image, we build and push it first. echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin From 6d7252343c2b06a455880f8e3f073407a389bd89 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 16 Jul 2019 09:55:39 -0400 Subject: [PATCH 116/528] automation-eos-builder-fleet instead of large fleet + various fixes to generate script and pipeline --- .cicd/base-images.yml | 92 +++++++++-------------------------- .cicd/generate-base-images.sh | 5 +- .cicd/pipeline.yml | 8 +-- 3 files changed, 31 insertions(+), 74 deletions(-) diff --git a/.cicd/base-images.yml b/.cicd/base-images.yml index b5ae452b5de..fbea320aaea 100644 --- a/.cicd/base-images.yml +++ b/.cicd/base-images.yml @@ -2,83 +2,37 @@ env: BUILD_TIMEOUT: 120 TEST_TIMEOUT: 60 TIMEOUT: 120 - VERBOSE: true steps: - label: ":aws: [Amazon] 2 Ensure Docker Image" command: - - "/workdir/.cicd/generate-base-images.sh" + - ".cicd/generate-base-images.sh amazonlinux-2" agents: - queue: "automation-large-builder-fleet" - plugins: - - docker#v3.2.0: - shell: ["/bin/bash", "-i", "-e", "-c"] - debug: $DEBUG - image: "eosio/producer:ci-amazonlinux-2" + queue: "automation-eos-builder-fleet" timeout: $BUILD_TIMEOUT skip: $SKIP_AMAZON_LINUX_2 - # - label: ":centos: [CentOS] 7 Build" - # command: - # - "mkdir /workdir/build && cd /workdir/build && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /workdir && make -j $(getconf _NPROCESSORS_ONLN)" - # - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" - # agents: - # queue: "automation-large-builder-fleet" - # plugins: - # - docker#v3.2.0: - # shell: ["/bin/bash", "-i", "-e", "-c"] - # debug: $DEBUG - # image: "eosio/producer:ci-centos-7" - # timeout: $BUILD_TIMEOUT - # skip: $SKIP_CENTOS_7 - - # - label: ":ubuntu: [Ubuntu] 16.04 Build" - # command: - # - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' /workdir && make -j $(getconf _NPROCESSORS_ONLN)" - # - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" - # agents: - # queue: "automation-large-builder-fleet" - # plugins: - # - docker#v3.2.0: - # shell: ["/bin/bash", "-i", "-e", "-c"] - # debug: $DEBUG - # image: "eosio/producer:ci-ubuntu-16.04" - # timeout: $BUILD_TIMEOUT - # skip: $SKIP_UBUNTU_16 + - label: ":centos: [CentOS] 7 Build" + command: + - ".cicd/generate-base-images.sh centos-7" + agents: + queue: "automation-eos-builder-fleet" + timeout: $BUILD_TIMEOUT + skip: $SKIP_CENTOS_7 - # - label: ":ubuntu: [Ubuntu] 18.04 Build" - # command: - # - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /workdir && make -j $(getconf _NPROCESSORS_ONLN)" - # - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" - # agents: - # queue: "automation-large-builder-fleet" - # plugins: - # - docker#v3.2.0: - # shell: ["/bin/bash", "-i", "-e", "-c"] - # debug: $DEBUG - # image: "eosio/producer:ci-ubuntu-18.04" - # timeout: $BUILD_TIMEOUT - # skip: $SKIP_UBUNTU_18 + - label: ":ubuntu: [Ubuntu] 16.04 Build" + command: + - ".cicd/generate-base-images.sh ubuntu-16.04" + agents: + queue: "automation-eos-builder-fleet" + timeout: $BUILD_TIMEOUT + skip: $SKIP_UBUNTU_16 - # - label: ":darwin: [Darwin] 10.14 Build" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && mkdir build && cd build && cmake .. && make -j$(getconf _NPROCESSORS_ONLN)" - # - "cd eos/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew" - # modify-cpu: 12 - # modify-ram: 24 - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-large-node-fleet" - # timeout: $BUILD_TIMEOUT - # skip: $SKIP_MOJAVE \ No newline at end of file + - label: ":ubuntu: [Ubuntu] 18.04 Build" + command: + - ".cicd/generate-base-images.sh ubuntu-18.04" + agents: + queue: "automation-eos-builder-fleet" + timeout: $BUILD_TIMEOUT + skip: $SKIP_UBUNTU_18 diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index b3fb5fcaff9..5b11ca21566 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -1,6 +1,9 @@ #!/usr/bin/env bash set -eo pipefail +[[ -z $1 ]] && echo "Must provide the distro IMAGE_TAG name (example: ubuntu-18.04" && exit 1 +export IMAGE_TAG=$1 + function determine-hash() { # Determine the sha1 hash of all dockerfiles in the .cicd directory. [[ -z $1 ]] && echo "Please provide the files to be hashed (wildcards supported)" && exit 1 @@ -18,7 +21,7 @@ function determine-hash() { function generate_docker_image() { # If we cannot pull the image, we build and push it first. - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin + # echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin cd ./.cicd docker build -t eosio/producer:ci-${HASHED_IMAGE_TAG} -f ./${IMAGE_TAG}.dockerfile . docker push eosio/producer:ci-${HASHED_IMAGE_TAG} diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index d402869ba26..267e8e75752 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -11,7 +11,7 @@ steps: - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' /workdir && make -j $(getconf _NPROCESSORS_ONLN)" - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" agents: - queue: "automation-large-builder-fleet" + queue: "automation-eos-builder-fleet" plugins: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] @@ -25,7 +25,7 @@ steps: - "mkdir /workdir/build && cd /workdir/build && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /workdir && make -j $(getconf _NPROCESSORS_ONLN)" - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" agents: - queue: "automation-large-builder-fleet" + queue: "automation-eos-builder-fleet" plugins: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] @@ -39,7 +39,7 @@ steps: - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' /workdir && make -j $(getconf _NPROCESSORS_ONLN)" - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" agents: - queue: "automation-large-builder-fleet" + queue: "automation-eos-builder-fleet" plugins: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] @@ -53,7 +53,7 @@ steps: - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /workdir && make -j $(getconf _NPROCESSORS_ONLN)" - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" agents: - queue: "automation-large-builder-fleet" + queue: "automation-eos-builder-fleet" plugins: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] From 2a21dde9eab0370c77e5f0439ba1f6f5f3535bfc Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 16 Jul 2019 11:40:23 -0400 Subject: [PATCH 117/528] new queue --- .cicd/base-images.yml | 8 ++++---- .cicd/generate-base-images.sh | 2 +- .cicd/pipeline.yml | 3 +++ 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.cicd/base-images.yml b/.cicd/base-images.yml index fbea320aaea..6485f2319c4 100644 --- a/.cicd/base-images.yml +++ b/.cicd/base-images.yml @@ -9,7 +9,7 @@ steps: command: - ".cicd/generate-base-images.sh amazonlinux-2" agents: - queue: "automation-eos-builder-fleet" + queue: "automation-eos-dockerhub-image-builder-fleet" timeout: $BUILD_TIMEOUT skip: $SKIP_AMAZON_LINUX_2 @@ -17,7 +17,7 @@ steps: command: - ".cicd/generate-base-images.sh centos-7" agents: - queue: "automation-eos-builder-fleet" + queue: "automation-eos-dockerhub-image-builder-fleet" timeout: $BUILD_TIMEOUT skip: $SKIP_CENTOS_7 @@ -25,7 +25,7 @@ steps: command: - ".cicd/generate-base-images.sh ubuntu-16.04" agents: - queue: "automation-eos-builder-fleet" + queue: "automation-eos-dockerhub-image-builder-fleet" timeout: $BUILD_TIMEOUT skip: $SKIP_UBUNTU_16 @@ -33,6 +33,6 @@ steps: command: - ".cicd/generate-base-images.sh ubuntu-18.04" agents: - queue: "automation-eos-builder-fleet" + queue: "automation-eos-dockerhub-image-builder-fleet" timeout: $BUILD_TIMEOUT skip: $SKIP_UBUNTU_18 diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index 5b11ca21566..06db8458dd7 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -[[ -z $1 ]] && echo "Must provide the distro IMAGE_TAG name (example: ubuntu-18.04" && exit 1 +[[ -z $1 ]] && echo "Must provide the distro IMAGE_TAG name (example: ubuntu-18.04) OR provide 'trigger' if this is the first step in a pipeline" && exit 1 export IMAGE_TAG=$1 function determine-hash() { diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 267e8e75752..6fbee44f114 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -6,6 +6,9 @@ env: steps: + - trigger: "eosio-base-images-beta" + label: ":docker: Ensure base images exist" + - label: ":aws: [Amazon] 2 Build" command: - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' /workdir && make -j $(getconf _NPROCESSORS_ONLN)" From 27933675edbb4807e7153db119a2fa3251e67dc1 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 16 Jul 2019 11:42:05 -0400 Subject: [PATCH 118/528] wiat --- .cicd/pipeline.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 6fbee44f114..7bd39e6c93a 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -9,6 +9,8 @@ steps: - trigger: "eosio-base-images-beta" label: ":docker: Ensure base images exist" + - wait + - label: ":aws: [Amazon] 2 Build" command: - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' /workdir && make -j $(getconf _NPROCESSORS_ONLN)" From 0baed42a8c189ccd9ef464b72841b7e02dc8d2a6 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 16 Jul 2019 11:44:40 -0400 Subject: [PATCH 119/528] branch pass in --- .cicd/pipeline.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 7bd39e6c93a..488c38d945e 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -8,9 +8,12 @@ steps: - trigger: "eosio-base-images-beta" label: ":docker: Ensure base images exist" - + build: + commit: "${BUILDKITE_COMMIT}" + branch: "${BUILDKITE_BRANCH}" + - wait - + - label: ":aws: [Amazon] 2 Build" command: - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' /workdir && make -j $(getconf _NPROCESSORS_ONLN)" From 215cec39d8dbdce21802309302ae15ae9516f772 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 16 Jul 2019 11:53:07 -0400 Subject: [PATCH 120/528] hashes --- .cicd/pipeline.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 488c38d945e..38512f7e2e2 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -11,7 +11,7 @@ steps: build: commit: "${BUILDKITE_COMMIT}" branch: "${BUILDKITE_BRANCH}" - + - wait - label: ":aws: [Amazon] 2 Build" @@ -24,7 +24,7 @@ steps: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG - image: "eosio/producer:ci-amazonlinux-2" + image: "eosio/producer:ci-amazonlinux-2-266a1fe17771b1c1e9aeb3087516dbe8570e0e25" timeout: $BUILD_TIMEOUT skip: $SKIP_AMAZON_LINUX_2 @@ -38,7 +38,7 @@ steps: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG - image: "eosio/producer:ci-centos-7" + image: "eosio/producer:ci-centos-7-9b1b0f1e15eba74234860434ebd82b93b23dd1de" timeout: $BUILD_TIMEOUT skip: $SKIP_CENTOS_7 @@ -52,7 +52,7 @@ steps: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG - image: "eosio/producer:ci-ubuntu-16.04" + image: "eosio/producer:ci-ubuntu-16.04-0b3d8a452a4dd471d073d12d7e5971e2416d0536" timeout: $BUILD_TIMEOUT skip: $SKIP_UBUNTU_16 @@ -66,7 +66,7 @@ steps: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG - image: "eosio/producer:ci-ubuntu-18.04" + image: "eosio/producer:ci-ubuntu-18.04-254c25845ae6f00c8c4c63a90a5f49e7e61b5662" timeout: $BUILD_TIMEOUT skip: $SKIP_UBUNTU_18 From 78ef6fd3d7bab7015161ecbca821cf4d16acd780 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 16 Jul 2019 12:16:20 -0400 Subject: [PATCH 121/528] login fix --- .cicd/generate-base-images.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index 06db8458dd7..1ccbd2d3e06 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -21,7 +21,7 @@ function determine-hash() { function generate_docker_image() { # If we cannot pull the image, we build and push it first. - # echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin + docker login -u "$DOCKER_USERNAME" -p $DOCKER_PASSWORD cd ./.cicd docker build -t eosio/producer:ci-${HASHED_IMAGE_TAG} -f ./${IMAGE_TAG}.dockerfile . docker push eosio/producer:ci-${HASHED_IMAGE_TAG} From 98190d08c78103457796430bebe64c790994990d Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 16 Jul 2019 12:20:17 -0400 Subject: [PATCH 122/528] test --- .cicd/generate-base-images.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index 1ccbd2d3e06..d341f5e1614 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -21,6 +21,7 @@ function determine-hash() { function generate_docker_image() { # If we cannot pull the image, we build and push it first. + echo "PASSWORD: $DOCKER_PASSWORD" docker login -u "$DOCKER_USERNAME" -p $DOCKER_PASSWORD cd ./.cicd docker build -t eosio/producer:ci-${HASHED_IMAGE_TAG} -f ./${IMAGE_TAG}.dockerfile . From a47a93949ef0097523ece4614654b8c954ac4ecf Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 16 Jul 2019 12:23:08 -0400 Subject: [PATCH 123/528] fixes --- .cicd/generate-base-images.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index d341f5e1614..222b7b90a51 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -21,8 +21,7 @@ function determine-hash() { function generate_docker_image() { # If we cannot pull the image, we build and push it first. - echo "PASSWORD: $DOCKER_PASSWORD" - docker login -u "$DOCKER_USERNAME" -p $DOCKER_PASSWORD + docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD cd ./.cicd docker build -t eosio/producer:ci-${HASHED_IMAGE_TAG} -f ./${IMAGE_TAG}.dockerfile . docker push eosio/producer:ci-${HASHED_IMAGE_TAG} From 1b5c7258504ce44766d6417ef2c7ecf4c4cd8814 Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Tue, 16 Jul 2019 15:44:21 -0400 Subject: [PATCH 124/528] removes unused files/code --- .cicd/clang-devtoolset8-support.patch | 55 --------------------------- .cicd/eosio_build_a2.sh | 13 ------- .cicd/eosio_build_c7.sh | 13 ------- .cicd/eosio_build_u16.sh | 13 ------- .cicd/eosio_build_u18.sh | 13 ------- .travis.yml | 9 ----- 6 files changed, 116 deletions(-) delete mode 100644 .cicd/clang-devtoolset8-support.patch delete mode 100755 .cicd/eosio_build_a2.sh delete mode 100755 .cicd/eosio_build_c7.sh delete mode 100755 .cicd/eosio_build_u16.sh delete mode 100755 .cicd/eosio_build_u18.sh diff --git a/.cicd/clang-devtoolset8-support.patch b/.cicd/clang-devtoolset8-support.patch deleted file mode 100644 index 64a946e26cd..00000000000 --- a/.cicd/clang-devtoolset8-support.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 32b65345c5760295d04c95e0abb3653fe20ffd16 Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Tue, 9 Apr 2019 13:26:10 +0000 -Subject: [PATCH] Add support for detection of devtoolset-8 - -Summary: -The current llvm/clang et al. project can be built with the latest developer toolset (devtoolset-8) on RHEL, which provides GCC 8.2.1. -However, the result compiler will not identify this toolset itself when compiling programs, which is of course not desirable. - -After the patch - which simply adds the name of the developer toolset to the existing list - it gets identified and selected, as shown below: - -[bamboo@bamboo llvm-project]$ clang -v -clang version 9.0.0 (https://github.com/llvm/llvm-project.git e5ac385fb1ffa4bd3875ea6a4d24efdbd7814572) -Target: x86_64-unknown-linux-gnu -Thread model: posix -InstalledDir: /home/bamboo/llvm/bin -Found candidate GCC installation: /opt/rh/devtoolset-4/root/usr/lib/gcc/x86_64-redhat-linux/5.2.1 -Found candidate GCC installation: /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7 -Found candidate GCC installation: /opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8 -Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/4.8.2 -Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/4.8.5 -Selected GCC installation: /opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8 -Candidate multilib: .;@m64 -Candidate multilib: 32;@m32 -Selected multilib: .;@m64 - -Patch By: Radu-Adrian Popescu - -Reviewers: tstellar, fedor.sergeev - -Reviewed By: tstellar - -Subscribers: jdoerfert, cfe-commits - -Tags: #clang - -Differential Revision: https://reviews.llvm.org/D59987 - -llvm-svn: 358002 ---- - clang/lib/Driver/ToolChains/Gnu.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp -index 2a58f0f7142..8915e3f948f 100644 ---- a/clang/lib/Driver/ToolChains/Gnu.cpp -+++ b/clang/lib/Driver/ToolChains/Gnu.cpp -@@ -1875,6 +1875,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes( - // Non-Solaris is much simpler - most systems just go with "/usr". - if (SysRoot.empty() && TargetTriple.getOS() == llvm::Triple::Linux) { - // Yet, still look for RHEL devtoolsets. -+ Prefixes.push_back("/opt/rh/devtoolset-8/root/usr"); - Prefixes.push_back("/opt/rh/devtoolset-7/root/usr"); - Prefixes.push_back("/opt/rh/devtoolset-6/root/usr"); - Prefixes.push_back("/opt/rh/devtoolset-4/root/usr"); diff --git a/.cicd/eosio_build_a2.sh b/.cicd/eosio_build_a2.sh deleted file mode 100755 index a477a9511aa..00000000000 --- a/.cicd/eosio_build_a2.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash -set -eu - -rm -rf ./eos -docker build -t eosio/producer:ci-amazonlinux-2 -f amazonlinux-2.dockerfile . -git clone https://github.com/EOSIO/eos -cd eos -git checkout release/1.8.x -git submodule update --init --recursive - -docker run --rm -v $(pwd):/eos eosio/producer:ci-amazonlinux-2 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j6 && mkdir -p /eos/data/mongodb && mongod --fork --dbpath /eos/data/mongodb -f /eos/scripts/mongod.conf --logpath /eos/mongod.log && ctest -j 8 -LE _tests --output-on-failure -T Test" - -cd .. && rm -rf eos \ No newline at end of file diff --git a/.cicd/eosio_build_c7.sh b/.cicd/eosio_build_c7.sh deleted file mode 100755 index 498a78a7f00..00000000000 --- a/.cicd/eosio_build_c7.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash -set -eu - -rm -rf ./eos -docker build -t eosio/producer:ci-centos-7 -f centos-7.dockerfile . -git clone https://github.com/EOSIO/eos -cd eos -git checkout release/1.8.x -git submodule update --init --recursive - -docker run --rm -v $(pwd):/eos eosio/producer:ci-centos-7 bash -c "source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j6 && mkdir -p /eos/data/mongodb && mongod --fork --dbpath /eos/data/mongodb -f /eos/scripts/mongod.conf --logpath /eos/mongod.log && ctest -j 8 -LE _tests --output-on-failure -T Test" - -cd .. && rm -rf eos \ No newline at end of file diff --git a/.cicd/eosio_build_u16.sh b/.cicd/eosio_build_u16.sh deleted file mode 100755 index 8dbd9d65888..00000000000 --- a/.cicd/eosio_build_u16.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash -set -eu - -rm -rf ./eos -docker build -t eosio/producer:ci-ubuntu-16.04-ccache -f ubuntu-16.04.dockerfile . -git clone https://github.com/EOSIO/eos -cd eos -git checkout release/1.8.x -git submodule update --init --recursive - -docker run --rm -v $(pwd):/eos eosio/producer:ci-ubuntu-16.04-ccache bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache /eos && make -j6 && mkdir -p /eos/data/mongodb && mongod --fork --dbpath /eos/data/mongodb -f /eos/scripts/mongod.conf --logpath /eos/mongod.log && ctest -j 8 -LE _tests --output-on-failure -T Test" - -cd .. && rm -rf eos \ No newline at end of file diff --git a/.cicd/eosio_build_u18.sh b/.cicd/eosio_build_u18.sh deleted file mode 100755 index 1ae903f7b36..00000000000 --- a/.cicd/eosio_build_u18.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash -set -eu - -rm -rf ./eos -docker build -t eosio/producer:ci-ubuntu-18.04 -f ubuntu-18.04.dockerfile . -git clone https://github.com/EOSIO/eos -cd eos -git checkout release/1.8.x -git submodule update --init --recursive - -docker run --rm -v $(pwd):/eos eosio/producer:ci-ubuntu-18.04 bash -c "mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos && make -j6 && mkdir -p /eos/data/mongodb && mongod --fork --dbpath /eos/data/mongodb -f /eos/scripts/mongod.conf --logpath /eos/mongod.log && ctest -j 8 -LE _tests --output-on-failure -T Test" - -cd .. && rm -rf eos \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 088be34bb86..8a1b85a194e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -49,15 +49,6 @@ before_cache: | ./.cicd/travis-before-cache.sh before_install: | ./.cicd/travis-before-install.sh -# DOCKER -# script: -# # - docker build -t eosio/ci:ubuntu-18.04 -f ./.cicd/ubuntu-18.04.dockerfile . -# - docker build -t eosio/producer:ci-ubuntu-18.04 -f ./.cicd/ubuntu-18.04.dockerfile . -# after_success: -# - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin -# # - docker push eosio/ci:ubuntu-18.04 -# - docker push eosio/producer:ci-ubuntu-18.04 -# EOSIO script: | ./.cicd/travis-build.sh notifications: From d0b0206b0e806201242d4a640816db789463adf1 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 16 Jul 2019 17:08:11 -0400 Subject: [PATCH 125/528] Update generate-base-images.sh --- .cicd/generate-base-images.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index 222b7b90a51..dc8cb155632 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -[[ -z $1 ]] && echo "Must provide the distro IMAGE_TAG name (example: ubuntu-18.04) OR provide 'trigger' if this is the first step in a pipeline" && exit 1 +[[ -z $1 ]] && echo "Must provide the distro IMAGE_TAG name (example: ubuntu-18.04)" && exit 1 export IMAGE_TAG=$1 function determine-hash() { @@ -35,4 +35,4 @@ if docker pull eosio/producer:ci-${HASHED_IMAGE_TAG}; then echo "eosio/producer:ci-${HASHED_IMAGE_TAG} already exists" else generate_docker_image -fi \ No newline at end of file +fi From 43a730ef2797831afc24f9d9aa84b0f71091b205 Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Tue, 16 Jul 2019 17:52:03 -0400 Subject: [PATCH 126/528] removes cache, before install --- .cicd/travis-before-cache.sh | 5 ----- .cicd/travis-before-install.sh | 8 -------- .travis.yml | 7 ++----- 3 files changed, 2 insertions(+), 18 deletions(-) delete mode 100755 .cicd/travis-before-cache.sh delete mode 100755 .cicd/travis-before-install.sh diff --git a/.cicd/travis-before-cache.sh b/.cicd/travis-before-cache.sh deleted file mode 100755 index 2b31853a04b..00000000000 --- a/.cicd/travis-before-cache.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -if [[ "$(uname)" == Darwin ]]; then - brew cleanup -fi diff --git a/.cicd/travis-before-install.sh b/.cicd/travis-before-install.sh deleted file mode 100755 index 1d2cc2254bb..00000000000 --- a/.cicd/travis-before-install.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -set -e -# print information about host resources -echo '===== RESOURCES =====' -echo "$(getconf _NPROCESSORS_ONLN) CPU cores found." -if [[ "$(uname)" == Darwin ]]; then top -l 1 -s 0 | grep PhysMem; else vmstat -sSM | grep -i 'memory'; fi -df -h -echo '=====================' \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 8a1b85a194e..6ecac22388f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -45,12 +45,9 @@ matrix: - openssl - boost@1.70 - ccache -before_cache: | - ./.cicd/travis-before-cache.sh -before_install: | - ./.cicd/travis-before-install.sh script: | - ./.cicd/travis-build.sh + #./.cicd/travis-build.sh + echo "$PATH" notifications: webhooks: secure: gmqODqoFAil2cR7v++ibqRNECBOSD/VJX+2qPa7XptkVWmVMzbII5CNgBQAscjFsp9arHPMXCCzkBi847PCSiHdsnYFQ4T273FLRWr3cDbLjfmR+BJ7dGKvQnlpSi2Ze2TtAPJyRl+iv+cxDj7cWE5zw2c4xbgh1a/cNO+/ayUfFkyMEIfVWRsHkdkra4gOLywou0XRLHr4CX1V60uU7uuqATnIMMi7gQYwiKKtZqjkbf8wcBvZirDhjQ6lDPN5tnZo6L4QHmqjtzNJg/UrD4h+zES53dLVI4uxlXRAwwpw+mJOFA3QE/3FT+bMQjLCffUz4gZaWcdgebPYzrwSWUbJoFdWAOwcTqivQY0FIQzcz/r6uGWcwWTavzkPEbg68BVM2BZId/0110J6feeTkpJ3MPV+UsIoGTvbg50vi/I06icftuZ/cLqDj3+Emifm7Jlr1sRTSdqtYAJj/2ImUfsb46cwgjAVhFOTvc+KuPgJQgvOXV7bZkxEr5qDWo8Al2sV8BWb83j1rMlZ4LfERokImDVqxu2kkcunchzvhtYFTesSpmwegVpwceCtOtO0rEUgATnfTEHzk2rm8nuz4UtidsQnluUKqmKD0QCqHXFfn+3ZRJsDqr+iCYdxv1BAeAVc9q1L7bgrKDMGiJgkxuhZ2v3J2SflWLvjZjFDduuc= From 27bcb91eecad2420162451df67c9920145f2b0e4 Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Tue, 16 Jul 2019 17:53:56 -0400 Subject: [PATCH 127/528] tests environment path injection --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 6ecac22388f..02832238741 100644 --- a/.travis.yml +++ b/.travis.yml @@ -45,6 +45,8 @@ matrix: - openssl - boost@1.70 - ccache + env: + - PATH='/foo/bar/fizz:$PATH' script: | #./.cicd/travis-build.sh echo "$PATH" From 79e3454523b3a0b96cfa9b4b72669fc9334d1d87 Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Tue, 16 Jul 2019 21:16:20 -0400 Subject: [PATCH 128/528] doublequotes --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 02832238741..5ff8a388848 100644 --- a/.travis.yml +++ b/.travis.yml @@ -46,7 +46,7 @@ matrix: - boost@1.70 - ccache env: - - PATH='/foo/bar/fizz:$PATH' + - PATH="/foo/bar/fizz:$PATH" script: | #./.cicd/travis-build.sh echo "$PATH" From c1a85513dbad2906442caf1af91215eaef2a2c77 Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Tue, 16 Jul 2019 21:28:17 -0400 Subject: [PATCH 129/528] injects ccache into path via environment variable --- .cicd/travis-build.sh | 2 -- .travis.yml | 5 ++--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index f94d5a77397..a48f1af3698 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -2,8 +2,6 @@ set -e CPU_CORES=$(getconf _NPROCESSORS_ONLN) if [[ "$(uname)" == Darwin ]]; then - ccache -s - export PATH="/usr/local/opt/ccache/libexec:$PATH" echo 'Detected Darwin, building natively.' [[ -d eos ]] && cd eos [[ ! -d build ]] && mkdir build diff --git a/.travis.yml b/.travis.yml index 5ff8a388848..168d4071571 100644 --- a/.travis.yml +++ b/.travis.yml @@ -46,10 +46,9 @@ matrix: - boost@1.70 - ccache env: - - PATH="/foo/bar/fizz:$PATH" + - PATH="/usr/local/opt/ccache/libexec:$PATH" script: | - #./.cicd/travis-build.sh - echo "$PATH" + ./.cicd/travis-build.sh notifications: webhooks: secure: gmqODqoFAil2cR7v++ibqRNECBOSD/VJX+2qPa7XptkVWmVMzbII5CNgBQAscjFsp9arHPMXCCzkBi847PCSiHdsnYFQ4T273FLRWr3cDbLjfmR+BJ7dGKvQnlpSi2Ze2TtAPJyRl+iv+cxDj7cWE5zw2c4xbgh1a/cNO+/ayUfFkyMEIfVWRsHkdkra4gOLywou0XRLHr4CX1V60uU7uuqATnIMMi7gQYwiKKtZqjkbf8wcBvZirDhjQ6lDPN5tnZo6L4QHmqjtzNJg/UrD4h+zES53dLVI4uxlXRAwwpw+mJOFA3QE/3FT+bMQjLCffUz4gZaWcdgebPYzrwSWUbJoFdWAOwcTqivQY0FIQzcz/r6uGWcwWTavzkPEbg68BVM2BZId/0110J6feeTkpJ3MPV+UsIoGTvbg50vi/I06icftuZ/cLqDj3+Emifm7Jlr1sRTSdqtYAJj/2ImUfsb46cwgjAVhFOTvc+KuPgJQgvOXV7bZkxEr5qDWo8Al2sV8BWb83j1rMlZ4LfERokImDVqxu2kkcunchzvhtYFTesSpmwegVpwceCtOtO0rEUgATnfTEHzk2rm8nuz4UtidsQnluUKqmKD0QCqHXFfn+3ZRJsDqr+iCYdxv1BAeAVc9q1L7bgrKDMGiJgkxuhZ2v3J2SflWLvjZjFDduuc= From fedd6ce08549e2255e3241e90d2cd53b45036909 Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Wed, 17 Jul 2019 08:38:07 -0400 Subject: [PATCH 130/528] buildplskthxbai From 18a6f87476fbbc403284734e9221b2d4b439055b Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Wed, 17 Jul 2019 11:57:55 -0400 Subject: [PATCH 131/528] removes pull --- .cicd/travis-build.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index a48f1af3698..c9aaba8fad2 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -15,8 +15,6 @@ if [[ "$(uname)" == Darwin ]]; then ctest -j $CPU_CORES -LE _tests --output-on-failure -T Test # run unit tests else # linux echo 'Detected Linux, building in Docker.' - echo "$ docker pull eosio/producer:ci-${IMAGE_TAG}" - docker pull eosio/producer:ci-${IMAGE_TAG} # per-distro additions to docker commands [[ $IMAGE_TAG == centos-7 ]] && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" [[ $IMAGE_TAG == amazonlinux-2 ]] && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # explicitly set to clang as gcc is default From a22a0a066e5c7b0a176dd19eb67a5ea4fb51239e Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 17 Jul 2019 12:28:10 -0400 Subject: [PATCH 132/528] added manifest inspect instead of pull to speed up base image check and avoid docker pull downloading --- .cicd/generate-base-images.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index dc8cb155632..f4649a1371e 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -31,7 +31,8 @@ function generate_docker_image() { determine-hash ".cicd/${IMAGE_TAG}.dockerfile" [[ -z $DETERMINED_HASH ]] && echo "DETERMINED_HASH empty! (check determine-hash function)" && exit 1 echo "Looking for $IMAGE_TAG-$DETERMINED_HASH" -if docker pull eosio/producer:ci-${HASHED_IMAGE_TAG}; then +DOCKER_CLI_EXPERIMENTAL=enabled # needed for docker manifest inspect +if docker manifest inspect eosio/producer:ci-${HASHED_IMAGE_TAG}; then echo "eosio/producer:ci-${HASHED_IMAGE_TAG} already exists" else generate_docker_image From 5f20206d0af74f3e90baae11f9c7b2e5eed29dc0 Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Wed, 17 Jul 2019 12:30:54 -0400 Subject: [PATCH 133/528] builds environment settings into containers --- .cicd/amazonlinux-2.dockerfile | 7 ++++++- .cicd/centos-7.dockerfile | 5 ++++- .cicd/travis-build.sh | 5 ----- .cicd/ubuntu-16.04.dockerfile | 4 ++++ .cicd/ubuntu-18.04.dockerfile | 12 +----------- 5 files changed, 15 insertions(+), 18 deletions(-) diff --git a/.cicd/amazonlinux-2.dockerfile b/.cicd/amazonlinux-2.dockerfile index fb6f178cdb2..e3c24192a53 100644 --- a/.cicd/amazonlinux-2.dockerfile +++ b/.cicd/amazonlinux-2.dockerfile @@ -70,4 +70,9 @@ ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin # CCACHE RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm \ - && yum install -y ccache-3.3.4-1.el7.x86_64.rpm \ No newline at end of file + && yum install -y ccache-3.3.4-1.el7.x86_64.rpm + +# explicitly set to clang as gcc is default +ENV CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" +ENV EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" + diff --git a/.cicd/centos-7.dockerfile b/.cicd/centos-7.dockerfile index 95048b5361c..de2549f708b 100644 --- a/.cicd/centos-7.dockerfile +++ b/.cicd/centos-7.dockerfile @@ -86,4 +86,7 @@ RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c ## Needed as devtoolset uses c++ and it's not in ccache by default RUN cd /usr/lib64/ccache && ln -s ../../bin/ccache c++ ## We need to tell ccache to actually use devtoolset-8 instead of the default system one (ccache resets anything set in PATH when it launches) -ENV CCACHE_PATH="/opt/rh/devtoolset-8/root/usr/bin" \ No newline at end of file +ENV CCACHE_PATH="/opt/rh/devtoolset-8/root/usr/bin" + +ENV PRECOMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" +ENV EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index c9aaba8fad2..bf370f322a4 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -15,11 +15,6 @@ if [[ "$(uname)" == Darwin ]]; then ctest -j $CPU_CORES -LE _tests --output-on-failure -T Test # run unit tests else # linux echo 'Detected Linux, building in Docker.' - # per-distro additions to docker commands - [[ $IMAGE_TAG == centos-7 ]] && PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" - [[ $IMAGE_TAG == amazonlinux-2 ]] && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # explicitly set to clang as gcc is default - [[ $IMAGE_TAG == ubuntu-16.04 ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" # pinned only - [[ $IMAGE_TAG == amazonlinux-2 || $IMAGE_TAG == centos-7 ]] && EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" || EXPORTS="$EXPORTS export PATH=/usr/lib/ccache:$PATH &&" # ccache needs to come first in the list (devtoolset-8 overrides that if we include this in the Dockerfile) # docker docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-${IMAGE_TAG} bash -c " \ $PRE_COMMANDS ccache -s && \ diff --git a/.cicd/ubuntu-16.04.dockerfile b/.cicd/ubuntu-16.04.dockerfile index e2b9f89c6f7..24eceb741a9 100644 --- a/.cicd/ubuntu-16.04.dockerfile +++ b/.cicd/ubuntu-16.04.dockerfile @@ -82,3 +82,7 @@ RUN curl -LO https://github.com/ccache/ccache/releases/download/v3.4.1/ccache-3. && make \ && make install \ && cd / && rm -rf ccache-3.4.1/ + +# pinned only +ENV CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" +ENV EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" \ No newline at end of file diff --git a/.cicd/ubuntu-18.04.dockerfile b/.cicd/ubuntu-18.04.dockerfile index 4ff9ac94573..efd7031f09f 100644 --- a/.cicd/ubuntu-18.04.dockerfile +++ b/.cicd/ubuntu-18.04.dockerfile @@ -61,14 +61,4 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o RUN apt-get install -y ccache ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin - -# Git clone, checkout, and submodule update. -# Make build directory. -# mkdir /eos/build -# cd /eos/build -# cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos -# make -# Make mongodb direcotry. Start mongo in background. -# mkdir -p /eos/data/mongodb -# mongod --fork --dbpath /eos/data/mongodb -f /eos/scripts/mongod.conf --logpath /eos/mongod.log -# make test +ENV EXPORTS="$EXPORTS export PATH=/usr/lib/ccache:$PATH &&" \ No newline at end of file From f807e0bd6e4765bd36c9dfd6deaf085eae3e9944 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 17 Jul 2019 12:34:43 -0400 Subject: [PATCH 134/528] reverted back to pull as linux doesn't have manifest --- .cicd/generate-base-images.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index f4649a1371e..dc8cb155632 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -31,8 +31,7 @@ function generate_docker_image() { determine-hash ".cicd/${IMAGE_TAG}.dockerfile" [[ -z $DETERMINED_HASH ]] && echo "DETERMINED_HASH empty! (check determine-hash function)" && exit 1 echo "Looking for $IMAGE_TAG-$DETERMINED_HASH" -DOCKER_CLI_EXPERIMENTAL=enabled # needed for docker manifest inspect -if docker manifest inspect eosio/producer:ci-${HASHED_IMAGE_TAG}; then +if docker pull eosio/producer:ci-${HASHED_IMAGE_TAG}; then echo "eosio/producer:ci-${HASHED_IMAGE_TAG} already exists" else generate_docker_image From eb55a14ce88fa0e7a237cb3bfab4ba66c77b9f8c Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 17 Jul 2019 13:19:26 -0400 Subject: [PATCH 135/528] curl for tag query --- .cicd/generate-base-images.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index dc8cb155632..9924b8b1ff6 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -28,10 +28,18 @@ function generate_docker_image() { cd - } +function docker_tag_exists() { + ORG_REPO=$(echo $1 | cut -d: -f1) + TAG=$(echo $1 | cut -d: -f2) + TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${DOCKERHUB_USERNAME}'", "password": "'${DOCKERHUB_PASSWORD}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token) + EXISTS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/${ORG_REPO}/tags/?page_size=10000 | jq -r "[.results | .[] | .name == \"${TAG}\"] | any") + test $EXISTS = true +} + determine-hash ".cicd/${IMAGE_TAG}.dockerfile" [[ -z $DETERMINED_HASH ]] && echo "DETERMINED_HASH empty! (check determine-hash function)" && exit 1 echo "Looking for $IMAGE_TAG-$DETERMINED_HASH" -if docker pull eosio/producer:ci-${HASHED_IMAGE_TAG}; then +if docker_tag_exists eosio/producer:ci-${HASHED_IMAGE_TAG}; then echo "eosio/producer:ci-${HASHED_IMAGE_TAG} already exists" else generate_docker_image From e6e9a6d0292aaa5e057178acafc65a55b553019b Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 17 Jul 2019 13:40:52 -0400 Subject: [PATCH 136/528] improvement --- .cicd/generate-base-images.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index 9924b8b1ff6..41875809eac 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -31,9 +31,8 @@ function generate_docker_image() { function docker_tag_exists() { ORG_REPO=$(echo $1 | cut -d: -f1) TAG=$(echo $1 | cut -d: -f2) - TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${DOCKERHUB_USERNAME}'", "password": "'${DOCKERHUB_PASSWORD}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token) - EXISTS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/${ORG_REPO}/tags/?page_size=10000 | jq -r "[.results | .[] | .name == \"${TAG}\"] | any") - test $EXISTS = true + EXISTS=$(curl -s -H "Authorization: Bearer $(curl -sSL "https://auth.docker.io/token?service=registry.docker.io&scope=repository:${ORG_REPO}:pull" | jq --raw-output .token)" "https://registry.hub.docker.com/v2/${ORG_REPO}/manifests/$TAG") + [[ $EXISTS =~ '404 page not found' ]] && return 1 || return 0 } determine-hash ".cicd/${IMAGE_TAG}.dockerfile" From c2c911ea79d5e401ba0a8daa6eda3e739ede90a0 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 17 Jul 2019 13:41:46 -0400 Subject: [PATCH 137/528] test dockerfile --- .cicd/ubuntu-18.04.dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/.cicd/ubuntu-18.04.dockerfile b/.cicd/ubuntu-18.04.dockerfile index 4ff9ac94573..c4ac0f8d9cb 100644 --- a/.cicd/ubuntu-18.04.dockerfile +++ b/.cicd/ubuntu-18.04.dockerfile @@ -1,5 +1,6 @@ FROM ubuntu:18.04 + # APT-GET dependencies. RUN apt-get update && apt-get upgrade -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -y git make \ From 7233be2e3403800767ede8c92fe497281b8b780b Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 17 Jul 2019 13:47:40 -0400 Subject: [PATCH 138/528] dockerffile --- .cicd/ubuntu-18.04.dockerfile | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/.cicd/ubuntu-18.04.dockerfile b/.cicd/ubuntu-18.04.dockerfile index c4ac0f8d9cb..d81c69007e0 100644 --- a/.cicd/ubuntu-18.04.dockerfile +++ b/.cicd/ubuntu-18.04.dockerfile @@ -1,6 +1,5 @@ FROM ubuntu:18.04 - # APT-GET dependencies. RUN apt-get update && apt-get upgrade -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -y git make \ @@ -62,14 +61,3 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o RUN apt-get install -y ccache ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin - -# Git clone, checkout, and submodule update. -# Make build directory. -# mkdir /eos/build -# cd /eos/build -# cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /eos -# make -# Make mongodb direcotry. Start mongo in background. -# mkdir -p /eos/data/mongodb -# mongod --fork --dbpath /eos/data/mongodb -f /eos/scripts/mongod.conf --logpath /eos/mongod.log -# make test From 1042ed88e3f01bf64f271b9a8a0b90cd02339552 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 17 Jul 2019 13:52:42 -0400 Subject: [PATCH 139/528] quick fix --- .cicd/generate-base-images.sh | 2 +- .cicd/ubuntu-18.04.dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index 41875809eac..50a05eeca00 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -32,7 +32,7 @@ function docker_tag_exists() { ORG_REPO=$(echo $1 | cut -d: -f1) TAG=$(echo $1 | cut -d: -f2) EXISTS=$(curl -s -H "Authorization: Bearer $(curl -sSL "https://auth.docker.io/token?service=registry.docker.io&scope=repository:${ORG_REPO}:pull" | jq --raw-output .token)" "https://registry.hub.docker.com/v2/${ORG_REPO}/manifests/$TAG") - [[ $EXISTS =~ '404 page not found' ]] && return 1 || return 0 + ( [[ $EXISTS =~ '404 page not found' ]] || [[ $EXISTS =~ 'manifest unknown' ]] ) && return 1 || return 0 } determine-hash ".cicd/${IMAGE_TAG}.dockerfile" diff --git a/.cicd/ubuntu-18.04.dockerfile b/.cicd/ubuntu-18.04.dockerfile index d81c69007e0..932b48f0eab 100644 --- a/.cicd/ubuntu-18.04.dockerfile +++ b/.cicd/ubuntu-18.04.dockerfile @@ -60,4 +60,4 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o # CCACHE RUN apt-get install -y ccache -ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin +ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin \ No newline at end of file From 4ca4981517367a3d05d465b17a86e4b0e9cb0396 Mon Sep 17 00:00:00 2001 From: Justin Brown Date: Wed, 17 Jul 2019 14:03:52 -0400 Subject: [PATCH 140/528] gets docker tag from hash --- .cicd/.helpers | 43 +++++++++++++++++++++++++++++++++++++++++++ .cicd/travis-build.sh | 9 ++++++--- 2 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 .cicd/.helpers diff --git a/.cicd/.helpers b/.cicd/.helpers new file mode 100644 index 00000000000..ed502a551c9 --- /dev/null +++ b/.cicd/.helpers @@ -0,0 +1,43 @@ +DRYRUN=${DRYRUN:-false} +VERBOSE=${VERBOSE:-true} +export PROJECT_NAME="eos-vm" +export IMAGE_TAG=${IMAGE_TAG:-"ubuntu-18.04"} + +function execute() { + $VERBOSE && echo "--- Executing: $@" + $DRYRUN || "$@" +} + +function determine-hash() { + # Determine the sha1 hash of all dockerfiles in the .cicd directory. + [[ -z $1 ]] && echo "Please provide the files to be hashed (wildcards supported)" && exit 1 + echo "Obtaining Hash of files from $1..." + # Collect all files, hash them, then hash those. + HASHES=() + for FILE in $(find $1 -type f); do + HASH=$(sha1sum $FILE | sha1sum | awk '{ print $1 }') + HASHES=($HASH "${HASHES[*]}") + echo "$FILE - $HASH" + done + export DETERMINED_HASH=$(echo ${HASHES[*]} | sha1sum | awk '{ print $1 }') + export HASHED_IMAGE_TAG="${IMAGE_TAG}-${DETERMINED_HASH}" +} + +function generate_docker_image() { + # If we cannot pull the image, we build and push it first. + docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD + cd ./.cicd + docker build -t $FULL_TAG -f ./${IMAGE_TAG}.dockerfile . + docker push $FULL_TAG + cd - +} + +function docker_tag_exists() { + ORG_REPO=$(echo $1 | cut -d: -f1) + TAG=$(echo $1 | cut -d: -f2) + EXISTS=$(curl -s -H "Authorization: Bearer $(curl -sSL "https://auth.docker.io/token?service=registry.docker.io&scope=repository:${ORG_REPO}:pull" | jq --raw-output .token)" "https://registry.hub.docker.com/v2/${ORG_REPO}/manifests/$TAG") + [[ $EXISTS =~ '404 page not found' ]] && return 1 || return 0 +} + +determine-hash ".cicd/${IMAGE_TAG}.dockerfile" +export FULL_TAG="eosio/producer:${PROJECT_NAME}-$HASHED_IMAGE_TAG" \ No newline at end of file diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index bf370f322a4..dc995594349 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -1,5 +1,8 @@ -#!/bin/bash -set -e +#!/usr/bin/env bash +set -eo pipefail +cd $( dirname "${BASH_SOURCE[0]}" )/.. # Ensure we're in the repo root and not inside of scripts +. ./.cicd/.helpers + CPU_CORES=$(getconf _NPROCESSORS_ONLN) if [[ "$(uname)" == Darwin ]]; then echo 'Detected Darwin, building natively.' @@ -16,7 +19,7 @@ if [[ "$(uname)" == Darwin ]]; then else # linux echo 'Detected Linux, building in Docker.' # docker - docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache eosio/producer:ci-${IMAGE_TAG} bash -c " \ + docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache $FULL_TAG bash -c " \ $PRE_COMMANDS ccache -s && \ mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN) ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" From 5253d5a2538633eed77f9f74190e28dd4c62d518 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 17 Jul 2019 14:19:50 -0400 Subject: [PATCH 141/528] testing new helper and ENTRYPOINT --- .cicd/.helpers | 10 ++++++--- .cicd/generate-base-images.sh | 40 ++++------------------------------- .cicd/travis-build.sh | 7 +----- .cicd/ubuntu-18.04.dockerfile | 4 +++- 4 files changed, 15 insertions(+), 46 deletions(-) diff --git a/.cicd/.helpers b/.cicd/.helpers index ed502a551c9..5acccf1efab 100644 --- a/.cicd/.helpers +++ b/.cicd/.helpers @@ -1,7 +1,10 @@ DRYRUN=${DRYRUN:-false} VERBOSE=${VERBOSE:-true} -export PROJECT_NAME="eos-vm" -export IMAGE_TAG=${IMAGE_TAG:-"ubuntu-18.04"} +export PROJECT_NAME="eosio" + +# Set IMAGE_TAG using arg (generate-base-images.sh) or env (travis.yml) +( [[ -z $IMAGE_TAG ]] && [[ -z $1 ]] ) && echo "You must provide the distro IMAGE_TAG name (example: ubuntu-18.04) as argument \$1 or set it within your ENV" && exit 1 +export IMAGE_TAG=${IMAGE_TAG:-$1} function execute() { $VERBOSE && echo "--- Executing: $@" @@ -36,8 +39,9 @@ function docker_tag_exists() { ORG_REPO=$(echo $1 | cut -d: -f1) TAG=$(echo $1 | cut -d: -f2) EXISTS=$(curl -s -H "Authorization: Bearer $(curl -sSL "https://auth.docker.io/token?service=registry.docker.io&scope=repository:${ORG_REPO}:pull" | jq --raw-output .token)" "https://registry.hub.docker.com/v2/${ORG_REPO}/manifests/$TAG") - [[ $EXISTS =~ '404 page not found' ]] && return 1 || return 0 + ( [[ $EXISTS =~ '404 page not found' ]] || [[ $EXISTS =~ 'manifest unknown' ]] ) && return 1 || return 0 } determine-hash ".cicd/${IMAGE_TAG}.dockerfile" +[[ -z $DETERMINED_HASH ]] && echo "DETERMINED_HASH empty! (check determine-hash function)" && exit 1 export FULL_TAG="eosio/producer:${PROJECT_NAME}-$HASHED_IMAGE_TAG" \ No newline at end of file diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index dc8cb155632..c0a98b633b7 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -1,38 +1,6 @@ #!/usr/bin/env bash set -eo pipefail - -[[ -z $1 ]] && echo "Must provide the distro IMAGE_TAG name (example: ubuntu-18.04)" && exit 1 -export IMAGE_TAG=$1 - -function determine-hash() { - # Determine the sha1 hash of all dockerfiles in the .cicd directory. - [[ -z $1 ]] && echo "Please provide the files to be hashed (wildcards supported)" && exit 1 - echo "Obtaining Hash of files from $1..." - # Collect all files, hash them, then hash those. - HASHES=() - for FILE in $(find $1 -type f); do - HASH=$(sha1sum $FILE | sha1sum | awk '{ print $1 }') - HASHES=($HASH "${HASHES[*]}") - echo "$FILE - $HASH" - done - export DETERMINED_HASH=$(echo ${HASHES[*]} | sha1sum | awk '{ print $1 }') - export HASHED_IMAGE_TAG="${IMAGE_TAG}-${DETERMINED_HASH}" -} - -function generate_docker_image() { - # If we cannot pull the image, we build and push it first. - docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD - cd ./.cicd - docker build -t eosio/producer:ci-${HASHED_IMAGE_TAG} -f ./${IMAGE_TAG}.dockerfile . - docker push eosio/producer:ci-${HASHED_IMAGE_TAG} - cd - -} - -determine-hash ".cicd/${IMAGE_TAG}.dockerfile" -[[ -z $DETERMINED_HASH ]] && echo "DETERMINED_HASH empty! (check determine-hash function)" && exit 1 -echo "Looking for $IMAGE_TAG-$DETERMINED_HASH" -if docker pull eosio/producer:ci-${HASHED_IMAGE_TAG}; then - echo "eosio/producer:ci-${HASHED_IMAGE_TAG} already exists" -else - generate_docker_image -fi +cd $( dirname "${BASH_SOURCE[0]}" )/.. # Ensure we're in the repo root and not inside of scripts +. ./.cicd/.helpers +echo "Looking for $FULL_TAG" +docker_tag_exists $FULL_TAG && echo "$FULL_TAG already exists" || generate_docker_image \ No newline at end of file diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index dc995594349..3436a6a2b07 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -17,10 +17,5 @@ if [[ "$(uname)" == Darwin ]]; then echo "$ ctest -j $CPU_CORES -LE _tests --output-on-failure -T Test" ctest -j $CPU_CORES -LE _tests --output-on-failure -T Test # run unit tests else # linux - echo 'Detected Linux, building in Docker.' - # docker - docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache $FULL_TAG bash -c " \ - $PRE_COMMANDS ccache -s && \ - mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN) - ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + execute docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache $FULL_TAG fi \ No newline at end of file diff --git a/.cicd/ubuntu-18.04.dockerfile b/.cicd/ubuntu-18.04.dockerfile index efd7031f09f..23946cacffc 100644 --- a/.cicd/ubuntu-18.04.dockerfile +++ b/.cicd/ubuntu-18.04.dockerfile @@ -61,4 +61,6 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o RUN apt-get install -y ccache ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin -ENV EXPORTS="$EXPORTS export PATH=/usr/lib/ccache:$PATH &&" \ No newline at end of file +ENV EXPORTS="$EXPORTS export PATH=/usr/lib/ccache:$PATH &&" + +ENTRYPOINT [ "$PRE_COMMANDS ccache -s", "mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)", "ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" ] \ No newline at end of file From 03ecbac50f9b2fc5812d34b1f78ca9dd79776e7a Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 17 Jul 2019 16:16:23 -0400 Subject: [PATCH 142/528] final for CMD --- .cicd/amazonlinux-2.dockerfile | 10 +++++++--- .cicd/centos-7.dockerfile | 9 +++++++-- .cicd/pipeline.yml | 11 ++++------- .cicd/ubuntu-16.04.dockerfile | 9 +++++++-- .cicd/ubuntu-18.04.dockerfile | 14 ++++++++------ 5 files changed, 33 insertions(+), 20 deletions(-) diff --git a/.cicd/amazonlinux-2.dockerfile b/.cicd/amazonlinux-2.dockerfile index e3c24192a53..87d129c7e01 100644 --- a/.cicd/amazonlinux-2.dockerfile +++ b/.cicd/amazonlinux-2.dockerfile @@ -72,7 +72,11 @@ ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm \ && yum install -y ccache-3.3.4-1.el7.x86_64.rpm -# explicitly set to clang as gcc is default -ENV CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" -ENV EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" +# PRE_COMMANDS: Executed pre-cmake +# CMAKE_EXTRAS: Executed right before the cmake path (on the end) +ENV PRE_COMMANDS="export PATH=/usr/lib64/ccache:$PATH &&" +ENV CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" +CMD bash -c "$PRE_COMMANDS ccache -s && \ + mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN) && \ + ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" \ No newline at end of file diff --git a/.cicd/centos-7.dockerfile b/.cicd/centos-7.dockerfile index de2549f708b..b2d21dc4096 100644 --- a/.cicd/centos-7.dockerfile +++ b/.cicd/centos-7.dockerfile @@ -88,5 +88,10 @@ RUN cd /usr/lib64/ccache && ln -s ../../bin/ccache c++ ## We need to tell ccache to actually use devtoolset-8 instead of the default system one (ccache resets anything set in PATH when it launches) ENV CCACHE_PATH="/opt/rh/devtoolset-8/root/usr/bin" -ENV PRECOMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable &&" -ENV EXPORTS="export PATH=/usr/lib64/ccache:$PATH &&" +# PRE_COMMANDS: Executed pre-cmake +# CMAKE_EXTRAS: Executed right before the cmake path (on the end) +ENV PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:$PATH &&" + +CMD bash -c "$PRE_COMMANDS ccache -s && \ + mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN) && \ + ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" \ No newline at end of file diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 38512f7e2e2..84c0065da31 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -15,16 +15,13 @@ steps: - wait - label: ":aws: [Amazon] 2 Build" - command: - - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' /workdir && make -j $(getconf _NPROCESSORS_ONLN)" - - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" agents: queue: "automation-eos-builder-fleet" plugins: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG - image: "eosio/producer:ci-amazonlinux-2-266a1fe17771b1c1e9aeb3087516dbe8570e0e25" + image: "eosio/producer:eosio-amazonlinux-2-15dbe09dd5b17b21cbdfef1ddeeaae3a6518b7cd" timeout: $BUILD_TIMEOUT skip: $SKIP_AMAZON_LINUX_2 @@ -38,7 +35,7 @@ steps: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG - image: "eosio/producer:ci-centos-7-9b1b0f1e15eba74234860434ebd82b93b23dd1de" + image: "eosio/producer:eosio-centos-7-9a44c56bd9e6c4eaf558527023a066848d95d795" timeout: $BUILD_TIMEOUT skip: $SKIP_CENTOS_7 @@ -52,7 +49,7 @@ steps: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG - image: "eosio/producer:ci-ubuntu-16.04-0b3d8a452a4dd471d073d12d7e5971e2416d0536" + image: "eosio/producer:eosio-ubuntu-16.04-d7f03e30a16e49dacf4bffe0adb522a4a17c3098" timeout: $BUILD_TIMEOUT skip: $SKIP_UBUNTU_16 @@ -66,7 +63,7 @@ steps: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG - image: "eosio/producer:ci-ubuntu-18.04-254c25845ae6f00c8c4c63a90a5f49e7e61b5662" + image: "eosio/producer:eosio-ubuntu-18.04-3060a37217d3d3daa56432a07edcb2ea24046cd5" timeout: $BUILD_TIMEOUT skip: $SKIP_UBUNTU_18 diff --git a/.cicd/ubuntu-16.04.dockerfile b/.cicd/ubuntu-16.04.dockerfile index 24eceb741a9..0459c071b84 100644 --- a/.cicd/ubuntu-16.04.dockerfile +++ b/.cicd/ubuntu-16.04.dockerfile @@ -83,6 +83,11 @@ RUN curl -LO https://github.com/ccache/ccache/releases/download/v3.4.1/ccache-3. && make install \ && cd / && rm -rf ccache-3.4.1/ -# pinned only +# PRE_COMMANDS: Executed pre-cmake +# CMAKE_EXTRAS: Executed right before the cmake path (on the end) +ENV PRE_COMMANDS="export PATH=/usr/lib/ccache:$PATH &&" ENV CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" -ENV EXPORTS="export PATH=/usr/lib/ccache:$PATH &&" \ No newline at end of file + +CMD bash -c "$PRE_COMMANDS ccache -s && \ + mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN) && \ + ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" \ No newline at end of file diff --git a/.cicd/ubuntu-18.04.dockerfile b/.cicd/ubuntu-18.04.dockerfile index 23946cacffc..d52ccec19be 100644 --- a/.cicd/ubuntu-18.04.dockerfile +++ b/.cicd/ubuntu-18.04.dockerfile @@ -6,7 +6,7 @@ RUN apt-get update && apt-get upgrade -y \ bzip2 automake libbz2-dev libssl-dev doxygen graphviz libgmp3-dev \ autotools-dev libicu-dev python2.7 python2.7-dev python3 python3-dev \ autoconf libtool g++ gcc curl zlib1g-dev sudo ruby libusb-1.0-0-dev \ - libcurl4-gnutls-dev pkg-config patch llvm-4.0 clang + libcurl4-gnutls-dev pkg-config patch llvm-4.0 clang ccache # Build appropriate version of CMake. RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz \ @@ -57,10 +57,12 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o && cd / \ && rm -f mongo-cxx-driver-r3.4.0.tar.gz -# CCACHE -RUN apt-get install -y ccache - ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin -ENV EXPORTS="$EXPORTS export PATH=/usr/lib/ccache:$PATH &&" -ENTRYPOINT [ "$PRE_COMMANDS ccache -s", "mkdir /eos/build && cd /eos/build && $EXPORTS cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN)", "ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" ] \ No newline at end of file +# PRE_COMMANDS: Executed pre-cmake +# CMAKE_EXTRAS: Executed right before the cmake path (on the end) +ENV PRE_COMMANDS="export PATH=/usr/lib/ccache:$PATH &&" + +CMD bash -c "$PRE_COMMANDS ccache -s && \ + mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN) && \ + ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" \ No newline at end of file From fe3f4bb416cb10568663223aecf5b5db9f3e13e5 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 17 Jul 2019 17:11:25 -0400 Subject: [PATCH 143/528] NEW IMAGES DONE --- .cicd/pipeline.yml | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 84c0065da31..2ddb603b829 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -21,49 +21,42 @@ steps: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG - image: "eosio/producer:eosio-amazonlinux-2-15dbe09dd5b17b21cbdfef1ddeeaae3a6518b7cd" + image: "eosio-amazonlinux-2-1a7d9df8d2d7d6508695d520b2c86bdb6544f68f" timeout: $BUILD_TIMEOUT skip: $SKIP_AMAZON_LINUX_2 - label: ":centos: [CentOS] 7 Build" command: - - "mkdir /workdir/build && cd /workdir/build && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /workdir && make -j $(getconf _NPROCESSORS_ONLN)" - - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" + - "" agents: queue: "automation-eos-builder-fleet" plugins: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG - image: "eosio/producer:eosio-centos-7-9a44c56bd9e6c4eaf558527023a066848d95d795" + image: "eosio-centos-7-55cd019b12caf450396254fd41391695c1e2ff26" timeout: $BUILD_TIMEOUT skip: $SKIP_CENTOS_7 - label: ":ubuntu: [Ubuntu] 16.04 Build" - command: - - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' /workdir && make -j $(getconf _NPROCESSORS_ONLN)" - - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" agents: queue: "automation-eos-builder-fleet" plugins: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-16.04-d7f03e30a16e49dacf4bffe0adb522a4a17c3098" + image: "eosio-ubuntu-16.04-607530704f6f0e37ca4a2c8c114a3e21ccc89476" timeout: $BUILD_TIMEOUT skip: $SKIP_UBUNTU_16 - label: ":ubuntu: [Ubuntu] 18.04 Build" - command: - - "mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true /workdir && make -j $(getconf _NPROCESSORS_ONLN)" - - "cd /workdir/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" agents: queue: "automation-eos-builder-fleet" plugins: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-18.04-3060a37217d3d3daa56432a07edcb2ea24046cd5" + image: "eosio-ubuntu-18.04-9f7595b0763a71689cee3a271880d1d1b88f67c9" timeout: $BUILD_TIMEOUT skip: $SKIP_UBUNTU_18 From 95da098c3325f9ff61778fc9d725db8fdfe8592d Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 17 Jul 2019 17:17:41 -0400 Subject: [PATCH 144/528] whoops --- .cicd/pipeline.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 2ddb603b829..b087ca6d2a8 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -21,7 +21,7 @@ steps: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG - image: "eosio-amazonlinux-2-1a7d9df8d2d7d6508695d520b2c86bdb6544f68f" + image: "eosio/producer:eosio-amazonlinux-2-1a7d9df8d2d7d6508695d520b2c86bdb6544f68f" timeout: $BUILD_TIMEOUT skip: $SKIP_AMAZON_LINUX_2 @@ -34,7 +34,7 @@ steps: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG - image: "eosio-centos-7-55cd019b12caf450396254fd41391695c1e2ff26" + image: "eosio/producer:eosio-centos-7-55cd019b12caf450396254fd41391695c1e2ff26" timeout: $BUILD_TIMEOUT skip: $SKIP_CENTOS_7 @@ -45,7 +45,7 @@ steps: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG - image: "eosio-ubuntu-16.04-607530704f6f0e37ca4a2c8c114a3e21ccc89476" + image: "eosio/producer:eosio-ubuntu-16.04-607530704f6f0e37ca4a2c8c114a3e21ccc89476" timeout: $BUILD_TIMEOUT skip: $SKIP_UBUNTU_16 @@ -56,7 +56,7 @@ steps: - docker#v3.2.0: shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG - image: "eosio-ubuntu-18.04-9f7595b0763a71689cee3a271880d1d1b88f67c9" + image: "eosio/producer:eosio-ubuntu-18.04-9f7595b0763a71689cee3a271880d1d1b88f67c9" timeout: $BUILD_TIMEOUT skip: $SKIP_UBUNTU_18 From 05a10372ac63b23e25f30c658abf6342183ebf29 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 17 Jul 2019 17:22:37 -0400 Subject: [PATCH 145/528] [ci skip] Removed shell --- .cicd/pipeline.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index b087ca6d2a8..620ca906990 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -19,7 +19,6 @@ steps: queue: "automation-eos-builder-fleet" plugins: - docker#v3.2.0: - shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG image: "eosio/producer:eosio-amazonlinux-2-1a7d9df8d2d7d6508695d520b2c86bdb6544f68f" timeout: $BUILD_TIMEOUT @@ -32,7 +31,6 @@ steps: queue: "automation-eos-builder-fleet" plugins: - docker#v3.2.0: - shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG image: "eosio/producer:eosio-centos-7-55cd019b12caf450396254fd41391695c1e2ff26" timeout: $BUILD_TIMEOUT @@ -43,7 +41,6 @@ steps: queue: "automation-eos-builder-fleet" plugins: - docker#v3.2.0: - shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG image: "eosio/producer:eosio-ubuntu-16.04-607530704f6f0e37ca4a2c8c114a3e21ccc89476" timeout: $BUILD_TIMEOUT @@ -54,7 +51,6 @@ steps: queue: "automation-eos-builder-fleet" plugins: - docker#v3.2.0: - shell: ["/bin/bash", "-i", "-e", "-c"] debug: $DEBUG image: "eosio/producer:eosio-ubuntu-18.04-9f7595b0763a71689cee3a271880d1d1b88f67c9" timeout: $BUILD_TIMEOUT From cd2b179ac58331181c65ae24055052c0fe11f1f5 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 17 Jul 2019 17:29:21 -0400 Subject: [PATCH 146/528] Darwin logic fix --- .cicd/.helpers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/.helpers b/.cicd/.helpers index 5acccf1efab..1cf9d805ade 100644 --- a/.cicd/.helpers +++ b/.cicd/.helpers @@ -3,7 +3,7 @@ VERBOSE=${VERBOSE:-true} export PROJECT_NAME="eosio" # Set IMAGE_TAG using arg (generate-base-images.sh) or env (travis.yml) -( [[ -z $IMAGE_TAG ]] && [[ -z $1 ]] ) && echo "You must provide the distro IMAGE_TAG name (example: ubuntu-18.04) as argument \$1 or set it within your ENV" && exit 1 +( [[ $(uname) != 'Darwin ]] && [[ -z $IMAGE_TAG ]] && [[ -z $1 ]] ) && echo "You must provide the distro IMAGE_TAG name (example: ubuntu-18.04) as argument \$1 or set it within your ENV" && exit 1 export IMAGE_TAG=${IMAGE_TAG:-$1} function execute() { From 5481c05b12f73e44a277bbffcc335fe025845765 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 17 Jul 2019 17:31:08 -0400 Subject: [PATCH 147/528] workdir --- .cicd/pipeline.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 620ca906990..a67eba7573e 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -19,6 +19,7 @@ steps: queue: "automation-eos-builder-fleet" plugins: - docker#v3.2.0: + workdir: /eos debug: $DEBUG image: "eosio/producer:eosio-amazonlinux-2-1a7d9df8d2d7d6508695d520b2c86bdb6544f68f" timeout: $BUILD_TIMEOUT @@ -31,6 +32,7 @@ steps: queue: "automation-eos-builder-fleet" plugins: - docker#v3.2.0: + workdir: /eos debug: $DEBUG image: "eosio/producer:eosio-centos-7-55cd019b12caf450396254fd41391695c1e2ff26" timeout: $BUILD_TIMEOUT @@ -41,6 +43,7 @@ steps: queue: "automation-eos-builder-fleet" plugins: - docker#v3.2.0: + workdir: /eos debug: $DEBUG image: "eosio/producer:eosio-ubuntu-16.04-607530704f6f0e37ca4a2c8c114a3e21ccc89476" timeout: $BUILD_TIMEOUT @@ -51,6 +54,7 @@ steps: queue: "automation-eos-builder-fleet" plugins: - docker#v3.2.0: + workdir: /eos debug: $DEBUG image: "eosio/producer:eosio-ubuntu-18.04-9f7595b0763a71689cee3a271880d1d1b88f67c9" timeout: $BUILD_TIMEOUT From 29ee7e842b7f8546b552f3aa3c4049ff283fbc84 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 17 Jul 2019 17:33:06 -0400 Subject: [PATCH 148/528] whoops --- .cicd/.helpers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/.helpers b/.cicd/.helpers index 1cf9d805ade..d917ed386cd 100644 --- a/.cicd/.helpers +++ b/.cicd/.helpers @@ -3,7 +3,7 @@ VERBOSE=${VERBOSE:-true} export PROJECT_NAME="eosio" # Set IMAGE_TAG using arg (generate-base-images.sh) or env (travis.yml) -( [[ $(uname) != 'Darwin ]] && [[ -z $IMAGE_TAG ]] && [[ -z $1 ]] ) && echo "You must provide the distro IMAGE_TAG name (example: ubuntu-18.04) as argument \$1 or set it within your ENV" && exit 1 +( [[ $(uname) != 'Darwin' ]] && [[ -z $IMAGE_TAG ]] && [[ -z $1 ]] ) && echo "You must provide the distro IMAGE_TAG name (example: ubuntu-18.04) as argument \$1 or set it within your ENV" && exit 1 export IMAGE_TAG=${IMAGE_TAG:-$1} function execute() { From 7af5f703b5c609e57348baa2885c3754ab1a5f3c Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 17 Jul 2019 17:48:28 -0400 Subject: [PATCH 149/528] [ci skip] path fix --- .cicd/amazonlinux-2.dockerfile | 2 +- .cicd/centos-7.dockerfile | 2 +- .cicd/pipeline.yml | 4 ---- .cicd/travis-build.sh | 2 +- .cicd/ubuntu-16.04.dockerfile | 2 +- .cicd/ubuntu-18.04.dockerfile | 2 +- 6 files changed, 5 insertions(+), 9 deletions(-) diff --git a/.cicd/amazonlinux-2.dockerfile b/.cicd/amazonlinux-2.dockerfile index 87d129c7e01..5bdc15d98c5 100644 --- a/.cicd/amazonlinux-2.dockerfile +++ b/.cicd/amazonlinux-2.dockerfile @@ -78,5 +78,5 @@ ENV PRE_COMMANDS="export PATH=/usr/lib64/ccache:$PATH &&" ENV CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" CMD bash -c "$PRE_COMMANDS ccache -s && \ - mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN) && \ + mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && make -j $(getconf _NPROCESSORS_ONLN) && \ ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" \ No newline at end of file diff --git a/.cicd/centos-7.dockerfile b/.cicd/centos-7.dockerfile index b2d21dc4096..a0a342c8857 100644 --- a/.cicd/centos-7.dockerfile +++ b/.cicd/centos-7.dockerfile @@ -93,5 +93,5 @@ ENV CCACHE_PATH="/opt/rh/devtoolset-8/root/usr/bin" ENV PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:$PATH &&" CMD bash -c "$PRE_COMMANDS ccache -s && \ - mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN) && \ + mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && make -j $(getconf _NPROCESSORS_ONLN) && \ ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" \ No newline at end of file diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index a67eba7573e..620ca906990 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -19,7 +19,6 @@ steps: queue: "automation-eos-builder-fleet" plugins: - docker#v3.2.0: - workdir: /eos debug: $DEBUG image: "eosio/producer:eosio-amazonlinux-2-1a7d9df8d2d7d6508695d520b2c86bdb6544f68f" timeout: $BUILD_TIMEOUT @@ -32,7 +31,6 @@ steps: queue: "automation-eos-builder-fleet" plugins: - docker#v3.2.0: - workdir: /eos debug: $DEBUG image: "eosio/producer:eosio-centos-7-55cd019b12caf450396254fd41391695c1e2ff26" timeout: $BUILD_TIMEOUT @@ -43,7 +41,6 @@ steps: queue: "automation-eos-builder-fleet" plugins: - docker#v3.2.0: - workdir: /eos debug: $DEBUG image: "eosio/producer:eosio-ubuntu-16.04-607530704f6f0e37ca4a2c8c114a3e21ccc89476" timeout: $BUILD_TIMEOUT @@ -54,7 +51,6 @@ steps: queue: "automation-eos-builder-fleet" plugins: - docker#v3.2.0: - workdir: /eos debug: $DEBUG image: "eosio/producer:eosio-ubuntu-18.04-9f7595b0763a71689cee3a271880d1d1b88f67c9" timeout: $BUILD_TIMEOUT diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 3436a6a2b07..7e21237a52e 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -17,5 +17,5 @@ if [[ "$(uname)" == Darwin ]]; then echo "$ ctest -j $CPU_CORES -LE _tests --output-on-failure -T Test" ctest -j $CPU_CORES -LE _tests --output-on-failure -T Test # run unit tests else # linux - execute docker run --rm -v $(pwd):/eos -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache $FULL_TAG + execute docker run --rm -v $(pwd):/workdir -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache $FULL_TAG fi \ No newline at end of file diff --git a/.cicd/ubuntu-16.04.dockerfile b/.cicd/ubuntu-16.04.dockerfile index 0459c071b84..e83384cea65 100644 --- a/.cicd/ubuntu-16.04.dockerfile +++ b/.cicd/ubuntu-16.04.dockerfile @@ -89,5 +89,5 @@ ENV PRE_COMMANDS="export PATH=/usr/lib/ccache:$PATH &&" ENV CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" CMD bash -c "$PRE_COMMANDS ccache -s && \ - mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN) && \ + mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && make -j $(getconf _NPROCESSORS_ONLN) && \ ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" \ No newline at end of file diff --git a/.cicd/ubuntu-18.04.dockerfile b/.cicd/ubuntu-18.04.dockerfile index d52ccec19be..2e0341904c7 100644 --- a/.cicd/ubuntu-18.04.dockerfile +++ b/.cicd/ubuntu-18.04.dockerfile @@ -64,5 +64,5 @@ ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin ENV PRE_COMMANDS="export PATH=/usr/lib/ccache:$PATH &&" CMD bash -c "$PRE_COMMANDS ccache -s && \ - mkdir /eos/build && cd /eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /eos && make -j $(getconf _NPROCESSORS_ONLN) && \ + mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && make -j $(getconf _NPROCESSORS_ONLN) && \ ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" \ No newline at end of file From 00208cf3cd0999a0f3b70a50618f4361eb3f16a6 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 18 Jul 2019 09:07:33 -0400 Subject: [PATCH 150/528] workdir new hashes --- .cicd/pipeline.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 620ca906990..c194a68c6ac 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -20,7 +20,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-amazonlinux-2-1a7d9df8d2d7d6508695d520b2c86bdb6544f68f" + image: "eosio/producer:eosio-amazonlinux-2-1c266e25276ad1f1147a4df5c12921968079c49b" timeout: $BUILD_TIMEOUT skip: $SKIP_AMAZON_LINUX_2 @@ -32,7 +32,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-centos-7-55cd019b12caf450396254fd41391695c1e2ff26" + image: "eosio/producer:eosio-centos-7-d45789dfb1a5b830a62381afd205b34d3d7c2d63" timeout: $BUILD_TIMEOUT skip: $SKIP_CENTOS_7 @@ -42,7 +42,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-16.04-607530704f6f0e37ca4a2c8c114a3e21ccc89476" + image: "eosio/producer:eosio-ubuntu-16.04-4f430ef21e359ef2581c25255c99e5411adfaed9" timeout: $BUILD_TIMEOUT skip: $SKIP_UBUNTU_16 @@ -52,7 +52,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-18.04-9f7595b0763a71689cee3a271880d1d1b88f67c9" + image: "eosio/producer:eosio-ubuntu-18.04-30943a09d811aa16d86eb60455bc2938b57a7080" timeout: $BUILD_TIMEOUT skip: $SKIP_UBUNTU_18 From 075aed714ebfba9b7c2d702c42d7533fee6cdfde Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 18 Jul 2019 10:02:31 -0400 Subject: [PATCH 151/528] [ci skip] quick fix --- .cicd/pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index c194a68c6ac..fe6c589d285 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -52,7 +52,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-18.04-30943a09d811aa16d86eb60455bc2938b57a7080" + image: "eosio/producer:eosio-ubuntu-18.04-d3c8fb71bf95415b85617bd29dae56590faf5267" timeout: $BUILD_TIMEOUT skip: $SKIP_UBUNTU_18 From 754afd43c730f7d3ea2e8eb6af4c8c9985f9f0a1 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 18 Jul 2019 11:29:02 -0400 Subject: [PATCH 152/528] fix for hash mac check --- .cicd/.helpers | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.cicd/.helpers b/.cicd/.helpers index d917ed386cd..511b50d7456 100644 --- a/.cicd/.helpers +++ b/.cicd/.helpers @@ -42,6 +42,8 @@ function docker_tag_exists() { ( [[ $EXISTS =~ '404 page not found' ]] || [[ $EXISTS =~ 'manifest unknown' ]] ) && return 1 || return 0 } -determine-hash ".cicd/${IMAGE_TAG}.dockerfile" -[[ -z $DETERMINED_HASH ]] && echo "DETERMINED_HASH empty! (check determine-hash function)" && exit 1 -export FULL_TAG="eosio/producer:${PROJECT_NAME}-$HASHED_IMAGE_TAG" \ No newline at end of file +if [[ $(uname) != 'Darwin' ]]; then # Darwin doesn't need hash (yet) + determine-hash ".cicd/${IMAGE_TAG}.dockerfile" + [[ -z $DETERMINED_HASH ]] && echo "DETERMINED_HASH empty! (check determine-hash function)" && exit 1 + export FULL_TAG="eosio/producer:${PROJECT_NAME}-$HASHED_IMAGE_TAG" +fi \ No newline at end of file From 86b84acbc035be6824fc0d3ec9b6ac7fd6548c4f Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 18 Jul 2019 12:50:42 -0400 Subject: [PATCH 153/528] ccache tests for mac: --- .cicd/travis-build.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh index 7e21237a52e..d12ba8ebb05 100755 --- a/.cicd/travis-build.sh +++ b/.cicd/travis-build.sh @@ -9,6 +9,8 @@ if [[ "$(uname)" == Darwin ]]; then [[ -d eos ]] && cd eos [[ ! -d build ]] && mkdir build cd build + echo \$PATH + ccache -s echo '$ cmake ..' cmake .. echo "$ make -j $CPU_CORES" From 27f570b0ff6872a43fc889955508cbfafb6c1483 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 18 Jul 2019 16:39:22 -0400 Subject: [PATCH 154/528] fixed ubuntu18 loading c++ instead of clang (breaking the symlinked ccache --- .cicd/ubuntu-18.04.dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/.cicd/ubuntu-18.04.dockerfile b/.cicd/ubuntu-18.04.dockerfile index b76ac436e00..1561eccfc2b 100644 --- a/.cicd/ubuntu-18.04.dockerfile +++ b/.cicd/ubuntu-18.04.dockerfile @@ -62,6 +62,7 @@ ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin # PRE_COMMANDS: Executed pre-cmake # CMAKE_EXTRAS: Executed right before the cmake path (on the end) ENV PRE_COMMANDS="export PATH=/usr/lib/ccache:$PATH &&" +ENV CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" CMD bash -c "$PRE_COMMANDS ccache -s && \ mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && make -j $(getconf _NPROCESSORS_ONLN) && \ From f988e22e4c19bdab223398365b87b74755e7b7ef Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 18 Jul 2019 16:43:27 -0400 Subject: [PATCH 155/528] [ci skip] New hash --- .cicd/pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index fe6c589d285..3e415f456da 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -52,7 +52,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-18.04-d3c8fb71bf95415b85617bd29dae56590faf5267" + image: "eosio/producer:eosio-ubuntu-18.04-14091ac0e5618b0ea5ce026cd75b648efbde4be7" timeout: $BUILD_TIMEOUT skip: $SKIP_UBUNTU_18 From 8d3e0b1a4f6e3cac419fcdbff471c636e40211a4 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 18 Jul 2019 17:12:48 -0400 Subject: [PATCH 156/528] testing --- .cicd/pipeline.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 3e415f456da..3f588597c0c 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -76,4 +76,5 @@ steps: agents: - "queue=mac-anka-large-node-fleet" timeout: $BUILD_TIMEOUT - skip: $SKIP_MOJAVE \ No newline at end of file + skip: $SKIP_MOJAVE + \ No newline at end of file From 3e180bc8d202749a68789a9d6d3d02b578dfc7e8 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 23 Jul 2019 11:40:32 -0400 Subject: [PATCH 157/528] trigger --- .cicd/pipeline.yml | 6 ++++++ .cicd/travis-trigger.sh | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 .cicd/travis-trigger.sh diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 3f588597c0c..457906e6f84 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -6,6 +6,12 @@ env: steps: + - label: ":webhook: Trigger Travis CI Build" + command: + - "./.cicd/travis-trigger.sh" + agents: + queue: "automation-eos-builder-fleet" + - trigger: "eosio-base-images-beta" label: ":docker: Ensure base images exist" build: diff --git a/.cicd/travis-trigger.sh b/.cicd/travis-trigger.sh new file mode 100644 index 00000000000..83972af590f --- /dev/null +++ b/.cicd/travis-trigger.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +set -eo pipefail +echo '+++ :gear: Configuring Travis CI Build' +[[ -z $TRIGGER_TRAVIS_API_KEY ]] && echo '+++ :no_entry: ERROR: TRIGGER_TRAVIS_API_KEY key not found!' && exit 1 +TRAVIS_MESSAGE=${TRAVIS_MESSAGE:-"$BUILDKITE_MESSAGE - $(echo $BUILDKITE_BUILD_URL | grep -oe 'buildkite.*')"} +SOURCE_SLUG=${SOURCE_SLUG:-'eos-vm'} +[[ -z $BODY ]] && BODY="$(jq -nc '{"request":{"branch":env.BUILDKITE_BRANCH,"message":env.TRAVIS_MESSAGE}}')" +echo 'Configuration:' +echo "$BODY" | jq +echo 'This configuration is derived from the BUILDKITE_BRANCH and BUILDKITE_MESSAGE variables set for this build.' +echo '+++ :tractor: Triggering Travis CI Build' +export RESULT="$(curl -s -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "Travis-API-Version: 3" -H "Authorization: token $TRIGGER_TRAVIS_API_KEY" -d "$BODY" https://api.travis-ci.org/repo/EOSIO%2f${SOURCE_SLUG}/requests)" +echo 'API Response:' +echo "$RESULT" | jq 2>/dev/null || echo "$RESULT" +if [[ "$(echo $RESULT | jq -r '.["@type"]')" != "pending" ]]; then + echo '+++ :no_entry: ERROR: Failed to trigger Travis API!' + exit 1 +fi \ No newline at end of file From b912e52aa8fa88ea9427f22fc2146780c3015deb Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 23 Jul 2019 11:43:04 -0400 Subject: [PATCH 158/528] trigger fix --- .cicd/travis-trigger.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/travis-trigger.sh b/.cicd/travis-trigger.sh index 83972af590f..d5be2d89d8a 100644 --- a/.cicd/travis-trigger.sh +++ b/.cicd/travis-trigger.sh @@ -3,7 +3,7 @@ set -eo pipefail echo '+++ :gear: Configuring Travis CI Build' [[ -z $TRIGGER_TRAVIS_API_KEY ]] && echo '+++ :no_entry: ERROR: TRIGGER_TRAVIS_API_KEY key not found!' && exit 1 TRAVIS_MESSAGE=${TRAVIS_MESSAGE:-"$BUILDKITE_MESSAGE - $(echo $BUILDKITE_BUILD_URL | grep -oe 'buildkite.*')"} -SOURCE_SLUG=${SOURCE_SLUG:-'eos-vm'} +SOURCE_SLUG=${SOURCE_SLUG:-'eos'} [[ -z $BODY ]] && BODY="$(jq -nc '{"request":{"branch":env.BUILDKITE_BRANCH,"message":env.TRAVIS_MESSAGE}}')" echo 'Configuration:' echo "$BODY" | jq From 20fd8b428bd23c0915c3b0a064c9537a786bf1ba Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Mon, 29 Jul 2019 12:02:53 -0400 Subject: [PATCH 159/528] Fix build message passed to Travis API during trigger step --- .cicd/pipeline.yml | 5 +++-- .cicd/{travis-trigger.sh => trigger-travis.sh} | 7 +++---- 2 files changed, 6 insertions(+), 6 deletions(-) rename .cicd/{travis-trigger.sh => trigger-travis.sh} (71%) mode change 100644 => 100755 diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 457906e6f84..9168093b06f 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -5,10 +5,11 @@ env: VERBOSE: true steps: + - wait - label: ":webhook: Trigger Travis CI Build" - command: - - "./.cicd/travis-trigger.sh" + command: | + . ./.cicd/trigger-travis.sh agents: queue: "automation-eos-builder-fleet" diff --git a/.cicd/travis-trigger.sh b/.cicd/trigger-travis.sh old mode 100644 new mode 100755 similarity index 71% rename from .cicd/travis-trigger.sh rename to .cicd/trigger-travis.sh index d5be2d89d8a..dcc5b63cbc1 --- a/.cicd/travis-trigger.sh +++ b/.cicd/trigger-travis.sh @@ -1,15 +1,14 @@ #!/usr/bin/env bash set -eo pipefail echo '+++ :gear: Configuring Travis CI Build' -[[ -z $TRIGGER_TRAVIS_API_KEY ]] && echo '+++ :no_entry: ERROR: TRIGGER_TRAVIS_API_KEY key not found!' && exit 1 -TRAVIS_MESSAGE=${TRAVIS_MESSAGE:-"$BUILDKITE_MESSAGE - $(echo $BUILDKITE_BUILD_URL | grep -oe 'buildkite.*')"} -SOURCE_SLUG=${SOURCE_SLUG:-'eos'} +[[ -z $TRIGGER_TRAVIS_API_KEY ]] && (echo '+++ :no_entry: ERROR: Travis CI API key not found!' && exit 1) +TRAVIS_MESSAGE="$BUILDKITE_MESSAGE - $(echo $BUILDKITE_BUILD_URL | grep -oe 'buildkite.*')" [[ -z $BODY ]] && BODY="$(jq -nc '{"request":{"branch":env.BUILDKITE_BRANCH,"message":env.TRAVIS_MESSAGE}}')" echo 'Configuration:' echo "$BODY" | jq echo 'This configuration is derived from the BUILDKITE_BRANCH and BUILDKITE_MESSAGE variables set for this build.' echo '+++ :tractor: Triggering Travis CI Build' -export RESULT="$(curl -s -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "Travis-API-Version: 3" -H "Authorization: token $TRIGGER_TRAVIS_API_KEY" -d "$BODY" https://api.travis-ci.org/repo/EOSIO%2f${SOURCE_SLUG}/requests)" +export RESULT="$(curl -s -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "Travis-API-Version: 3" -H "Authorization: token $TRIGGER_TRAVIS_API_KEY" -d "$BODY" https://api.travis-ci.org/repo/EOSIO%2feosio.contracts/requests)" echo 'API Response:' echo "$RESULT" | jq 2>/dev/null || echo "$RESULT" if [[ "$(echo $RESULT | jq -r '.["@type"]')" != "pending" ]]; then From deba9f5ce6c6e15a6dcb8b6adc162e3de109eaa7 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Mon, 29 Jul 2019 12:17:42 -0400 Subject: [PATCH 160/528] Standardize Buildkite labels --- .cicd/base-images.yml | 8 ++++---- .cicd/pipeline.yml | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.cicd/base-images.yml b/.cicd/base-images.yml index 6485f2319c4..3a8ae02ccfb 100644 --- a/.cicd/base-images.yml +++ b/.cicd/base-images.yml @@ -5,7 +5,7 @@ env: steps: - - label: ":aws: [Amazon] 2 Ensure Docker Image" + - label: ":aws: Amazon_Linux 2 - Build" command: - ".cicd/generate-base-images.sh amazonlinux-2" agents: @@ -13,7 +13,7 @@ steps: timeout: $BUILD_TIMEOUT skip: $SKIP_AMAZON_LINUX_2 - - label: ":centos: [CentOS] 7 Build" + - label: ":centos: CentOS 7.6 - Build" command: - ".cicd/generate-base-images.sh centos-7" agents: @@ -21,7 +21,7 @@ steps: timeout: $BUILD_TIMEOUT skip: $SKIP_CENTOS_7 - - label: ":ubuntu: [Ubuntu] 16.04 Build" + - label: ":ubuntu: Ubuntu 16.04 - Build" command: - ".cicd/generate-base-images.sh ubuntu-16.04" agents: @@ -29,7 +29,7 @@ steps: timeout: $BUILD_TIMEOUT skip: $SKIP_UBUNTU_16 - - label: ":ubuntu: [Ubuntu] 18.04 Build" + - label: ":ubuntu: Ubuntu 18.04 - Build" command: - ".cicd/generate-base-images.sh ubuntu-18.04" agents: diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 9168093b06f..2403f3f1046 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -21,7 +21,7 @@ steps: - wait - - label: ":aws: [Amazon] 2 Build" + - label: ":aws: Amazon_Linux 2 - Build" agents: queue: "automation-eos-builder-fleet" plugins: @@ -31,7 +31,7 @@ steps: timeout: $BUILD_TIMEOUT skip: $SKIP_AMAZON_LINUX_2 - - label: ":centos: [CentOS] 7 Build" + - label: ":centos: CentOS 7.6 - Build" command: - "" agents: @@ -43,7 +43,7 @@ steps: timeout: $BUILD_TIMEOUT skip: $SKIP_CENTOS_7 - - label: ":ubuntu: [Ubuntu] 16.04 Build" + - label: ":ubuntu: Ubuntu 16.04 - Build" agents: queue: "automation-eos-builder-fleet" plugins: @@ -53,7 +53,7 @@ steps: timeout: $BUILD_TIMEOUT skip: $SKIP_UBUNTU_16 - - label: ":ubuntu: [Ubuntu] 18.04 Build" + - label: ":ubuntu: Ubuntu 18.04 - Build" agents: queue: "automation-eos-builder-fleet" plugins: @@ -63,7 +63,7 @@ steps: timeout: $BUILD_TIMEOUT skip: $SKIP_UBUNTU_18 - - label: ":darwin: [Darwin] 10.14 Build" + - label: ":darwin: macOS 10.14 - Build" command: - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake" - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" From 894d559b97da69111e9f0dbb6152fbf138027e9a Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Mon, 29 Jul 2019 16:59:51 -0400 Subject: [PATCH 161/528] Fix API url --- .cicd/trigger-travis.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/trigger-travis.sh b/.cicd/trigger-travis.sh index dcc5b63cbc1..da5f4313c49 100755 --- a/.cicd/trigger-travis.sh +++ b/.cicd/trigger-travis.sh @@ -8,7 +8,7 @@ echo 'Configuration:' echo "$BODY" | jq echo 'This configuration is derived from the BUILDKITE_BRANCH and BUILDKITE_MESSAGE variables set for this build.' echo '+++ :tractor: Triggering Travis CI Build' -export RESULT="$(curl -s -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "Travis-API-Version: 3" -H "Authorization: token $TRIGGER_TRAVIS_API_KEY" -d "$BODY" https://api.travis-ci.org/repo/EOSIO%2feosio.contracts/requests)" +export RESULT="$(curl -s -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "Travis-API-Version: 3" -H "Authorization: token $TRIGGER_TRAVIS_API_KEY" -d "$BODY" https://api.travis-ci.org/repo/EOSIO%2feos/requests)" echo 'API Response:' echo "$RESULT" | jq 2>/dev/null || echo "$RESULT" if [[ "$(echo $RESULT | jq -r '.["@type"]')" != "pending" ]]; then From 6c09577cc0dddc2db84cc5d515c8fe559431d3f8 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 23 Jul 2019 14:52:00 -0400 Subject: [PATCH 162/528] # This is a combination of 186 commits. # This is the 1st commit message: various improvements # This is the commit message #2: new hash # This is the commit message #3: fix for script path # This is the commit message #4: fixes # This is the commit message #5: fixes # This is the commit message #6: fixes # This is the commit message #7: fixes # This is the commit message #8: fixes # This is the commit message #9: fixes # This is the commit message #10: fixes # This is the commit message #11: fixes # This is the commit message #12: fixes # This is the commit message #13: fixes # This is the commit message #14: fixes # This is the commit message #15: fixes # This is the commit message #16: fixes # This is the commit message #17: fixes # This is the commit message #18: fixes # This is the commit message #19: fixes # This is the commit message #20: fixes # This is the commit message #21: fixes # This is the commit message #22: fixes # This is the commit message #23: fixes # This is the commit message #24: fixes # This is the commit message #25: fixes # This is the commit message #26: testing # This is the commit message #27: testing # This is the commit message #28: testing # This is the commit message #29: testing # This is the commit message #30: testing # This is the commit message #31: testing # This is the commit message #32: testing # This is the commit message #33: testing # This is the commit message #34: testing # This is the commit message #35: testing # This is the commit message #36: testing # This is the commit message #37: testing # This is the commit message #38: testing # This is the commit message #39: testing # This is the commit message #40: testing # This is the commit message #41: testing # This is the commit message #42: testing # This is the commit message #43: testing # This is the commit message #44: fixes # This is the commit message #45: fixes # This is the commit message #46: fixes # This is the commit message #47: fixes # This is the commit message #48: fixes # This is the commit message #49: fixes # This is the commit message #50: fixes # This is the commit message #51: fixes # This is the commit message #52: fixes # This is the commit message #53: fixes # This is the commit message #54: fixes # This is the commit message #55: fixes # This is the commit message #56: fixes # This is the commit message #57: fixes # This is the commit message #58: fixes # This is the commit message #59: fixes # This is the commit message #60: fixes # This is the commit message #61: fixes # This is the commit message #62: fixes # This is the commit message #63: fixes # This is the commit message #64: fixes # This is the commit message #65: fixes # This is the commit message #66: fixes # This is the commit message #67: fixes # This is the commit message #68: fixes # This is the commit message #69: fixes # This is the commit message #70: fixes # This is the commit message #71: fixes # This is the commit message #72: fixes # This is the commit message #73: fixes # This is the commit message #74: fixes # This is the commit message #75: fixes # This is the commit message #76: fixes # This is the commit message #77: fixes # This is the commit message #78: fixes # This is the commit message #79: more testing # This is the commit message #80: testing # This is the commit message #81: fixes # This is the commit message #82: fixes # This is the commit message #83: fixes # This is the commit message #84: fixes # This is the commit message #85: fixes # This is the commit message #86: fixes # This is the commit message #87: fixes # This is the commit message #88: fixes # This is the commit message #89: fixes # This is the commit message #90: fixes # This is the commit message #91: fixes # This is the commit message #92: fixes # This is the commit message #93: propagate-environment for buildkite-agent # This is the commit message #94: propagate-environment for buildkite-agent # This is the commit message #95: propagate-environment for buildkite-agent # This is the commit message #96: propagate-environment for buildkite-agent # This is the commit message #97: fixes # This is the commit message #98: fixes # This is the commit message #99: fixes # This is the commit message #100: fixes # This is the commit message #101: fixes # This is the commit message #102: fixes # This is the commit message #103: fixes # This is the commit message #104: fixes # This is the commit message #105: fixes # This is the commit message #106: fixes # This is the commit message #107: fixes # This is the commit message #108: fixes # This is the commit message #109: fixes # This is the commit message #110: fixes # This is the commit message #111: fixes # This is the commit message #112: fixes # This is the commit message #113: fixes # This is the commit message #114: fixes # This is the commit message #115: fixes # This is the commit message #116: fixes # This is the commit message #117: fixes # This is the commit message #118: fixes # This is the commit message #119: fixes # This is the commit message #120: fixes # This is the commit message #121: fixes # This is the commit message #122: fixes # This is the commit message #123: fixes # This is the commit message #124: fixes # This is the commit message #125: fixes # This is the commit message #126: fixes # This is the commit message #127: fixes # This is the commit message #128: fixes # This is the commit message #129: fixes # This is the commit message #130: fixes # This is the commit message #131: fixes # This is the commit message #132: fixes # This is the commit message #133: fixes # This is the commit message #134: fixes # This is the commit message #135: fixes # This is the commit message #136: fixes # This is the commit message #137: fixes # This is the commit message #138: fixes # This is the commit message #139: fixes # This is the commit message #140: fixes # This is the commit message #141: fixes # This is the commit message #142: fixes # This is the commit message #143: fixes # This is the commit message #144: fixes # This is the commit message #145: fixes # This is the commit message #146: fixes # This is the commit message #147: fixes # This is the commit message #148: fixes # This is the commit message #149: fixes # This is the commit message #150: fixes # This is the commit message #151: fixes # This is the commit message #152: fixes # This is the commit message #153: testing # This is the commit message #154: fixes # This is the commit message #155: fixes # This is the commit message #156: fixes # This is the commit message #157: fixes # This is the commit message #158: fixes # This is the commit message #159: fixes # This is the commit message #160: fixes # This is the commit message #161: fixes # This is the commit message #162: fixes # This is the commit message #163: fixes # This is the commit message #164: fixes # This is the commit message #165: fixes # This is the commit message #166: fixes # This is the commit message #167: fixes # This is the commit message #168: fixes # This is the commit message #169: fixes # This is the commit message #170: fixes # This is the commit message #171: fixes # This is the commit message #172: fixes # This is the commit message #173: fixes # This is the commit message #174: fixes # This is the commit message #175: fixes # This is the commit message #176: fixes # This is the commit message #177: fixes # This is the commit message #178: fixes # This is the commit message #179: fixes # This is the commit message #180: fixes # This is the commit message #181: fixes # This is the commit message #182: fixes # This is the commit message #183: fixes # This is the commit message #184: fixes # This is the commit message #185: fixes # This is the commit message #186: fixes --- .cicd/.helpers | 14 +- .cicd/docker/.helpers-v33 | 8 + .cicd/{ => docker}/amazonlinux-2.dockerfile | 20 +- .cicd/{ => docker}/centos-7.dockerfile | 22 +- .cicd/{ => docker}/pinned_toolchain.cmake | 0 .cicd/{ => docker}/ubuntu-16.04.dockerfile | 27 +- .cicd/{ => docker}/ubuntu-18.04.dockerfile | 20 +- .cicd/generate-base-images.sh | 5 +- .cicd/metrics/test-metrics.js | 431 ++++++++++++++++++++ .cicd/metrics/test-metrics.tar.gz | Bin 0 -> 96551 bytes .cicd/package-builder.sh | 54 +++ .cicd/pipeline.yml | 147 ++++++- .cicd/submodule-regression-checker.sh | 44 ++ .cicd/travis-build.sh | 23 -- .cicd/travis/travis-build.sh | 22 + .cicd/{ => travis}/travis-trigger.sh | 0 .gitignore | 1 + .travis.yml | 3 +- 18 files changed, 768 insertions(+), 73 deletions(-) create mode 100755 .cicd/docker/.helpers-v33 rename .cicd/{ => docker}/amazonlinux-2.dockerfile (69%) rename .cicd/{ => docker}/centos-7.dockerfile (73%) rename .cicd/{ => docker}/pinned_toolchain.cmake (100%) mode change 100644 => 100755 rename .cicd/{ => docker}/ubuntu-16.04.dockerfile (77%) rename .cicd/{ => docker}/ubuntu-18.04.dockerfile (65%) create mode 100755 .cicd/metrics/test-metrics.js create mode 100644 .cicd/metrics/test-metrics.tar.gz create mode 100755 .cicd/package-builder.sh create mode 100755 .cicd/submodule-regression-checker.sh delete mode 100755 .cicd/travis-build.sh create mode 100755 .cicd/travis/travis-build.sh rename .cicd/{ => travis}/travis-trigger.sh (100%) diff --git a/.cicd/.helpers b/.cicd/.helpers index 511b50d7456..acc3bfe69b3 100644 --- a/.cicd/.helpers +++ b/.cicd/.helpers @@ -3,12 +3,11 @@ VERBOSE=${VERBOSE:-true} export PROJECT_NAME="eosio" # Set IMAGE_TAG using arg (generate-base-images.sh) or env (travis.yml) -( [[ $(uname) != 'Darwin' ]] && [[ -z $IMAGE_TAG ]] && [[ -z $1 ]] ) && echo "You must provide the distro IMAGE_TAG name (example: ubuntu-18.04) as argument \$1 or set it within your ENV" && exit 1 export IMAGE_TAG=${IMAGE_TAG:-$1} function execute() { - $VERBOSE && echo "--- Executing: $@" - $DRYRUN || "$@" + ${VERBOSE:-true} && echo "--- Executing: $@" + ${DRYRUN:-false} || "$@" } function determine-hash() { @@ -29,10 +28,8 @@ function determine-hash() { function generate_docker_image() { # If we cannot pull the image, we build and push it first. docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD - cd ./.cicd - docker build -t $FULL_TAG -f ./${IMAGE_TAG}.dockerfile . + docker build -t $FULL_TAG -f ./docker/${IMAGE_TAG}.dockerfile . docker push $FULL_TAG - cd - } function docker_tag_exists() { @@ -42,8 +39,9 @@ function docker_tag_exists() { ( [[ $EXISTS =~ '404 page not found' ]] || [[ $EXISTS =~ 'manifest unknown' ]] ) && return 1 || return 0 } -if [[ $(uname) != 'Darwin' ]]; then # Darwin doesn't need hash (yet) - determine-hash ".cicd/${IMAGE_TAG}.dockerfile" +# If you're on mac and you want to generate the image, use "force" as $2 +if [[ ! -z $IMAGE_TAG ]]; then # Darwin doesn't need hash (yet) + determine-hash "docker/${IMAGE_TAG}.dockerfile" [[ -z $DETERMINED_HASH ]] && echo "DETERMINED_HASH empty! (check determine-hash function)" && exit 1 export FULL_TAG="eosio/producer:${PROJECT_NAME}-$HASHED_IMAGE_TAG" fi \ No newline at end of file diff --git a/.cicd/docker/.helpers-v33 b/.cicd/docker/.helpers-v33 new file mode 100755 index 00000000000..4f9ff752367 --- /dev/null +++ b/.cicd/docker/.helpers-v33 @@ -0,0 +1,8 @@ +function fold-execute() { + ${TRAVIS:-false} && echo -en "travis_fold:start:$(echo $@)\r" || true + echo "--- Executing: $@" + "$@" + rcode=$? + [ $rcode -eq 0 ] || exit $rcode + ${TRAVIS:-false} && echo -en "travis_fold:end:$(echo $@)\r" || true +} \ No newline at end of file diff --git a/.cicd/amazonlinux-2.dockerfile b/.cicd/docker/amazonlinux-2.dockerfile similarity index 69% rename from .cicd/amazonlinux-2.dockerfile rename to .cicd/docker/amazonlinux-2.dockerfile index 5bdc15d98c5..1c1e8a099b7 100644 --- a/.cicd/amazonlinux-2.dockerfile +++ b/.cicd/docker/amazonlinux-2.dockerfile @@ -72,11 +72,23 @@ ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm \ && yum install -y ccache-3.3.4-1.el7.x86_64.rpm +# Install Buildkite Agent +RUN echo -e "[buildkite-agent]\nname = Buildkite Pty Ltd\nbaseurl = https://yum.buildkite.com/buildkite-agent/stable/x86_64/\nenabled=1\ngpgcheck=0\npriority=1" > /etc/yum.repos.d/buildkite-agent.repo && \ + yum -y install buildkite-agent + # PRE_COMMANDS: Executed pre-cmake # CMAKE_EXTRAS: Executed right before the cmake path (on the end) -ENV PRE_COMMANDS="export PATH=/usr/lib64/ccache:$PATH &&" +ENV PRE_COMMANDS="export PATH=/usr/lib64/ccache:\$PATH" ENV CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" -CMD bash -c "$PRE_COMMANDS ccache -s && \ - mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && make -j $(getconf _NPROCESSORS_ONLN) && \ - ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" \ No newline at end of file +# Bring in helpers that provides execute function so we can get better logging in BK and TRAV +COPY ./docker/.helpers-v33 /tmp/.helpers + +CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ + fold-execute ccache -s && \ + mkdir /workdir/build && cd /workdir/build && fold-execute cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && \ + fold-execute make -j $(getconf _NPROCESSORS_ONLN) && \ + if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test; fi && \ + if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ + if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi && \ + if ! ${TRAVIS:-false}; then cd .. && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi" diff --git a/.cicd/centos-7.dockerfile b/.cicd/docker/centos-7.dockerfile similarity index 73% rename from .cicd/centos-7.dockerfile rename to .cicd/docker/centos-7.dockerfile index a0a342c8857..b53ca471ef7 100644 --- a/.cicd/centos-7.dockerfile +++ b/.cicd/docker/centos-7.dockerfile @@ -7,7 +7,7 @@ RUN yum update -y \ && yum --enablerepo=extras install -y which git autoconf automake libtool make bzip2 doxygen \ graphviz bzip2-devel openssl-devel gmp-devel ocaml libicu-devel \ python python-devel rh-python36 gettext-devel file libusbx-devel \ - libcurl-devel patch + libcurl-devel patch # Build appropriate version of CMake. RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz \ @@ -88,10 +88,22 @@ RUN cd /usr/lib64/ccache && ln -s ../../bin/ccache c++ ## We need to tell ccache to actually use devtoolset-8 instead of the default system one (ccache resets anything set in PATH when it launches) ENV CCACHE_PATH="/opt/rh/devtoolset-8/root/usr/bin" +# Install Buildkite Agent +RUN echo -e "[buildkite-agent]\nname = Buildkite Pty Ltd\nbaseurl = https://yum.buildkite.com/buildkite-agent/stable/x86_64/\nenabled=1\ngpgcheck=0\npriority=1" > /etc/yum.repos.d/buildkite-agent.repo && \ + yum -y install buildkite-agent + # PRE_COMMANDS: Executed pre-cmake # CMAKE_EXTRAS: Executed right before the cmake path (on the end) -ENV PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:$PATH &&" +ENV PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:\$PATH" + +# Bring in helpers that provides execute function so we can get better logging in BK and TRAV +COPY ./docker/.helpers-v33 /tmp/.helpers -CMD bash -c "$PRE_COMMANDS ccache -s && \ - mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && make -j $(getconf _NPROCESSORS_ONLN) && \ - ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" \ No newline at end of file +CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ + fold-execute ccache -s && \ + mkdir /workdir/build && cd /workdir/build && fold-execute cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && \ + fold-execute make -j $(getconf _NPROCESSORS_ONLN) && \ + if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test; fi && \ + if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ + if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi && \ + if ! ${TRAVIS:-false}; then cd .. && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi" diff --git a/.cicd/pinned_toolchain.cmake b/.cicd/docker/pinned_toolchain.cmake old mode 100644 new mode 100755 similarity index 100% rename from .cicd/pinned_toolchain.cmake rename to .cicd/docker/pinned_toolchain.cmake diff --git a/.cicd/ubuntu-16.04.dockerfile b/.cicd/docker/ubuntu-16.04.dockerfile similarity index 77% rename from .cicd/ubuntu-16.04.dockerfile rename to .cicd/docker/ubuntu-16.04.dockerfile index e83384cea65..797cd0fdb12 100644 --- a/.cicd/ubuntu-16.04.dockerfile +++ b/.cicd/docker/ubuntu-16.04.dockerfile @@ -5,7 +5,7 @@ RUN apt-get update && apt-get upgrade -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential git automake \ libbz2-dev libssl-dev doxygen graphviz libgmp3-dev autotools-dev libicu-dev \ python2.7 python2.7-dev python3 python3-dev autoconf libtool curl zlib1g-dev \ - sudo ruby libusb-1.0-0-dev libcurl4-gnutls-dev pkg-config + sudo ruby libusb-1.0-0-dev libcurl4-gnutls-dev pkg-config apt-transport-https # Build appropriate version of CMake. RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz \ @@ -20,10 +20,9 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz \ # Build appropriate version of Clang. RUN mkdir -p /root/tmp && cd /root/tmp && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && cd .. && cd ../../../../projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && cd ../ && cd /root/tmp/clang8 && mkdir build && cd build && cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=all -DCMAKE_BUILD_TYPE=Release .. && make -j$(nproc) && make install \ && cd / && rm -rf /root/tmp/clang8 +COPY ./docker/pinned_toolchain.cmake /tmp/pinned_toolchain.cmake -COPY ./pinned_toolchain.cmake /tmp/pinned_toolchain.cmake - -# # Build appropriate version of LLVM. +# Build appropriate version of LLVM. RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm \ && cd llvm \ && mkdir build \ @@ -83,11 +82,23 @@ RUN curl -LO https://github.com/ccache/ccache/releases/download/v3.4.1/ccache-3. && make install \ && cd / && rm -rf ccache-3.4.1/ +RUN echo "deb https://apt.buildkite.com/buildkite-agent stable main" > /etc/apt/sources.list.d/buildkite-agent.list \ + && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 32A37959C2FA5C3C99EFBC32A79206696452D198 \ + && apt-get update && apt-get install -y buildkite-agent + # PRE_COMMANDS: Executed pre-cmake # CMAKE_EXTRAS: Executed right before the cmake path (on the end) -ENV PRE_COMMANDS="export PATH=/usr/lib/ccache:$PATH &&" +ENV PRE_COMMANDS="export PATH=/usr/lib/ccache:\$PATH" ENV CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" -CMD bash -c "$PRE_COMMANDS ccache -s && \ - mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && make -j $(getconf _NPROCESSORS_ONLN) && \ - ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" \ No newline at end of file +# Bring in helpers that provides execute function so we can get better logging in BK and TRAV +COPY ./docker/.helpers-v33 /tmp/.helpers + +CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ + fold-execute ccache -s && \ + mkdir /workdir/build && cd /workdir/build && fold-execute cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && \ + fold-execute make -j $(getconf _NPROCESSORS_ONLN) && \ + if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test; fi && \ + if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ + if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi && \ + if ! ${TRAVIS:-false}; then cd .. && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi" \ No newline at end of file diff --git a/.cicd/ubuntu-18.04.dockerfile b/.cicd/docker/ubuntu-18.04.dockerfile similarity index 65% rename from .cicd/ubuntu-18.04.dockerfile rename to .cicd/docker/ubuntu-18.04.dockerfile index 1561eccfc2b..bd440d86f7b 100644 --- a/.cicd/ubuntu-18.04.dockerfile +++ b/.cicd/docker/ubuntu-18.04.dockerfile @@ -59,11 +59,23 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin +RUN echo "deb https://apt.buildkite.com/buildkite-agent stable main" > /etc/apt/sources.list.d/buildkite-agent.list \ + && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 32A37959C2FA5C3C99EFBC32A79206696452D198 \ + && apt-get update && apt-get install -y apt-transport-https && apt-get install -y buildkite-agent + # PRE_COMMANDS: Executed pre-cmake # CMAKE_EXTRAS: Executed right before the cmake path (on the end) -ENV PRE_COMMANDS="export PATH=/usr/lib/ccache:$PATH &&" +ENV PRE_COMMANDS="export PATH=/usr/lib/ccache:\$PATH" ENV CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" -CMD bash -c "$PRE_COMMANDS ccache -s && \ - mkdir /workdir/build && cd /workdir/build && cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && make -j $(getconf _NPROCESSORS_ONLN) && \ - ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test" +# Bring in helpers that provides execute function so we can get better logging in BK and TRAV +COPY ./docker/.helpers-v33 /tmp/.helpers + +CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ + fold-execute ccache -s && \ + mkdir /workdir/build && cd /workdir/build && fold-execute cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && \ + fold-execute make -j $(getconf _NPROCESSORS_ONLN) && \ + if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test; fi && \ + if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ + if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi && \ + if ! ${TRAVIS:-false}; then cd .. && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi" diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index 86fff371438..71cd07f1878 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash set -eo pipefail -cd $( dirname "${BASH_SOURCE[0]}" )/.. # Ensure we're in the repo root and not inside of scripts -. ./.cicd/.helpers +cd $( dirname "${BASH_SOURCE[0]}" ) # Ensure we're in the .cicd dir +. ./.helpers +( [[ -z $IMAGE_TAG ]] && [[ -z $1 ]] ) && echo "You must provide the distro IMAGE_TAG name (example: ubuntu-18.04) as argument \$1 or set it within your ENV" && exit 1 echo "Looking for $FULL_TAG" docker_tag_exists $FULL_TAG && echo "$FULL_TAG already exists" || generate_docker_image diff --git a/.cicd/metrics/test-metrics.js b/.cicd/metrics/test-metrics.js new file mode 100755 index 00000000000..b995134d9b1 --- /dev/null +++ b/.cicd/metrics/test-metrics.js @@ -0,0 +1,431 @@ +#!/usr/bin/env node +/* includes */ +const execSync = require('child_process').execSync; // run shell commands +const fetch = require('node-fetch'); // downloading +const fs = require('fs'); // file stream +const XML = require('xml2js'); // parse xml + +/* globals */ +const buildkiteAccessToken = `?access_token=${process.env.BUILDKITE_API_KEY}`; // import buildkite access token from environment +const debug = (process.env.DEBUG === 'true') ? true : false; +let errorCount = 0; // count number of jobs which caused an error +const EXIT_SUCCESS = 0; +const inBuildkite = (process.env.BUILDKITE === 'true') ? true : false; +const outputFile = 'test-metrics.json'; +const pipelineWhitelist = // the pipelines for which we run diagnostics +[ + 'eosio', + 'eosio-base-images', + 'eosio-beta', + 'eosio-build-unpinned', + 'eosio-debug', + 'eosio-lrt', + 'eosio-security' +]; + +/* functions */ +// given a url string, download a text document +async function download(url) +{ + if (debug) console.log(`download(${url.replace(buildkiteAccessToken, '')})`); // DEBUG + const httpResponse = await fetch(url); + const body = await httpResponse.text(); + if (isNullOrEmpty(body)) + { + console.log(`ERROR: URL returned nothing! URL: ${url.replace(buildkiteAccessToken, '')}`); + const error = + { + http: { body, response: httpResponse, url}, + message: 'http body is null or empty', + origin: 'download()', + } + throw error; + } + if (debug) console.log('Download complete.'); // DEBUG + return body; +} + +// given a pipeline and a build number, get a build object +async function getBuild(pipeline, buildNumber) +{ + if (debug) console.log(`getBuild(${pipeline}, ${buildNumber})`); // DEBUG + const httpResponse = await fetch(`https://api.buildkite.com/v2/organizations/EOSIO/pipelines/${pipeline}/builds/${buildNumber}${buildkiteAccessToken}`); + return httpResponse.json(); +} + +// given a buildkite job, return the environmental variables +async function getEnvironment(job) +{ + if (debug) console.log('getEnvironment()'); // DEBUG + const httpResponse = await fetch(`${job.build_url}/jobs/${job.id}/env${buildkiteAccessToken}`); + const environment = await httpResponse.json(); + return environment.env; +} + +// given a string to search, a key as regex or a string, and optionally a start index, return the lowest line number containing the key +function getLineNumber(text, key, startIndex) +{ + if (debug) console.log('getLineNumber()'); // DEBUG + const begin = (isNullOrEmpty(startIndex) || !Number.isInteger(startIndex) || startIndex < 1) ? 0 : startIndex; + let found = false; + let lineNumber = 0; + const regex = (key instanceof RegExp); + text.split('\n').some((line) => + { + if (lineNumber >= begin && ((regex && key.test(line)) || (!regex && line.includes(key)))) + { + found = true; + return true; // c-style break + } + lineNumber += 1; + return false; // for the linter, plz delete when linter is fixed + }); + return (found) ? lineNumber : -1; +} + +// given a buildkite job, return a sanitized log file +async function getLog(job) +{ + if (debug) console.log(`getLog(${job.raw_log_url})`); // DEBUG + const logText = await download(job.raw_log_url + buildkiteAccessToken); + // returns log lowercase, with single spaces and '\n' only, and only ascii-printable characters + return sanitize(logText); // made this a separate function for unit testing purposes +} + +// given a Buildkite environment, return the operating system used +function getOS(environment) +{ + if (debug) console.log(`getOS(${environment.BUILDKITE_LABEL})`); // DEBUG + if (isNullOrEmpty(environment) || isNullOrEmpty(environment.BUILDKITE_LABEL)) + { + console.log('ERROR: getOS() called with empty environment.BUILDKITE_LABEL!'); + console.log(JSON.stringify(environment)); + return null; + } + const label = environment.BUILDKITE_LABEL.toLowerCase(); + if ((/aws(?!.*[23])/.test(label) || /amazon(?!.*[23])/.test(label))) + return 'Amazon Linux 1'; + if (/aws.*2/.test(label) || /amazon.*2/.test(label)) + return 'Amazon Linux 2'; + if (/centos(?!.*[89])/.test(label)) + return 'CentOS 7'; + if (/fedora(?!.*2[89])/.test(label) && /fedora(?!.*3\d)/.test(label)) + return 'Fedora 27'; + if (/high.*sierra/.test(label)) + return 'High Sierra'; + if (/mojave/.test(label)) + return 'Mojave'; + if (/ubuntu.*16.*04/.test(label) || /ubuntu.*16(?!.*10)/.test(label)) + return 'Ubuntu 16.04'; + if (/ubuntu.*18.*04/.test(label) || /ubuntu.*18(?!.*10)/.test(label)) + return 'Ubuntu 18.04'; + if (/docker/.test(label)) + return 'Docker'; + return 'Unknown'; +} + +// given a Buildkite job, return the test-results.xml file as JSON +async function getXML(job) +{ + if (debug) console.log('getXML()'); // DEBUG + const xmlFilename = 'test-results.xml'; + const artifacts = await download(job.artifacts_url + buildkiteAccessToken); + const testResultsArtifact = JSON.parse(artifacts).filter(artifact => artifact.filename === xmlFilename); + if (isNullOrEmpty(testResultsArtifact)) + { + console.log(`WARNING: No ${xmlFilename} found for "${job.name}"! Link: ${job.web_url}`); + return null; + } + const urlBuildkite = testResultsArtifact[0].download_url; + const rawXML = await download(urlBuildkite + buildkiteAccessToken); + const xmlOptions = + { + attrNameProcessors: [function lower(name) { return name.toLowerCase(); }], + explicitArray: false, // do not put single strings in single-element arrays + mergeAttrs: true, // make attributes children of their node + normalizeTags: true, // convert all tag names to lowercase + }; + let xmlError, xmlTestResults; + await XML.parseString(rawXML, xmlOptions, (err, result) => {xmlTestResults = result; xmlError = err;}); + if (isNullOrEmpty(xmlError)) + return xmlTestResults; + console.log(`WARNING: Failed to parse xml for "${job.name}" job! Link: ${job.web_url}`); + console.log(JSON.stringify(xmlError)); + return null; +} + +// test if variable is empty +function isNullOrEmpty(str) +{ + return (str === null || str === undefined || str.length === 0 || /^\s*$/.test(str)); +} + +// return array of test results from a buildkite job log +function parseLog(logText) +{ + if (debug) console.log('parseLog()'); // DEBUG + const lines = logText.split('\n'); + const resultLines = lines.filter(line => /test\s+#\d+/.test(line)); // 'grep' for the test result lines + // parse the strings and make test records + return resultLines.map((line) => + { + const y = line.trim().split(/test\s+#\d+/).pop(); // remove everything before the test declaration + const parts = y.split(/\s+/).slice(1, -1); // split the line and remove the test number and time unit + const testName = parts[0]; + const testTime = parts[(parts.length - 1)]; + const rawResult = parts.slice(1, -1).join(); + let testResult; + if (rawResult.includes('failed')) + testResult = 'Failed'; + else if (rawResult.includes('passed')) + testResult = 'Passed'; + else + testResult = 'Exception'; + return { testName, testResult, testTime }; // create a test record + }); +} + +// return array of test results from an xUnit-formatted JSON object +function parseXunit(xUnit) +{ + if (debug) console.log('parseXunit()'); // DEBUG + if (isNullOrEmpty(xUnit)) + { + console.log('WARNING: xUnit is empty!'); + return null; + } + return xUnit.site.testing.test.map((test) => + { + const testName = test.name; + const testTime = test.results.namedmeasurement.filter(x => /execution\s+time/.test(x.name.toLowerCase()))[0].value; + let testResult; + if (test.status.includes('failed')) + testResult = 'Failed'; + else if (test.status.includes('passed')) + testResult = 'Passed'; + else + testResult = 'Exception'; + return { testName, testResult, testTime }; + }); +} + +// returns text lowercase, with single spaces and '\n' only, and only ascii-printable characters +function sanitize(text) +{ + if (debug) console.log(`sanitize(text) where text.length = ${text.length} bytes`); // DEBUG + const chunkSize = 131072; // process text in 128 kB chunks + if (text.length > chunkSize) + return sanitize(text.slice(0, chunkSize)).concat(sanitize(text.slice(chunkSize))); + return text + .replace(/(?!\n)\r(?!\n)/g, '\n').replace(/\r/g, '') // convert all line endings to '\n' + .replace(/[^\S\n]+/g, ' ') // convert all whitespace to ' ' + .replace(/[^ -~\n]+/g, '') // remove non-printable characters + .toLowerCase(); +} + +// input is array of whole lines containing "test #" and ("failed" or "exception") +function testDiagnostics(test, logText) +{ + if (debug) + { + console.log(`testDiagnostics(test, logText) where logText.length = ${logText.length} bytes and test is`); // DEBUG + console.log(JSON.stringify(test)); + } + // get basic information + const testResultLine = new RegExp(`test\\s+#\\d+.*${test.testName}`, 'g'); // regex defining "test #" line + const startIndex = getLineNumber(logText, testResultLine); + const output = { errorMsg: null, lineNumber: startIndex + 1, stackTrace: null }; // default output + // filter tests + if (test.testResult.toLowerCase() === 'passed') + return output; + output.errorMsg = 'test diangostics are not enabled for this pipeline'; + if (!pipelineWhitelist.includes(test.pipeline)) + return output; + // diagnostics + if (debug) console.log('Running diagnostics...'); // DEBUG + output.errorMsg = 'uncategorized'; + const testLog = logText.split(testResultLine)[1].split(/test\s*#/)[0].split('\n'); // get log output from this test only, as array of lines + let errorLine = testLog[0]; // first line, from "test ## name" to '\n' exclusive + if (/\.+ *\** *not run\s+0+\.0+ sec$/.test(errorLine)) // not run + output.errorMsg = 'test not run'; + else if (/\.+ *\** *time *out\s+\d+\.\d+ sec$/.test(errorLine)) // timeout + output.errorMsg = 'test timeout'; + else if (/exception/.test(errorLine)) // test exception + output.errorMsg = errorLine.split('exception')[1].replace(/[: \d.]/g, '').replace(/sec$/, ''); // isolate the error message after exception + else if (/fc::.*exception/.test(testLog.filter(line => !isNullOrEmpty(line))[1])) // fc exception + { + [, errorLine] = testLog.filter(line => !isNullOrEmpty(line)); // get first line + output.errorMsg = `fc::${errorLine.split('::')[1].replace(/['",]/g, '').split(' ')[0]}`; // isolate fx exception body + } + else if (testLog.join('\n').includes('ctest:')) // ctest exception + { + [errorLine] = testLog.filter(line => line.includes('ctest:')); + output.errorMsg = `ctest:${errorLine.split('ctest:')[1]}`; + } + else if (!isNullOrEmpty(testLog.filter(line => /boost.+exception/.test(line)))) // boost exception + { + [errorLine] = testLog.filter(line => /boost.+exception/.test(line)); + output.errorMsg = `boost: ${errorLine.replace(/[()]/g, '').split(/: (.+)/)[1]}`; // capturing parenthesis, split only at first ' :' + output.stackTrace = testLog.filter(line => /thread-\d+/.test(line))[0].split('thread-')[1].replace(/^\d+/, '').trim().replace(/[[]\d+m$/, ''); // get the bottom of the stack trace + } + else if (/unit[-_. ]+test/.test(test.testName) || /plugin[-_. ]+test/.test(test.testName)) // unit test, application exception + { + if (!isNullOrEmpty(testLog.filter(line => line.includes('exception: ')))) + { + [errorLine] = testLog.filter(line => line.includes('exception: ')); + [, output.errorMsg] = errorLine.replace(/[()]/g, '').split(/: (.+)/); // capturing parenthesis, split only at first ' :' + output.stackTrace = testLog.filter(line => /thread-\d+/.test(line))[0].split('thread-')[1].replace(/^\d+/, '').trim().replace(/[[]\d+m$/, ''); // get the bottom of the stack trace + } + // else uncategorized unit test + } + // else integration test, add cross-referencing code here (or uncategorized) + if (errorLine !== testLog[0]) // get real line number from log file + output.lineNumber = getLineNumber(logText, errorLine, startIndex) + 1; + return output; +} + +// return test metrics given a buildkite job or build +async function testMetrics(buildkiteObject) +{ + if (!isNullOrEmpty(buildkiteObject.type)) // input is a Buildkite job object + { + const job = buildkiteObject; + console.log(`Processing test metrics for "${job.name}"${(inBuildkite) ? '' : ` at ${job.web_url}`}...`); + if (isNullOrEmpty(job.exit_status)) + { + console.log(`${(inBuildkite) ? '+++ :warning: ' : ''}WARNING: "${job.name}" was skipped!`); + return null; + } + // get test results + const logText = await getLog(job); + let testResults; + let xUnit; + try + { + xUnit = await getXML(job); + testResults = parseXunit(xUnit); + } + catch (error) + { + console.log(`XML processing failed for "${job.name}"! Link: ${job.web_url}`); + console.log(JSON.stringify(error)); + testResults = null; + } + finally + { + if (isNullOrEmpty(testResults)) + testResults = parseLog(logText); + } + // get test metrics + const env = await getEnvironment(job); + env.BUILDKITE_REPO = env.BUILDKITE_REPO.replace(new RegExp('^git@github.com:(EOSIO/)?'), '').replace(new RegExp('.git$'), ''); + const metrics = []; + const os = getOS(env); + testResults.forEach((result) => + { + // add test properties + const test = + { + ...result, // add testName, testResult, testTime + agentName: env.BUILDKITE_AGENT_NAME, + agentRole: env.BUILDKITE_AGENT_META_DATA_QUEUE || env.BUILDKITE_AGENT_META_DATA_ROLE, + branch: env.BUILDKITE_BRANCH, + buildNumber: env.BUILDKITE_BUILD_NUMBER, + commit: env.BUILDKITE_COMMIT, + job: env.BUILDKITE_LABEL, + os, + pipeline: env.BUILDKITE_PIPELINE_SLUG, + repo: env.BUILDKITE_REPO, + testTime: parseFloat(result.testTime), + url: job.web_url, + }; + metrics.push({ ...test, ...testDiagnostics(test, logText) }); + }); + return metrics; + } + else if (!isNullOrEmpty(buildkiteObject.number)) // input is a Buildkite build object + { + const build = buildkiteObject; + console.log(`Processing test metrics for ${build.pipeline.slug} build ${build.number}${(inBuildkite) ? '' : ` at ${build.web_url}`}...`); + let metrics = [], promises = []; + // process test metrics + build.jobs.filter(job => job.type === 'script' && /test/.test(job.name.toLowerCase()) && ! /test metrics/.test(job.name.toLowerCase())).forEach((job) => + { + promises.push( + testMetrics(job) + .then((moreMetrics) => { + if (!isNullOrEmpty(moreMetrics)) + metrics = metrics.concat(moreMetrics); + else + console.log(`${(inBuildkite) ? '+++ :warning: ' : ''}WARNING: "${job.name}" metrics are empty!\nmetrics = ${JSON.stringify(moreMetrics)}`); + }).catch((error) => { + console.log(`${(inBuildkite) ? '+++ :no_entry: ' : ''}ERROR: Failed to process test metrics for "${job.name}"! Link: ${job.web_url}`); + console.log(JSON.stringify(error)); + errorCount++; + }) + ); + }); + await Promise.all(promises); + return metrics; + } + else // something else + { + console.log(`${(inBuildkite) ? '+++ :no_entry: ' : ''}ERROR: Buildkite object not recognized or not a test step!`); + console.log(JSON.stringify({buildkiteObject})); + return null; + } +} + +/* main */ +async function main() +{ + if (debug) console.log(`$ ${process.argv.join(' ')}`); + let build, metrics = null; + console.log(`${(inBuildkite) ? '+++ :evergreen_tree: ' : ''}Getting information from enviroment...`); + const buildNumber = process.env.BUILDKITE_BUILD_NUMBER || process.argv[2]; + const pipeline = process.env.BUILDKITE_PIPELINE_SLUG || process.argv[3]; + if (debug) + { + console.log(`BUILDKITE=${process.env.BUILDKITE}`); + console.log(`BUILDKITE_BUILD_NUMBER=${process.env.BUILDKITE_BUILD_NUMBER}`); + console.log(`BUILDKITE_PIPELINE_SLUG=${process.env.BUILDKITE_PIPELINE_SLUG}`); + console.log(' State:') + console.log(`inBuildkite = "${inBuildkite}"`); + console.log(`buildNumber = "${buildNumber}"`); + console.log(`pipeline = "${pipeline}"`); + } + if (isNullOrEmpty(buildNumber) || isNullOrEmpty(pipeline) || isNullOrEmpty(process.env.BUILDKITE_API_KEY)) + { + console.log(`${(inBuildkite) ? '+++ :no_entry: ' : ''}ERROR: Missing required inputs!`); + if (isNullOrEmpty(process.env.BUILDKITE_API_KEY)) console.log('- Buildkite API key, as BUILDKITE_API_KEY environment variable'); + if (isNullOrEmpty(buildNumber)) console.log('- Build Number, as BUILDKITE_BUILD_NUMBER or argument 1'); + if (isNullOrEmpty(pipeline)) console.log('- Pipeline Slug, as BUILDKITE_PIPELINE_SLUG or argument 2'); + errorCount = -1; + } + else + { + console.log(`${(inBuildkite) ? '+++ :bar_chart: ' : ''}Processing test metrics...`); + build = await getBuild(pipeline, buildNumber); + metrics = await testMetrics(build); + console.log('Done processing test metrics.'); + } + console.log(`${(inBuildkite) ? '+++ :pencil: ' : ''}Writing to file...`); + fs.writeFileSync(outputFile, JSON.stringify({ metrics })); + console.log(`Saved metrics to "${outputFile}" in "${process.cwd()}".`); + if (inBuildkite) + { + console.log('+++ :arrow_up: Uploading artifact...'); + execSync(`buildkite-agent artifact upload ${outputFile}`); + } + if (errorCount === 0) + console.log(`${(inBuildkite) ? '+++ :white_check_mark: ' : ''}Done!`); + else + { + console.log(`${(inBuildkite) ? '+++ :warning: ' : ''}Finished with errors.`); + console.log(`Please send automation a link to this job${(isNullOrEmpty(build)) ? '.' : `: ${build.web_url}`}`); + console.log('@kj4ezj or @zreyn on Telegram'); + } + return (inBuildkite) ? process.exit(EXIT_SUCCESS) : process.exit(errorCount); +}; + +main(); \ No newline at end of file diff --git a/.cicd/metrics/test-metrics.tar.gz b/.cicd/metrics/test-metrics.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..2381787ca06196f1b95c636435a77b58ba1cc0aa GIT binary patch literal 96551 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 /dev/null +git submodule update --init &> /dev/null +while read -r a b; do + BASE_MAP[$a]=$b +done < <(git submodule --quiet foreach --recursive 'echo $path `git log -1 --format=%ct`') + +for k in "${!BASE_MAP[@]}"; do + base_ts=${BASE_MAP[$k]} + pr_ts=${PR_MAP[$k]} + echo "submodule $k" + echo " timestamp on $CURRENT_BRANCH: $pr_ts" + echo " timestamp on $BASE_BRANCH: $base_ts" + if (( $pr_ts < $base_ts)); then + echo "$k is older on $CURRENT_BRANCH than $BASE_BRANCH; investigating..." + + if for c in `git log $CURRENT_BRANCH ^$BASE_BRANCH --pretty=format:"%H"`; do git show --pretty="" --name-only $c; done | grep -q "^$k$"; then + echo "ERROR: $k has regressed" + exit 1 + else + echo "$k was not in the diff; no regression detected" + fi + fi +done diff --git a/.cicd/travis-build.sh b/.cicd/travis-build.sh deleted file mode 100755 index d12ba8ebb05..00000000000 --- a/.cicd/travis-build.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail -cd $( dirname "${BASH_SOURCE[0]}" )/.. # Ensure we're in the repo root and not inside of scripts -. ./.cicd/.helpers - -CPU_CORES=$(getconf _NPROCESSORS_ONLN) -if [[ "$(uname)" == Darwin ]]; then - echo 'Detected Darwin, building natively.' - [[ -d eos ]] && cd eos - [[ ! -d build ]] && mkdir build - cd build - echo \$PATH - ccache -s - echo '$ cmake ..' - cmake .. - echo "$ make -j $CPU_CORES" - make -j $CPU_CORES - echo 'Running unit tests.' - echo "$ ctest -j $CPU_CORES -LE _tests --output-on-failure -T Test" - ctest -j $CPU_CORES -LE _tests --output-on-failure -T Test # run unit tests -else # linux - execute docker run --rm -v $(pwd):/workdir -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache $FULL_TAG -fi \ No newline at end of file diff --git a/.cicd/travis/travis-build.sh b/.cicd/travis/travis-build.sh new file mode 100755 index 00000000000..4f8bc35fbab --- /dev/null +++ b/.cicd/travis/travis-build.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +set -eo pipefail +ROOT_DIR=$(pwd) +cd $( dirname "${BASH_SOURCE[0]}" )/.. # Ensure we're in the .cicd dir +. ./.helpers +cd $ROOT_DIR +pwd + +CPU_CORES=$(getconf _NPROCESSORS_ONLN) +if [[ "$(uname)" == Darwin ]]; then + . ./.cicd/docker/.helpers-v33 + fold-execute ccache -s + mkdir -p build && cd build && fold-execute cmake .. + fold-execute make -j$(getconf _NPROCESSORS_ONLN) + if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test; fi + if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi + if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi + if ${ENABLE_SUBMODULE_REGRESSION_TEST:-true}; then cd $ROOT_DIR && fold-execute ./.cicd/submodule-regression-checker.sh; fi +else # linux + DOCKER_RUN_EXTRAS="-e ENABLE_PACKAGE_BUILDER=false" # Travis doesn't need to test or push packages + execute eval docker run --rm -v $(pwd):/workdir -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache -e TRAVIS $DOCKER_RUN_EXTRAS $FULL_TAG +fi \ No newline at end of file diff --git a/.cicd/travis-trigger.sh b/.cicd/travis/travis-trigger.sh similarity index 100% rename from .cicd/travis-trigger.sh rename to .cicd/travis/travis-trigger.sh diff --git a/.gitignore b/.gitignore index 46a19161c91..6dd6c1ca492 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ *.dot *.abi.hpp *.cmake +!.cicd !CMakeModules/*.cmake *.ninja \#* diff --git a/.travis.yml b/.travis.yml index 168d4071571..9bdd9ce61d3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -45,10 +45,11 @@ matrix: - openssl - boost@1.70 - ccache + - mongodb env: - PATH="/usr/local/opt/ccache/libexec:$PATH" script: | - ./.cicd/travis-build.sh + ./.cicd/travis/travis-build.sh notifications: webhooks: secure: gmqODqoFAil2cR7v++ibqRNECBOSD/VJX+2qPa7XptkVWmVMzbII5CNgBQAscjFsp9arHPMXCCzkBi847PCSiHdsnYFQ4T273FLRWr3cDbLjfmR+BJ7dGKvQnlpSi2Ze2TtAPJyRl+iv+cxDj7cWE5zw2c4xbgh1a/cNO+/ayUfFkyMEIfVWRsHkdkra4gOLywou0XRLHr4CX1V60uU7uuqATnIMMi7gQYwiKKtZqjkbf8wcBvZirDhjQ6lDPN5tnZo6L4QHmqjtzNJg/UrD4h+zES53dLVI4uxlXRAwwpw+mJOFA3QE/3FT+bMQjLCffUz4gZaWcdgebPYzrwSWUbJoFdWAOwcTqivQY0FIQzcz/r6uGWcwWTavzkPEbg68BVM2BZId/0110J6feeTkpJ3MPV+UsIoGTvbg50vi/I06icftuZ/cLqDj3+Emifm7Jlr1sRTSdqtYAJj/2ImUfsb46cwgjAVhFOTvc+KuPgJQgvOXV7bZkxEr5qDWo8Al2sV8BWb83j1rMlZ4LfERokImDVqxu2kkcunchzvhtYFTesSpmwegVpwceCtOtO0rEUgATnfTEHzk2rm8nuz4UtidsQnluUKqmKD0QCqHXFfn+3ZRJsDqr+iCYdxv1BAeAVc9q1L7bgrKDMGiJgkxuhZ2v3J2SflWLvjZjFDduuc= From 16bf1b0cc69eee869e8db44c06b00dcdc705ff6b Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 30 Jul 2019 09:51:36 -0400 Subject: [PATCH 163/528] merge --- .cicd/pipeline.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 89ad710e52e..66edcf74e73 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -6,10 +6,16 @@ env: DEBUG: true steps: + - wait - label: ":webhook: Trigger Travis CI Build" +<<<<<<< HEAD command: - "./.cicd/travis/travis-trigger.sh" +======= + command: | + . ./.cicd/trigger-travis.sh +>>>>>>> 20fd8b428... Fix build message passed to Travis API during trigger step agents: queue: "automation-basic-builder-fleet" From 7f67fd53764f74dc0ae9fcee8c8bcfa7acbed324 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 30 Jul 2019 09:52:54 -0400 Subject: [PATCH 164/528] merge --- .cicd/base-images.yml | 8 ++++---- .cicd/pipeline.yml | 6 ------ 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/.cicd/base-images.yml b/.cicd/base-images.yml index 6485f2319c4..3a8ae02ccfb 100644 --- a/.cicd/base-images.yml +++ b/.cicd/base-images.yml @@ -5,7 +5,7 @@ env: steps: - - label: ":aws: [Amazon] 2 Ensure Docker Image" + - label: ":aws: Amazon_Linux 2 - Build" command: - ".cicd/generate-base-images.sh amazonlinux-2" agents: @@ -13,7 +13,7 @@ steps: timeout: $BUILD_TIMEOUT skip: $SKIP_AMAZON_LINUX_2 - - label: ":centos: [CentOS] 7 Build" + - label: ":centos: CentOS 7.6 - Build" command: - ".cicd/generate-base-images.sh centos-7" agents: @@ -21,7 +21,7 @@ steps: timeout: $BUILD_TIMEOUT skip: $SKIP_CENTOS_7 - - label: ":ubuntu: [Ubuntu] 16.04 Build" + - label: ":ubuntu: Ubuntu 16.04 - Build" command: - ".cicd/generate-base-images.sh ubuntu-16.04" agents: @@ -29,7 +29,7 @@ steps: timeout: $BUILD_TIMEOUT skip: $SKIP_UBUNTU_16 - - label: ":ubuntu: [Ubuntu] 18.04 Build" + - label: ":ubuntu: Ubuntu 18.04 - Build" command: - ".cicd/generate-base-images.sh ubuntu-18.04" agents: diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 66edcf74e73..89ad710e52e 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -6,16 +6,10 @@ env: DEBUG: true steps: - - wait - label: ":webhook: Trigger Travis CI Build" -<<<<<<< HEAD command: - "./.cicd/travis/travis-trigger.sh" -======= - command: | - . ./.cicd/trigger-travis.sh ->>>>>>> 20fd8b428... Fix build message passed to Travis API during trigger step agents: queue: "automation-basic-builder-fleet" From a1626b073bc673ef32d46de1a7d1dbb2b3bbbcd4 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 30 Jul 2019 09:53:18 -0400 Subject: [PATCH 165/528] slug fix --- .cicd/travis/travis-trigger.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.cicd/travis/travis-trigger.sh b/.cicd/travis/travis-trigger.sh index d5be2d89d8a..ea9f384429e 100644 --- a/.cicd/travis/travis-trigger.sh +++ b/.cicd/travis/travis-trigger.sh @@ -9,7 +9,11 @@ echo 'Configuration:' echo "$BODY" | jq echo 'This configuration is derived from the BUILDKITE_BRANCH and BUILDKITE_MESSAGE variables set for this build.' echo '+++ :tractor: Triggering Travis CI Build' +<<<<<<< HEAD:.cicd/travis/travis-trigger.sh export RESULT="$(curl -s -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "Travis-API-Version: 3" -H "Authorization: token $TRIGGER_TRAVIS_API_KEY" -d "$BODY" https://api.travis-ci.org/repo/EOSIO%2f${SOURCE_SLUG}/requests)" +======= +export RESULT="$(curl -s -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "Travis-API-Version: 3" -H "Authorization: token $TRIGGER_TRAVIS_API_KEY" -d "$BODY" https://api.travis-ci.org/repo/EOSIO%2feos/requests)" +>>>>>>> 894d559b9... Fix API url:.cicd/trigger-travis.sh echo 'API Response:' echo "$RESULT" | jq 2>/dev/null || echo "$RESULT" if [[ "$(echo $RESULT | jq -r '.["@type"]')" != "pending" ]]; then From bd6ac36188dded505de6ee2eb143241979f54dc9 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 30 Jul 2019 11:41:36 -0400 Subject: [PATCH 166/528] removed submodule regression check for travis/mac --- .cicd/travis/travis-build.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.cicd/travis/travis-build.sh b/.cicd/travis/travis-build.sh index b48d5b5fbc2..efda5aafdbc 100755 --- a/.cicd/travis/travis-build.sh +++ b/.cicd/travis/travis-build.sh @@ -13,7 +13,6 @@ if [[ "$(uname)" == Darwin ]]; then if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test; fi if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi - if ${ENABLE_SUBMODULE_REGRESSION_TEST:-true}; then cd $ROOT_DIR && fold-execute ./.cicd/submodule-regression-checker.sh; fi else # linux DOCKER_RUN_EXTRAS="-e ENABLE_PACKAGE_BUILDER=false" # Travis doesn't need to test or push packages execute eval docker run --rm -v $(pwd):/workdir -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache -e TRAVIS $DOCKER_RUN_EXTRAS $FULL_TAG From 7a59fe52ad165a0768869829427b4af2105216e7 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 30 Jul 2019 12:05:46 -0400 Subject: [PATCH 167/528] cleanup --- .cicd/.helpers | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.cicd/.helpers b/.cicd/.helpers index acc3bfe69b3..f673c763542 100644 --- a/.cicd/.helpers +++ b/.cicd/.helpers @@ -1,13 +1,11 @@ -DRYRUN=${DRYRUN:-false} -VERBOSE=${VERBOSE:-true} export PROJECT_NAME="eosio" # Set IMAGE_TAG using arg (generate-base-images.sh) or env (travis.yml) export IMAGE_TAG=${IMAGE_TAG:-$1} function execute() { - ${VERBOSE:-true} && echo "--- Executing: $@" - ${DRYRUN:-false} || "$@" + echo "--- Executing: $@" + "$@" } function determine-hash() { @@ -39,7 +37,6 @@ function docker_tag_exists() { ( [[ $EXISTS =~ '404 page not found' ]] || [[ $EXISTS =~ 'manifest unknown' ]] ) && return 1 || return 0 } -# If you're on mac and you want to generate the image, use "force" as $2 if [[ ! -z $IMAGE_TAG ]]; then # Darwin doesn't need hash (yet) determine-hash "docker/${IMAGE_TAG}.dockerfile" [[ -z $DETERMINED_HASH ]] && echo "DETERMINED_HASH empty! (check determine-hash function)" && exit 1 From 7be2f162aa2eb94875d5b4a1d32f57b74f9cf9c9 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 30 Jul 2019 13:12:42 -0400 Subject: [PATCH 168/528] various improvements --- .../docker/{.helpers-v33 => .logging-helper} | 0 .cicd/docker/amazonlinux-2.dockerfile | 2 +- .cicd/docker/centos-7.dockerfile | 2 +- .cicd/docker/ubuntu-16.04.dockerfile | 2 +- .cicd/docker/ubuntu-18.04.dockerfile | 2 +- .cicd/metrics/test-metrics.js | 431 ------------------ .cicd/metrics/test-metrics.tar.gz | Bin 96551 -> 0 bytes .cicd/package-builder.sh | 4 - .cicd/pipeline.yml | 33 +- .cicd/travis/travis-build.sh | 2 +- 10 files changed, 6 insertions(+), 472 deletions(-) rename .cicd/docker/{.helpers-v33 => .logging-helper} (100%) delete mode 100755 .cicd/metrics/test-metrics.js delete mode 100644 .cicd/metrics/test-metrics.tar.gz diff --git a/.cicd/docker/.helpers-v33 b/.cicd/docker/.logging-helper similarity index 100% rename from .cicd/docker/.helpers-v33 rename to .cicd/docker/.logging-helper diff --git a/.cicd/docker/amazonlinux-2.dockerfile b/.cicd/docker/amazonlinux-2.dockerfile index 1c1e8a099b7..a9ce2f195f7 100644 --- a/.cicd/docker/amazonlinux-2.dockerfile +++ b/.cicd/docker/amazonlinux-2.dockerfile @@ -82,7 +82,7 @@ ENV PRE_COMMANDS="export PATH=/usr/lib64/ccache:\$PATH" ENV CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Bring in helpers that provides execute function so we can get better logging in BK and TRAV -COPY ./docker/.helpers-v33 /tmp/.helpers +COPY ./docker/.logging-helpers /tmp/.helpers CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ fold-execute ccache -s && \ diff --git a/.cicd/docker/centos-7.dockerfile b/.cicd/docker/centos-7.dockerfile index b53ca471ef7..3a91476be23 100644 --- a/.cicd/docker/centos-7.dockerfile +++ b/.cicd/docker/centos-7.dockerfile @@ -97,7 +97,7 @@ RUN echo -e "[buildkite-agent]\nname = Buildkite Pty Ltd\nbaseurl = https://yum. ENV PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:\$PATH" # Bring in helpers that provides execute function so we can get better logging in BK and TRAV -COPY ./docker/.helpers-v33 /tmp/.helpers +COPY ./docker/.logging-helpers /tmp/.helpers CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ fold-execute ccache -s && \ diff --git a/.cicd/docker/ubuntu-16.04.dockerfile b/.cicd/docker/ubuntu-16.04.dockerfile index 797cd0fdb12..58d85842c27 100644 --- a/.cicd/docker/ubuntu-16.04.dockerfile +++ b/.cicd/docker/ubuntu-16.04.dockerfile @@ -92,7 +92,7 @@ ENV PRE_COMMANDS="export PATH=/usr/lib/ccache:\$PATH" ENV CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" # Bring in helpers that provides execute function so we can get better logging in BK and TRAV -COPY ./docker/.helpers-v33 /tmp/.helpers +COPY ./docker/.logging-helpers /tmp/.helpers CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ fold-execute ccache -s && \ diff --git a/.cicd/docker/ubuntu-18.04.dockerfile b/.cicd/docker/ubuntu-18.04.dockerfile index bd440d86f7b..856cf14bdfd 100644 --- a/.cicd/docker/ubuntu-18.04.dockerfile +++ b/.cicd/docker/ubuntu-18.04.dockerfile @@ -69,7 +69,7 @@ ENV PRE_COMMANDS="export PATH=/usr/lib/ccache:\$PATH" ENV CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" # Bring in helpers that provides execute function so we can get better logging in BK and TRAV -COPY ./docker/.helpers-v33 /tmp/.helpers +COPY ./docker/.logging-helpers /tmp/.helpers CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ fold-execute ccache -s && \ diff --git a/.cicd/metrics/test-metrics.js b/.cicd/metrics/test-metrics.js deleted file mode 100755 index b995134d9b1..00000000000 --- a/.cicd/metrics/test-metrics.js +++ /dev/null @@ -1,431 +0,0 @@ -#!/usr/bin/env node -/* includes */ -const execSync = require('child_process').execSync; // run shell commands -const fetch = require('node-fetch'); // downloading -const fs = require('fs'); // file stream -const XML = require('xml2js'); // parse xml - -/* globals */ -const buildkiteAccessToken = `?access_token=${process.env.BUILDKITE_API_KEY}`; // import buildkite access token from environment -const debug = (process.env.DEBUG === 'true') ? true : false; -let errorCount = 0; // count number of jobs which caused an error -const EXIT_SUCCESS = 0; -const inBuildkite = (process.env.BUILDKITE === 'true') ? true : false; -const outputFile = 'test-metrics.json'; -const pipelineWhitelist = // the pipelines for which we run diagnostics -[ - 'eosio', - 'eosio-base-images', - 'eosio-beta', - 'eosio-build-unpinned', - 'eosio-debug', - 'eosio-lrt', - 'eosio-security' -]; - -/* functions */ -// given a url string, download a text document -async function download(url) -{ - if (debug) console.log(`download(${url.replace(buildkiteAccessToken, '')})`); // DEBUG - const httpResponse = await fetch(url); - const body = await httpResponse.text(); - if (isNullOrEmpty(body)) - { - console.log(`ERROR: URL returned nothing! URL: ${url.replace(buildkiteAccessToken, '')}`); - const error = - { - http: { body, response: httpResponse, url}, - message: 'http body is null or empty', - origin: 'download()', - } - throw error; - } - if (debug) console.log('Download complete.'); // DEBUG - return body; -} - -// given a pipeline and a build number, get a build object -async function getBuild(pipeline, buildNumber) -{ - if (debug) console.log(`getBuild(${pipeline}, ${buildNumber})`); // DEBUG - const httpResponse = await fetch(`https://api.buildkite.com/v2/organizations/EOSIO/pipelines/${pipeline}/builds/${buildNumber}${buildkiteAccessToken}`); - return httpResponse.json(); -} - -// given a buildkite job, return the environmental variables -async function getEnvironment(job) -{ - if (debug) console.log('getEnvironment()'); // DEBUG - const httpResponse = await fetch(`${job.build_url}/jobs/${job.id}/env${buildkiteAccessToken}`); - const environment = await httpResponse.json(); - return environment.env; -} - -// given a string to search, a key as regex or a string, and optionally a start index, return the lowest line number containing the key -function getLineNumber(text, key, startIndex) -{ - if (debug) console.log('getLineNumber()'); // DEBUG - const begin = (isNullOrEmpty(startIndex) || !Number.isInteger(startIndex) || startIndex < 1) ? 0 : startIndex; - let found = false; - let lineNumber = 0; - const regex = (key instanceof RegExp); - text.split('\n').some((line) => - { - if (lineNumber >= begin && ((regex && key.test(line)) || (!regex && line.includes(key)))) - { - found = true; - return true; // c-style break - } - lineNumber += 1; - return false; // for the linter, plz delete when linter is fixed - }); - return (found) ? lineNumber : -1; -} - -// given a buildkite job, return a sanitized log file -async function getLog(job) -{ - if (debug) console.log(`getLog(${job.raw_log_url})`); // DEBUG - const logText = await download(job.raw_log_url + buildkiteAccessToken); - // returns log lowercase, with single spaces and '\n' only, and only ascii-printable characters - return sanitize(logText); // made this a separate function for unit testing purposes -} - -// given a Buildkite environment, return the operating system used -function getOS(environment) -{ - if (debug) console.log(`getOS(${environment.BUILDKITE_LABEL})`); // DEBUG - if (isNullOrEmpty(environment) || isNullOrEmpty(environment.BUILDKITE_LABEL)) - { - console.log('ERROR: getOS() called with empty environment.BUILDKITE_LABEL!'); - console.log(JSON.stringify(environment)); - return null; - } - const label = environment.BUILDKITE_LABEL.toLowerCase(); - if ((/aws(?!.*[23])/.test(label) || /amazon(?!.*[23])/.test(label))) - return 'Amazon Linux 1'; - if (/aws.*2/.test(label) || /amazon.*2/.test(label)) - return 'Amazon Linux 2'; - if (/centos(?!.*[89])/.test(label)) - return 'CentOS 7'; - if (/fedora(?!.*2[89])/.test(label) && /fedora(?!.*3\d)/.test(label)) - return 'Fedora 27'; - if (/high.*sierra/.test(label)) - return 'High Sierra'; - if (/mojave/.test(label)) - return 'Mojave'; - if (/ubuntu.*16.*04/.test(label) || /ubuntu.*16(?!.*10)/.test(label)) - return 'Ubuntu 16.04'; - if (/ubuntu.*18.*04/.test(label) || /ubuntu.*18(?!.*10)/.test(label)) - return 'Ubuntu 18.04'; - if (/docker/.test(label)) - return 'Docker'; - return 'Unknown'; -} - -// given a Buildkite job, return the test-results.xml file as JSON -async function getXML(job) -{ - if (debug) console.log('getXML()'); // DEBUG - const xmlFilename = 'test-results.xml'; - const artifacts = await download(job.artifacts_url + buildkiteAccessToken); - const testResultsArtifact = JSON.parse(artifacts).filter(artifact => artifact.filename === xmlFilename); - if (isNullOrEmpty(testResultsArtifact)) - { - console.log(`WARNING: No ${xmlFilename} found for "${job.name}"! Link: ${job.web_url}`); - return null; - } - const urlBuildkite = testResultsArtifact[0].download_url; - const rawXML = await download(urlBuildkite + buildkiteAccessToken); - const xmlOptions = - { - attrNameProcessors: [function lower(name) { return name.toLowerCase(); }], - explicitArray: false, // do not put single strings in single-element arrays - mergeAttrs: true, // make attributes children of their node - normalizeTags: true, // convert all tag names to lowercase - }; - let xmlError, xmlTestResults; - await XML.parseString(rawXML, xmlOptions, (err, result) => {xmlTestResults = result; xmlError = err;}); - if (isNullOrEmpty(xmlError)) - return xmlTestResults; - console.log(`WARNING: Failed to parse xml for "${job.name}" job! Link: ${job.web_url}`); - console.log(JSON.stringify(xmlError)); - return null; -} - -// test if variable is empty -function isNullOrEmpty(str) -{ - return (str === null || str === undefined || str.length === 0 || /^\s*$/.test(str)); -} - -// return array of test results from a buildkite job log -function parseLog(logText) -{ - if (debug) console.log('parseLog()'); // DEBUG - const lines = logText.split('\n'); - const resultLines = lines.filter(line => /test\s+#\d+/.test(line)); // 'grep' for the test result lines - // parse the strings and make test records - return resultLines.map((line) => - { - const y = line.trim().split(/test\s+#\d+/).pop(); // remove everything before the test declaration - const parts = y.split(/\s+/).slice(1, -1); // split the line and remove the test number and time unit - const testName = parts[0]; - const testTime = parts[(parts.length - 1)]; - const rawResult = parts.slice(1, -1).join(); - let testResult; - if (rawResult.includes('failed')) - testResult = 'Failed'; - else if (rawResult.includes('passed')) - testResult = 'Passed'; - else - testResult = 'Exception'; - return { testName, testResult, testTime }; // create a test record - }); -} - -// return array of test results from an xUnit-formatted JSON object -function parseXunit(xUnit) -{ - if (debug) console.log('parseXunit()'); // DEBUG - if (isNullOrEmpty(xUnit)) - { - console.log('WARNING: xUnit is empty!'); - return null; - } - return xUnit.site.testing.test.map((test) => - { - const testName = test.name; - const testTime = test.results.namedmeasurement.filter(x => /execution\s+time/.test(x.name.toLowerCase()))[0].value; - let testResult; - if (test.status.includes('failed')) - testResult = 'Failed'; - else if (test.status.includes('passed')) - testResult = 'Passed'; - else - testResult = 'Exception'; - return { testName, testResult, testTime }; - }); -} - -// returns text lowercase, with single spaces and '\n' only, and only ascii-printable characters -function sanitize(text) -{ - if (debug) console.log(`sanitize(text) where text.length = ${text.length} bytes`); // DEBUG - const chunkSize = 131072; // process text in 128 kB chunks - if (text.length > chunkSize) - return sanitize(text.slice(0, chunkSize)).concat(sanitize(text.slice(chunkSize))); - return text - .replace(/(?!\n)\r(?!\n)/g, '\n').replace(/\r/g, '') // convert all line endings to '\n' - .replace(/[^\S\n]+/g, ' ') // convert all whitespace to ' ' - .replace(/[^ -~\n]+/g, '') // remove non-printable characters - .toLowerCase(); -} - -// input is array of whole lines containing "test #" and ("failed" or "exception") -function testDiagnostics(test, logText) -{ - if (debug) - { - console.log(`testDiagnostics(test, logText) where logText.length = ${logText.length} bytes and test is`); // DEBUG - console.log(JSON.stringify(test)); - } - // get basic information - const testResultLine = new RegExp(`test\\s+#\\d+.*${test.testName}`, 'g'); // regex defining "test #" line - const startIndex = getLineNumber(logText, testResultLine); - const output = { errorMsg: null, lineNumber: startIndex + 1, stackTrace: null }; // default output - // filter tests - if (test.testResult.toLowerCase() === 'passed') - return output; - output.errorMsg = 'test diangostics are not enabled for this pipeline'; - if (!pipelineWhitelist.includes(test.pipeline)) - return output; - // diagnostics - if (debug) console.log('Running diagnostics...'); // DEBUG - output.errorMsg = 'uncategorized'; - const testLog = logText.split(testResultLine)[1].split(/test\s*#/)[0].split('\n'); // get log output from this test only, as array of lines - let errorLine = testLog[0]; // first line, from "test ## name" to '\n' exclusive - if (/\.+ *\** *not run\s+0+\.0+ sec$/.test(errorLine)) // not run - output.errorMsg = 'test not run'; - else if (/\.+ *\** *time *out\s+\d+\.\d+ sec$/.test(errorLine)) // timeout - output.errorMsg = 'test timeout'; - else if (/exception/.test(errorLine)) // test exception - output.errorMsg = errorLine.split('exception')[1].replace(/[: \d.]/g, '').replace(/sec$/, ''); // isolate the error message after exception - else if (/fc::.*exception/.test(testLog.filter(line => !isNullOrEmpty(line))[1])) // fc exception - { - [, errorLine] = testLog.filter(line => !isNullOrEmpty(line)); // get first line - output.errorMsg = `fc::${errorLine.split('::')[1].replace(/['",]/g, '').split(' ')[0]}`; // isolate fx exception body - } - else if (testLog.join('\n').includes('ctest:')) // ctest exception - { - [errorLine] = testLog.filter(line => line.includes('ctest:')); - output.errorMsg = `ctest:${errorLine.split('ctest:')[1]}`; - } - else if (!isNullOrEmpty(testLog.filter(line => /boost.+exception/.test(line)))) // boost exception - { - [errorLine] = testLog.filter(line => /boost.+exception/.test(line)); - output.errorMsg = `boost: ${errorLine.replace(/[()]/g, '').split(/: (.+)/)[1]}`; // capturing parenthesis, split only at first ' :' - output.stackTrace = testLog.filter(line => /thread-\d+/.test(line))[0].split('thread-')[1].replace(/^\d+/, '').trim().replace(/[[]\d+m$/, ''); // get the bottom of the stack trace - } - else if (/unit[-_. ]+test/.test(test.testName) || /plugin[-_. ]+test/.test(test.testName)) // unit test, application exception - { - if (!isNullOrEmpty(testLog.filter(line => line.includes('exception: ')))) - { - [errorLine] = testLog.filter(line => line.includes('exception: ')); - [, output.errorMsg] = errorLine.replace(/[()]/g, '').split(/: (.+)/); // capturing parenthesis, split only at first ' :' - output.stackTrace = testLog.filter(line => /thread-\d+/.test(line))[0].split('thread-')[1].replace(/^\d+/, '').trim().replace(/[[]\d+m$/, ''); // get the bottom of the stack trace - } - // else uncategorized unit test - } - // else integration test, add cross-referencing code here (or uncategorized) - if (errorLine !== testLog[0]) // get real line number from log file - output.lineNumber = getLineNumber(logText, errorLine, startIndex) + 1; - return output; -} - -// return test metrics given a buildkite job or build -async function testMetrics(buildkiteObject) -{ - if (!isNullOrEmpty(buildkiteObject.type)) // input is a Buildkite job object - { - const job = buildkiteObject; - console.log(`Processing test metrics for "${job.name}"${(inBuildkite) ? '' : ` at ${job.web_url}`}...`); - if (isNullOrEmpty(job.exit_status)) - { - console.log(`${(inBuildkite) ? '+++ :warning: ' : ''}WARNING: "${job.name}" was skipped!`); - return null; - } - // get test results - const logText = await getLog(job); - let testResults; - let xUnit; - try - { - xUnit = await getXML(job); - testResults = parseXunit(xUnit); - } - catch (error) - { - console.log(`XML processing failed for "${job.name}"! Link: ${job.web_url}`); - console.log(JSON.stringify(error)); - testResults = null; - } - finally - { - if (isNullOrEmpty(testResults)) - testResults = parseLog(logText); - } - // get test metrics - const env = await getEnvironment(job); - env.BUILDKITE_REPO = env.BUILDKITE_REPO.replace(new RegExp('^git@github.com:(EOSIO/)?'), '').replace(new RegExp('.git$'), ''); - const metrics = []; - const os = getOS(env); - testResults.forEach((result) => - { - // add test properties - const test = - { - ...result, // add testName, testResult, testTime - agentName: env.BUILDKITE_AGENT_NAME, - agentRole: env.BUILDKITE_AGENT_META_DATA_QUEUE || env.BUILDKITE_AGENT_META_DATA_ROLE, - branch: env.BUILDKITE_BRANCH, - buildNumber: env.BUILDKITE_BUILD_NUMBER, - commit: env.BUILDKITE_COMMIT, - job: env.BUILDKITE_LABEL, - os, - pipeline: env.BUILDKITE_PIPELINE_SLUG, - repo: env.BUILDKITE_REPO, - testTime: parseFloat(result.testTime), - url: job.web_url, - }; - metrics.push({ ...test, ...testDiagnostics(test, logText) }); - }); - return metrics; - } - else if (!isNullOrEmpty(buildkiteObject.number)) // input is a Buildkite build object - { - const build = buildkiteObject; - console.log(`Processing test metrics for ${build.pipeline.slug} build ${build.number}${(inBuildkite) ? '' : ` at ${build.web_url}`}...`); - let metrics = [], promises = []; - // process test metrics - build.jobs.filter(job => job.type === 'script' && /test/.test(job.name.toLowerCase()) && ! /test metrics/.test(job.name.toLowerCase())).forEach((job) => - { - promises.push( - testMetrics(job) - .then((moreMetrics) => { - if (!isNullOrEmpty(moreMetrics)) - metrics = metrics.concat(moreMetrics); - else - console.log(`${(inBuildkite) ? '+++ :warning: ' : ''}WARNING: "${job.name}" metrics are empty!\nmetrics = ${JSON.stringify(moreMetrics)}`); - }).catch((error) => { - console.log(`${(inBuildkite) ? '+++ :no_entry: ' : ''}ERROR: Failed to process test metrics for "${job.name}"! Link: ${job.web_url}`); - console.log(JSON.stringify(error)); - errorCount++; - }) - ); - }); - await Promise.all(promises); - return metrics; - } - else // something else - { - console.log(`${(inBuildkite) ? '+++ :no_entry: ' : ''}ERROR: Buildkite object not recognized or not a test step!`); - console.log(JSON.stringify({buildkiteObject})); - return null; - } -} - -/* main */ -async function main() -{ - if (debug) console.log(`$ ${process.argv.join(' ')}`); - let build, metrics = null; - console.log(`${(inBuildkite) ? '+++ :evergreen_tree: ' : ''}Getting information from enviroment...`); - const buildNumber = process.env.BUILDKITE_BUILD_NUMBER || process.argv[2]; - const pipeline = process.env.BUILDKITE_PIPELINE_SLUG || process.argv[3]; - if (debug) - { - console.log(`BUILDKITE=${process.env.BUILDKITE}`); - console.log(`BUILDKITE_BUILD_NUMBER=${process.env.BUILDKITE_BUILD_NUMBER}`); - console.log(`BUILDKITE_PIPELINE_SLUG=${process.env.BUILDKITE_PIPELINE_SLUG}`); - console.log(' State:') - console.log(`inBuildkite = "${inBuildkite}"`); - console.log(`buildNumber = "${buildNumber}"`); - console.log(`pipeline = "${pipeline}"`); - } - if (isNullOrEmpty(buildNumber) || isNullOrEmpty(pipeline) || isNullOrEmpty(process.env.BUILDKITE_API_KEY)) - { - console.log(`${(inBuildkite) ? '+++ :no_entry: ' : ''}ERROR: Missing required inputs!`); - if (isNullOrEmpty(process.env.BUILDKITE_API_KEY)) console.log('- Buildkite API key, as BUILDKITE_API_KEY environment variable'); - if (isNullOrEmpty(buildNumber)) console.log('- Build Number, as BUILDKITE_BUILD_NUMBER or argument 1'); - if (isNullOrEmpty(pipeline)) console.log('- Pipeline Slug, as BUILDKITE_PIPELINE_SLUG or argument 2'); - errorCount = -1; - } - else - { - console.log(`${(inBuildkite) ? '+++ :bar_chart: ' : ''}Processing test metrics...`); - build = await getBuild(pipeline, buildNumber); - metrics = await testMetrics(build); - console.log('Done processing test metrics.'); - } - console.log(`${(inBuildkite) ? '+++ :pencil: ' : ''}Writing to file...`); - fs.writeFileSync(outputFile, JSON.stringify({ metrics })); - console.log(`Saved metrics to "${outputFile}" in "${process.cwd()}".`); - if (inBuildkite) - { - console.log('+++ :arrow_up: Uploading artifact...'); - execSync(`buildkite-agent artifact upload ${outputFile}`); - } - if (errorCount === 0) - console.log(`${(inBuildkite) ? '+++ :white_check_mark: ' : ''}Done!`); - else - { - console.log(`${(inBuildkite) ? '+++ :warning: ' : ''}Finished with errors.`); - console.log(`Please send automation a link to this job${(isNullOrEmpty(build)) ? '.' : `: ${build.web_url}`}`); - console.log('@kj4ezj or @zreyn on Telegram'); - } - return (inBuildkite) ? process.exit(EXIT_SUCCESS) : process.exit(errorCount); -}; - -main(); \ No newline at end of file diff --git a/.cicd/metrics/test-metrics.tar.gz b/.cicd/metrics/test-metrics.tar.gz deleted file mode 100644 index 2381787ca06196f1b95c636435a77b58ba1cc0aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96551 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 Date: Tue, 30 Jul 2019 13:19:19 -0400 Subject: [PATCH 169/528] new hash --- .cicd/docker/{.logging-helper => .logging-helpers} | 0 .cicd/pipeline.yml | 14 +++++++------- 2 files changed, 7 insertions(+), 7 deletions(-) rename .cicd/docker/{.logging-helper => .logging-helpers} (100%) diff --git a/.cicd/docker/.logging-helper b/.cicd/docker/.logging-helpers similarity index 100% rename from .cicd/docker/.logging-helper rename to .cicd/docker/.logging-helpers diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 33405fba860..9c34783efea 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -21,7 +21,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-amazonlinux-2-cc8d19ea479663d98189ce2473aacc2a7567a8be" + image: "eosio/producer:eosio-amazonlinux-2-05e0e1f0e6ee59340e46be4bcf41a39f0da84438" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it @@ -35,7 +35,7 @@ steps: plugins: - docker#v3.2.0: debug: true - image: "eosio/producer:eosio-centos-7-61150e3338126b91bd9384821be93de5e9f8b3fe" + image: "eosio/producer:eosio-centos-7-799de4d43d592b5526238fe95c697ea60f39552a" environment: # - "ENABLE_LR_TESTS=true" - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download @@ -48,7 +48,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-16.04-8c7529f2357cadbf6dc8d1be8fca379efd25af64" + image: "eosio/producer:eosio-ubuntu-16.04-a1aa07ffa321d67ea0d7b37313f3ff8690123d2e" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it @@ -60,7 +60,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-18.04-45ddde8129587d53014a8cb7ef2214a01ea346da" + image: "eosio/producer:eosio-ubuntu-18.04-4a0a7504956fa835cae09221ede97f61fa01d75c" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it @@ -99,7 +99,7 @@ steps: plugins: - docker#v3.2.0: debug: true - image: "eosio/producer:eosio-centos-7-61150e3338126b91bd9384821be93de5e9f8b3fe" + image: "eosio/producer:eosio-centos-7-799de4d43d592b5526238fe95c697ea60f39552a" environment: # - "ENABLE_LR_TESTS=true" - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download @@ -116,7 +116,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-16.04-8c7529f2357cadbf6dc8d1be8fca379efd25af64" + image: "eosio/producer:eosio-ubuntu-16.04-a1aa07ffa321d67ea0d7b37313f3ff8690123d2e" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it @@ -132,7 +132,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-18.04-45ddde8129587d53014a8cb7ef2214a01ea346da" + image: "eosio/producer:eosio-ubuntu-18.04-4a0a7504956fa835cae09221ede97f61fa01d75c" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it From 24997822a2f845803b4f4654fa63205e95d8ef99 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 30 Jul 2019 13:22:06 -0400 Subject: [PATCH 170/528] base images need to exist before travis gets triggered --- .cicd/pipeline.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 9c34783efea..2b1d3eb24aa 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,12 +1,6 @@ steps: - wait - - label: ":webhook: Trigger Travis CI Build" - command: - - "./.cicd/travis/travis-trigger.sh" - agents: - queue: "automation-basic-builder-fleet" - - trigger: "eosio-base-images-beta" label: ":docker: Ensure Base Images" build: @@ -15,6 +9,14 @@ steps: - wait + - label: ":webhook: Trigger Travis CI Build" + command: + - "./.cicd/travis/travis-trigger.sh" + agents: + queue: "automation-basic-builder-fleet" + + - wait + - label: ":aws: Amazon_Linux 2 - Build & Test" agents: queue: "automation-eos-builder-fleet" From 41824522a25135cda7874828eb323036cbd5b606 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 30 Jul 2019 14:54:59 -0400 Subject: [PATCH 171/528] specific versions of docker images for new labels --- .cicd/docker/amazonlinux-2.dockerfile | 2 +- .cicd/docker/centos-7.dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/docker/amazonlinux-2.dockerfile b/.cicd/docker/amazonlinux-2.dockerfile index a9ce2f195f7..b433d4ff728 100644 --- a/.cicd/docker/amazonlinux-2.dockerfile +++ b/.cicd/docker/amazonlinux-2.dockerfile @@ -1,4 +1,4 @@ -FROM amazonlinux:2 +FROM amazonlinux:2.0.20190508 # YUM dependencies. RUN yum update -y \ diff --git a/.cicd/docker/centos-7.dockerfile b/.cicd/docker/centos-7.dockerfile index 3a91476be23..0ec75b06db9 100644 --- a/.cicd/docker/centos-7.dockerfile +++ b/.cicd/docker/centos-7.dockerfile @@ -1,4 +1,4 @@ -FROM centos:7 +FROM centos:7.6.1810 # YUM dependencies. RUN yum update -y \ From 266488a8d0a60f81e7874f134819d2ab1b56753f Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 30 Jul 2019 14:55:41 -0400 Subject: [PATCH 172/528] specific versions of docker images for new labels --- .cicd/pipeline.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 2b1d3eb24aa..576be1a7d57 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -29,7 +29,7 @@ steps: mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - - label: ":centos: CentOS 7 - Build & Test" + - label: ":centos: CentOS 7.6 - Build & Test" command: - "" agents: @@ -94,9 +94,9 @@ steps: - wait - - label: ":centos: Centos 7 - PB" + - label: ":centos: Centos 7.6 - PB" command: - - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - "./.cicd/package-builder.sh" plugins: - docker#v3.2.0: From 9061b764105bbddd4d2e36cf0f6724ac803b8574 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 30 Jul 2019 15:01:26 -0400 Subject: [PATCH 173/528] specific versions of docker images for new labels --- .cicd/pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 576be1a7d57..f8a35f1ae41 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -17,7 +17,7 @@ steps: - wait - - label: ":aws: Amazon_Linux 2 - Build & Test" + - label: ":aws: Amazon_Linux 2.0 - Build & Test" agents: queue: "automation-eos-builder-fleet" plugins: From 926ad161c8f03c92cf7d2de2d628c08363c90a47 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 30 Jul 2019 15:21:25 -0400 Subject: [PATCH 174/528] specific versions of docker images for new labels --- .cicd/pipeline.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index f8a35f1ae41..443bdb83e13 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -23,7 +23,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-amazonlinux-2-05e0e1f0e6ee59340e46be4bcf41a39f0da84438" + image: "eosio/producer:eosio-amazonlinux-2-fe993ae1ac74c46f8d97e49ad8e390289e550cb8" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it @@ -37,7 +37,7 @@ steps: plugins: - docker#v3.2.0: debug: true - image: "eosio/producer:eosio-centos-7-799de4d43d592b5526238fe95c697ea60f39552a" + image: "eosio/producer:eosio-centos-7-1d592f4b1fc27aae8a4740b95525e7b495467bc8" environment: # - "ENABLE_LR_TESTS=true" - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download @@ -101,7 +101,7 @@ steps: plugins: - docker#v3.2.0: debug: true - image: "eosio/producer:eosio-centos-7-799de4d43d592b5526238fe95c697ea60f39552a" + image: "eosio/producer:eosio-centos-7-1d592f4b1fc27aae8a4740b95525e7b495467bc8" environment: # - "ENABLE_LR_TESTS=true" - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download From a45e9487ded41963c39a3530f9d663791b2a0204 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 31 Jul 2019 09:08:44 -0400 Subject: [PATCH 175/528] test metrics step --- .cicd/metrics/test-metrics.js | 431 ++++++++++++++++++++++++++++++ .cicd/metrics/test-metrics.tar.gz | Bin 0 -> 96551 bytes .cicd/pipeline.yml | 14 + 3 files changed, 445 insertions(+) create mode 100644 .cicd/metrics/test-metrics.js create mode 100644 .cicd/metrics/test-metrics.tar.gz diff --git a/.cicd/metrics/test-metrics.js b/.cicd/metrics/test-metrics.js new file mode 100644 index 00000000000..b995134d9b1 --- /dev/null +++ b/.cicd/metrics/test-metrics.js @@ -0,0 +1,431 @@ +#!/usr/bin/env node +/* includes */ +const execSync = require('child_process').execSync; // run shell commands +const fetch = require('node-fetch'); // downloading +const fs = require('fs'); // file stream +const XML = require('xml2js'); // parse xml + +/* globals */ +const buildkiteAccessToken = `?access_token=${process.env.BUILDKITE_API_KEY}`; // import buildkite access token from environment +const debug = (process.env.DEBUG === 'true') ? true : false; +let errorCount = 0; // count number of jobs which caused an error +const EXIT_SUCCESS = 0; +const inBuildkite = (process.env.BUILDKITE === 'true') ? true : false; +const outputFile = 'test-metrics.json'; +const pipelineWhitelist = // the pipelines for which we run diagnostics +[ + 'eosio', + 'eosio-base-images', + 'eosio-beta', + 'eosio-build-unpinned', + 'eosio-debug', + 'eosio-lrt', + 'eosio-security' +]; + +/* functions */ +// given a url string, download a text document +async function download(url) +{ + if (debug) console.log(`download(${url.replace(buildkiteAccessToken, '')})`); // DEBUG + const httpResponse = await fetch(url); + const body = await httpResponse.text(); + if (isNullOrEmpty(body)) + { + console.log(`ERROR: URL returned nothing! URL: ${url.replace(buildkiteAccessToken, '')}`); + const error = + { + http: { body, response: httpResponse, url}, + message: 'http body is null or empty', + origin: 'download()', + } + throw error; + } + if (debug) console.log('Download complete.'); // DEBUG + return body; +} + +// given a pipeline and a build number, get a build object +async function getBuild(pipeline, buildNumber) +{ + if (debug) console.log(`getBuild(${pipeline}, ${buildNumber})`); // DEBUG + const httpResponse = await fetch(`https://api.buildkite.com/v2/organizations/EOSIO/pipelines/${pipeline}/builds/${buildNumber}${buildkiteAccessToken}`); + return httpResponse.json(); +} + +// given a buildkite job, return the environmental variables +async function getEnvironment(job) +{ + if (debug) console.log('getEnvironment()'); // DEBUG + const httpResponse = await fetch(`${job.build_url}/jobs/${job.id}/env${buildkiteAccessToken}`); + const environment = await httpResponse.json(); + return environment.env; +} + +// given a string to search, a key as regex or a string, and optionally a start index, return the lowest line number containing the key +function getLineNumber(text, key, startIndex) +{ + if (debug) console.log('getLineNumber()'); // DEBUG + const begin = (isNullOrEmpty(startIndex) || !Number.isInteger(startIndex) || startIndex < 1) ? 0 : startIndex; + let found = false; + let lineNumber = 0; + const regex = (key instanceof RegExp); + text.split('\n').some((line) => + { + if (lineNumber >= begin && ((regex && key.test(line)) || (!regex && line.includes(key)))) + { + found = true; + return true; // c-style break + } + lineNumber += 1; + return false; // for the linter, plz delete when linter is fixed + }); + return (found) ? lineNumber : -1; +} + +// given a buildkite job, return a sanitized log file +async function getLog(job) +{ + if (debug) console.log(`getLog(${job.raw_log_url})`); // DEBUG + const logText = await download(job.raw_log_url + buildkiteAccessToken); + // returns log lowercase, with single spaces and '\n' only, and only ascii-printable characters + return sanitize(logText); // made this a separate function for unit testing purposes +} + +// given a Buildkite environment, return the operating system used +function getOS(environment) +{ + if (debug) console.log(`getOS(${environment.BUILDKITE_LABEL})`); // DEBUG + if (isNullOrEmpty(environment) || isNullOrEmpty(environment.BUILDKITE_LABEL)) + { + console.log('ERROR: getOS() called with empty environment.BUILDKITE_LABEL!'); + console.log(JSON.stringify(environment)); + return null; + } + const label = environment.BUILDKITE_LABEL.toLowerCase(); + if ((/aws(?!.*[23])/.test(label) || /amazon(?!.*[23])/.test(label))) + return 'Amazon Linux 1'; + if (/aws.*2/.test(label) || /amazon.*2/.test(label)) + return 'Amazon Linux 2'; + if (/centos(?!.*[89])/.test(label)) + return 'CentOS 7'; + if (/fedora(?!.*2[89])/.test(label) && /fedora(?!.*3\d)/.test(label)) + return 'Fedora 27'; + if (/high.*sierra/.test(label)) + return 'High Sierra'; + if (/mojave/.test(label)) + return 'Mojave'; + if (/ubuntu.*16.*04/.test(label) || /ubuntu.*16(?!.*10)/.test(label)) + return 'Ubuntu 16.04'; + if (/ubuntu.*18.*04/.test(label) || /ubuntu.*18(?!.*10)/.test(label)) + return 'Ubuntu 18.04'; + if (/docker/.test(label)) + return 'Docker'; + return 'Unknown'; +} + +// given a Buildkite job, return the test-results.xml file as JSON +async function getXML(job) +{ + if (debug) console.log('getXML()'); // DEBUG + const xmlFilename = 'test-results.xml'; + const artifacts = await download(job.artifacts_url + buildkiteAccessToken); + const testResultsArtifact = JSON.parse(artifacts).filter(artifact => artifact.filename === xmlFilename); + if (isNullOrEmpty(testResultsArtifact)) + { + console.log(`WARNING: No ${xmlFilename} found for "${job.name}"! Link: ${job.web_url}`); + return null; + } + const urlBuildkite = testResultsArtifact[0].download_url; + const rawXML = await download(urlBuildkite + buildkiteAccessToken); + const xmlOptions = + { + attrNameProcessors: [function lower(name) { return name.toLowerCase(); }], + explicitArray: false, // do not put single strings in single-element arrays + mergeAttrs: true, // make attributes children of their node + normalizeTags: true, // convert all tag names to lowercase + }; + let xmlError, xmlTestResults; + await XML.parseString(rawXML, xmlOptions, (err, result) => {xmlTestResults = result; xmlError = err;}); + if (isNullOrEmpty(xmlError)) + return xmlTestResults; + console.log(`WARNING: Failed to parse xml for "${job.name}" job! Link: ${job.web_url}`); + console.log(JSON.stringify(xmlError)); + return null; +} + +// test if variable is empty +function isNullOrEmpty(str) +{ + return (str === null || str === undefined || str.length === 0 || /^\s*$/.test(str)); +} + +// return array of test results from a buildkite job log +function parseLog(logText) +{ + if (debug) console.log('parseLog()'); // DEBUG + const lines = logText.split('\n'); + const resultLines = lines.filter(line => /test\s+#\d+/.test(line)); // 'grep' for the test result lines + // parse the strings and make test records + return resultLines.map((line) => + { + const y = line.trim().split(/test\s+#\d+/).pop(); // remove everything before the test declaration + const parts = y.split(/\s+/).slice(1, -1); // split the line and remove the test number and time unit + const testName = parts[0]; + const testTime = parts[(parts.length - 1)]; + const rawResult = parts.slice(1, -1).join(); + let testResult; + if (rawResult.includes('failed')) + testResult = 'Failed'; + else if (rawResult.includes('passed')) + testResult = 'Passed'; + else + testResult = 'Exception'; + return { testName, testResult, testTime }; // create a test record + }); +} + +// return array of test results from an xUnit-formatted JSON object +function parseXunit(xUnit) +{ + if (debug) console.log('parseXunit()'); // DEBUG + if (isNullOrEmpty(xUnit)) + { + console.log('WARNING: xUnit is empty!'); + return null; + } + return xUnit.site.testing.test.map((test) => + { + const testName = test.name; + const testTime = test.results.namedmeasurement.filter(x => /execution\s+time/.test(x.name.toLowerCase()))[0].value; + let testResult; + if (test.status.includes('failed')) + testResult = 'Failed'; + else if (test.status.includes('passed')) + testResult = 'Passed'; + else + testResult = 'Exception'; + return { testName, testResult, testTime }; + }); +} + +// returns text lowercase, with single spaces and '\n' only, and only ascii-printable characters +function sanitize(text) +{ + if (debug) console.log(`sanitize(text) where text.length = ${text.length} bytes`); // DEBUG + const chunkSize = 131072; // process text in 128 kB chunks + if (text.length > chunkSize) + return sanitize(text.slice(0, chunkSize)).concat(sanitize(text.slice(chunkSize))); + return text + .replace(/(?!\n)\r(?!\n)/g, '\n').replace(/\r/g, '') // convert all line endings to '\n' + .replace(/[^\S\n]+/g, ' ') // convert all whitespace to ' ' + .replace(/[^ -~\n]+/g, '') // remove non-printable characters + .toLowerCase(); +} + +// input is array of whole lines containing "test #" and ("failed" or "exception") +function testDiagnostics(test, logText) +{ + if (debug) + { + console.log(`testDiagnostics(test, logText) where logText.length = ${logText.length} bytes and test is`); // DEBUG + console.log(JSON.stringify(test)); + } + // get basic information + const testResultLine = new RegExp(`test\\s+#\\d+.*${test.testName}`, 'g'); // regex defining "test #" line + const startIndex = getLineNumber(logText, testResultLine); + const output = { errorMsg: null, lineNumber: startIndex + 1, stackTrace: null }; // default output + // filter tests + if (test.testResult.toLowerCase() === 'passed') + return output; + output.errorMsg = 'test diangostics are not enabled for this pipeline'; + if (!pipelineWhitelist.includes(test.pipeline)) + return output; + // diagnostics + if (debug) console.log('Running diagnostics...'); // DEBUG + output.errorMsg = 'uncategorized'; + const testLog = logText.split(testResultLine)[1].split(/test\s*#/)[0].split('\n'); // get log output from this test only, as array of lines + let errorLine = testLog[0]; // first line, from "test ## name" to '\n' exclusive + if (/\.+ *\** *not run\s+0+\.0+ sec$/.test(errorLine)) // not run + output.errorMsg = 'test not run'; + else if (/\.+ *\** *time *out\s+\d+\.\d+ sec$/.test(errorLine)) // timeout + output.errorMsg = 'test timeout'; + else if (/exception/.test(errorLine)) // test exception + output.errorMsg = errorLine.split('exception')[1].replace(/[: \d.]/g, '').replace(/sec$/, ''); // isolate the error message after exception + else if (/fc::.*exception/.test(testLog.filter(line => !isNullOrEmpty(line))[1])) // fc exception + { + [, errorLine] = testLog.filter(line => !isNullOrEmpty(line)); // get first line + output.errorMsg = `fc::${errorLine.split('::')[1].replace(/['",]/g, '').split(' ')[0]}`; // isolate fx exception body + } + else if (testLog.join('\n').includes('ctest:')) // ctest exception + { + [errorLine] = testLog.filter(line => line.includes('ctest:')); + output.errorMsg = `ctest:${errorLine.split('ctest:')[1]}`; + } + else if (!isNullOrEmpty(testLog.filter(line => /boost.+exception/.test(line)))) // boost exception + { + [errorLine] = testLog.filter(line => /boost.+exception/.test(line)); + output.errorMsg = `boost: ${errorLine.replace(/[()]/g, '').split(/: (.+)/)[1]}`; // capturing parenthesis, split only at first ' :' + output.stackTrace = testLog.filter(line => /thread-\d+/.test(line))[0].split('thread-')[1].replace(/^\d+/, '').trim().replace(/[[]\d+m$/, ''); // get the bottom of the stack trace + } + else if (/unit[-_. ]+test/.test(test.testName) || /plugin[-_. ]+test/.test(test.testName)) // unit test, application exception + { + if (!isNullOrEmpty(testLog.filter(line => line.includes('exception: ')))) + { + [errorLine] = testLog.filter(line => line.includes('exception: ')); + [, output.errorMsg] = errorLine.replace(/[()]/g, '').split(/: (.+)/); // capturing parenthesis, split only at first ' :' + output.stackTrace = testLog.filter(line => /thread-\d+/.test(line))[0].split('thread-')[1].replace(/^\d+/, '').trim().replace(/[[]\d+m$/, ''); // get the bottom of the stack trace + } + // else uncategorized unit test + } + // else integration test, add cross-referencing code here (or uncategorized) + if (errorLine !== testLog[0]) // get real line number from log file + output.lineNumber = getLineNumber(logText, errorLine, startIndex) + 1; + return output; +} + +// return test metrics given a buildkite job or build +async function testMetrics(buildkiteObject) +{ + if (!isNullOrEmpty(buildkiteObject.type)) // input is a Buildkite job object + { + const job = buildkiteObject; + console.log(`Processing test metrics for "${job.name}"${(inBuildkite) ? '' : ` at ${job.web_url}`}...`); + if (isNullOrEmpty(job.exit_status)) + { + console.log(`${(inBuildkite) ? '+++ :warning: ' : ''}WARNING: "${job.name}" was skipped!`); + return null; + } + // get test results + const logText = await getLog(job); + let testResults; + let xUnit; + try + { + xUnit = await getXML(job); + testResults = parseXunit(xUnit); + } + catch (error) + { + console.log(`XML processing failed for "${job.name}"! Link: ${job.web_url}`); + console.log(JSON.stringify(error)); + testResults = null; + } + finally + { + if (isNullOrEmpty(testResults)) + testResults = parseLog(logText); + } + // get test metrics + const env = await getEnvironment(job); + env.BUILDKITE_REPO = env.BUILDKITE_REPO.replace(new RegExp('^git@github.com:(EOSIO/)?'), '').replace(new RegExp('.git$'), ''); + const metrics = []; + const os = getOS(env); + testResults.forEach((result) => + { + // add test properties + const test = + { + ...result, // add testName, testResult, testTime + agentName: env.BUILDKITE_AGENT_NAME, + agentRole: env.BUILDKITE_AGENT_META_DATA_QUEUE || env.BUILDKITE_AGENT_META_DATA_ROLE, + branch: env.BUILDKITE_BRANCH, + buildNumber: env.BUILDKITE_BUILD_NUMBER, + commit: env.BUILDKITE_COMMIT, + job: env.BUILDKITE_LABEL, + os, + pipeline: env.BUILDKITE_PIPELINE_SLUG, + repo: env.BUILDKITE_REPO, + testTime: parseFloat(result.testTime), + url: job.web_url, + }; + metrics.push({ ...test, ...testDiagnostics(test, logText) }); + }); + return metrics; + } + else if (!isNullOrEmpty(buildkiteObject.number)) // input is a Buildkite build object + { + const build = buildkiteObject; + console.log(`Processing test metrics for ${build.pipeline.slug} build ${build.number}${(inBuildkite) ? '' : ` at ${build.web_url}`}...`); + let metrics = [], promises = []; + // process test metrics + build.jobs.filter(job => job.type === 'script' && /test/.test(job.name.toLowerCase()) && ! /test metrics/.test(job.name.toLowerCase())).forEach((job) => + { + promises.push( + testMetrics(job) + .then((moreMetrics) => { + if (!isNullOrEmpty(moreMetrics)) + metrics = metrics.concat(moreMetrics); + else + console.log(`${(inBuildkite) ? '+++ :warning: ' : ''}WARNING: "${job.name}" metrics are empty!\nmetrics = ${JSON.stringify(moreMetrics)}`); + }).catch((error) => { + console.log(`${(inBuildkite) ? '+++ :no_entry: ' : ''}ERROR: Failed to process test metrics for "${job.name}"! Link: ${job.web_url}`); + console.log(JSON.stringify(error)); + errorCount++; + }) + ); + }); + await Promise.all(promises); + return metrics; + } + else // something else + { + console.log(`${(inBuildkite) ? '+++ :no_entry: ' : ''}ERROR: Buildkite object not recognized or not a test step!`); + console.log(JSON.stringify({buildkiteObject})); + return null; + } +} + +/* main */ +async function main() +{ + if (debug) console.log(`$ ${process.argv.join(' ')}`); + let build, metrics = null; + console.log(`${(inBuildkite) ? '+++ :evergreen_tree: ' : ''}Getting information from enviroment...`); + const buildNumber = process.env.BUILDKITE_BUILD_NUMBER || process.argv[2]; + const pipeline = process.env.BUILDKITE_PIPELINE_SLUG || process.argv[3]; + if (debug) + { + console.log(`BUILDKITE=${process.env.BUILDKITE}`); + console.log(`BUILDKITE_BUILD_NUMBER=${process.env.BUILDKITE_BUILD_NUMBER}`); + console.log(`BUILDKITE_PIPELINE_SLUG=${process.env.BUILDKITE_PIPELINE_SLUG}`); + console.log(' State:') + console.log(`inBuildkite = "${inBuildkite}"`); + console.log(`buildNumber = "${buildNumber}"`); + console.log(`pipeline = "${pipeline}"`); + } + if (isNullOrEmpty(buildNumber) || isNullOrEmpty(pipeline) || isNullOrEmpty(process.env.BUILDKITE_API_KEY)) + { + console.log(`${(inBuildkite) ? '+++ :no_entry: ' : ''}ERROR: Missing required inputs!`); + if (isNullOrEmpty(process.env.BUILDKITE_API_KEY)) console.log('- Buildkite API key, as BUILDKITE_API_KEY environment variable'); + if (isNullOrEmpty(buildNumber)) console.log('- Build Number, as BUILDKITE_BUILD_NUMBER or argument 1'); + if (isNullOrEmpty(pipeline)) console.log('- Pipeline Slug, as BUILDKITE_PIPELINE_SLUG or argument 2'); + errorCount = -1; + } + else + { + console.log(`${(inBuildkite) ? '+++ :bar_chart: ' : ''}Processing test metrics...`); + build = await getBuild(pipeline, buildNumber); + metrics = await testMetrics(build); + console.log('Done processing test metrics.'); + } + console.log(`${(inBuildkite) ? '+++ :pencil: ' : ''}Writing to file...`); + fs.writeFileSync(outputFile, JSON.stringify({ metrics })); + console.log(`Saved metrics to "${outputFile}" in "${process.cwd()}".`); + if (inBuildkite) + { + console.log('+++ :arrow_up: Uploading artifact...'); + execSync(`buildkite-agent artifact upload ${outputFile}`); + } + if (errorCount === 0) + console.log(`${(inBuildkite) ? '+++ :white_check_mark: ' : ''}Done!`); + else + { + console.log(`${(inBuildkite) ? '+++ :warning: ' : ''}Finished with errors.`); + console.log(`Please send automation a link to this job${(isNullOrEmpty(build)) ? '.' : `: ${build.web_url}`}`); + console.log('@kj4ezj or @zreyn on Telegram'); + } + return (inBuildkite) ? process.exit(EXIT_SUCCESS) : process.exit(errorCount); +}; + +main(); \ No newline at end of file diff --git a/.cicd/metrics/test-metrics.tar.gz b/.cicd/metrics/test-metrics.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..2381787ca06196f1b95c636435a77b58ba1cc0aa GIT binary patch literal 96551 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 Date: Wed, 31 Jul 2019 09:09:43 -0400 Subject: [PATCH 176/528] testing --- .cicd/pipeline.yml | 334 ++++++++++++++++++++++----------------------- 1 file changed, 167 insertions(+), 167 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index ba6c1a74484..4217da91b11 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,99 +1,99 @@ steps: - wait - - trigger: "eosio-base-images-beta" - label: ":docker: Ensure Base Images" - build: - commit: "${BUILDKITE_COMMIT}" - branch: "${BUILDKITE_BRANCH}" - - - wait - - - label: ":webhook: Trigger Travis CI Build" - command: - - "./.cicd/travis/travis-trigger.sh" - agents: - queue: "automation-basic-builder-fleet" + # - trigger: "eosio-base-images-beta" + # label: ":docker: Ensure Base Images" + # build: + # commit: "${BUILDKITE_COMMIT}" + # branch: "${BUILDKITE_BRANCH}" + + # - wait + + # - label: ":webhook: Trigger Travis CI Build" + # command: + # - "./.cicd/travis/travis-trigger.sh" + # agents: + # queue: "automation-basic-builder-fleet" - - wait - - - label: ":aws: Amazon_Linux 2.0 - Build & Test" - agents: - queue: "automation-eos-builder-fleet" - plugins: - - docker#v3.2.0: - debug: $DEBUG - image: "eosio/producer:eosio-amazonlinux-2-fe993ae1ac74c46f8d97e49ad8e390289e550cb8" - environment: - - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - - - label: ":centos: CentOS 7.6 - Build & Test" - command: - - "" - agents: - queue: "automation-eos-builder-fleet" - plugins: - - docker#v3.2.0: - debug: true - image: "eosio/producer:eosio-centos-7-1d592f4b1fc27aae8a4740b95525e7b495467bc8" - environment: - # - "ENABLE_LR_TESTS=true" - - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - - - label: ":ubuntu: Ubuntu 16.04 - Build & Test" - agents: - queue: "automation-eos-builder-fleet" - plugins: - - docker#v3.2.0: - debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-16.04-a1aa07ffa321d67ea0d7b37313f3ff8690123d2e" - environment: - - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - - - label: ":ubuntu: Ubuntu 18.04 - Build & Test" - agents: - queue: "automation-eos-builder-fleet" - plugins: - - docker#v3.2.0: - debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-18.04-4a0a7504956fa835cae09221ede97f61fa01d75c" - environment: - - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - - - label: ":darwin: macOS 10.14 - Build & Test" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && mkdir -p build && cd build && cmake .." - - "cd eos/build && make -j$(getconf _NPROCESSORS_ONLN)" - - "if ${ENABLE_PARALLEL_TESTS:-true}; then cd eos/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test; fi" - - "if ${ENABLE_SERIAL_TESTS:-true}; then cd eos/build && mkdir -p ./mongodb && mongod --dbpath ./mongodb --fork --logpath mongod.log && ctest -L nonparallelizable_tests --output-on-failure -T Test; fi" - - "if ${ENABLE_LR_TESTS:-false}; then cd eos/build && ctest -L long_running_tests --output-on-failure -T Test; fi" - - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - modify-cpu: 12 - modify-ram: 24 - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-large-node-fleet" - - - wait: - continue_on_failure: true + # - wait + + # - label: ":aws: Amazon_Linux 2.0 - Build & Test" + # agents: + # queue: "automation-eos-builder-fleet" + # plugins: + # - docker#v3.2.0: + # debug: $DEBUG + # image: "eosio/producer:eosio-amazonlinux-2-fe993ae1ac74c46f8d97e49ad8e390289e550cb8" + # environment: + # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + + # - label: ":centos: CentOS 7.6 - Build & Test" + # command: + # - "" + # agents: + # queue: "automation-eos-builder-fleet" + # plugins: + # - docker#v3.2.0: + # debug: true + # image: "eosio/producer:eosio-centos-7-1d592f4b1fc27aae8a4740b95525e7b495467bc8" + # environment: + # # - "ENABLE_LR_TESTS=true" + # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + + # - label: ":ubuntu: Ubuntu 16.04 - Build & Test" + # agents: + # queue: "automation-eos-builder-fleet" + # plugins: + # - docker#v3.2.0: + # debug: $DEBUG + # image: "eosio/producer:eosio-ubuntu-16.04-a1aa07ffa321d67ea0d7b37313f3ff8690123d2e" + # environment: + # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + + # - label: ":ubuntu: Ubuntu 18.04 - Build & Test" + # agents: + # queue: "automation-eos-builder-fleet" + # plugins: + # - docker#v3.2.0: + # debug: $DEBUG + # image: "eosio/producer:eosio-ubuntu-18.04-4a0a7504956fa835cae09221ede97f61fa01d75c" + # environment: + # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + + # - label: ":darwin: macOS 10.14 - Build & Test" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && mkdir -p build && cd build && cmake .." + # - "cd eos/build && make -j$(getconf _NPROCESSORS_ONLN)" + # - "if ${ENABLE_PARALLEL_TESTS:-true}; then cd eos/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test; fi" + # - "if ${ENABLE_SERIAL_TESTS:-true}; then cd eos/build && mkdir -p ./mongodb && mongod --dbpath ./mongodb --fork --logpath mongod.log && ctest -L nonparallelizable_tests --output-on-failure -T Test; fi" + # - "if ${ENABLE_LR_TESTS:-false}; then cd eos/build && ctest -L long_running_tests --output-on-failure -T Test; fi" + # - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # modify-cpu: 12 + # modify-ram: 24 + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-large-node-fleet" + + # - wait: + # continue_on_failure: true - command: | echo '+++ :compression: Extracting Test Metrics Code' @@ -106,78 +106,78 @@ steps: timeout: 10 soft_fail: true - - wait - - - label: ":centos: Centos 7.6 - PB" - command: - - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package-builder.sh" - plugins: - - docker#v3.2.0: - debug: true - image: "eosio/producer:eosio-centos-7-1d592f4b1fc27aae8a4740b95525e7b495467bc8" - environment: - # - "ENABLE_LR_TESTS=true" - - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - agents: - queue: "automation-eos-builder-fleet" - timeout: 10 - - - label: ":ubuntu: Ubuntu 16.04 - PB" - command: - - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package-builder.sh" - plugins: - - docker#v3.2.0: - debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-16.04-a1aa07ffa321d67ea0d7b37313f3ff8690123d2e" - environment: - - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - agents: - queue: "automation-eos-builder-fleet" - timeout: 10 - - - label: ":ubuntu: Ubuntu 18.04 - PB" - command: - - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package-builder.sh" - plugins: - - docker#v3.2.0: - debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-18.04-4a0a7504956fa835cae09221ede97f61fa01d75c" - environment: - - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - agents: - queue: "automation-eos-builder-fleet" - timeout: 10 - - - label: ":darwin: Mojave - PB" - command: - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build & Test' && tar -xzf build.tar.gz" - - "cd eos && ./.cicd/package-builder.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-node-fleet" - timeout: 10 - - - label: ":git: Git Submodule Regression Check" - command: - - "./.cicd/submodule-regression-checker.sh" - agents: - queue: "automation-basic-builder-fleet" - timeout: 5 \ No newline at end of file + # - wait + + # - label: ":centos: Centos 7.6 - PB" + # command: + # - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + # - "./.cicd/package-builder.sh" + # plugins: + # - docker#v3.2.0: + # debug: true + # image: "eosio/producer:eosio-centos-7-1d592f4b1fc27aae8a4740b95525e7b495467bc8" + # environment: + # # - "ENABLE_LR_TESTS=true" + # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: 10 + + # - label: ":ubuntu: Ubuntu 16.04 - PB" + # command: + # - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + # - "./.cicd/package-builder.sh" + # plugins: + # - docker#v3.2.0: + # debug: $DEBUG + # image: "eosio/producer:eosio-ubuntu-16.04-a1aa07ffa321d67ea0d7b37313f3ff8690123d2e" + # environment: + # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: 10 + + # - label: ":ubuntu: Ubuntu 18.04 - PB" + # command: + # - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + # - "./.cicd/package-builder.sh" + # plugins: + # - docker#v3.2.0: + # debug: $DEBUG + # image: "eosio/producer:eosio-ubuntu-18.04-4a0a7504956fa835cae09221ede97f61fa01d75c" + # environment: + # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: 10 + + # - label: ":darwin: Mojave - PB" + # command: + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" + # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build & Test' && tar -xzf build.tar.gz" + # - "cd eos && ./.cicd/package-builder.sh" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-node-fleet" + # timeout: 10 + + # - label: ":git: Git Submodule Regression Check" + # command: + # - "./.cicd/submodule-regression-checker.sh" + # agents: + # queue: "automation-basic-builder-fleet" + # timeout: 5 \ No newline at end of file From 3b21fdd536aa9057f98d4bfaac594dfa079735fd Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 31 Jul 2019 09:11:42 -0400 Subject: [PATCH 177/528] test metrics final --- .cicd/pipeline.yml | 334 ++++++++++++++++++++++----------------------- 1 file changed, 167 insertions(+), 167 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 4217da91b11..ba6c1a74484 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,99 +1,99 @@ steps: - wait - # - trigger: "eosio-base-images-beta" - # label: ":docker: Ensure Base Images" - # build: - # commit: "${BUILDKITE_COMMIT}" - # branch: "${BUILDKITE_BRANCH}" - - # - wait - - # - label: ":webhook: Trigger Travis CI Build" - # command: - # - "./.cicd/travis/travis-trigger.sh" - # agents: - # queue: "automation-basic-builder-fleet" + - trigger: "eosio-base-images-beta" + label: ":docker: Ensure Base Images" + build: + commit: "${BUILDKITE_COMMIT}" + branch: "${BUILDKITE_BRANCH}" + + - wait + + - label: ":webhook: Trigger Travis CI Build" + command: + - "./.cicd/travis/travis-trigger.sh" + agents: + queue: "automation-basic-builder-fleet" - # - wait - - # - label: ":aws: Amazon_Linux 2.0 - Build & Test" - # agents: - # queue: "automation-eos-builder-fleet" - # plugins: - # - docker#v3.2.0: - # debug: $DEBUG - # image: "eosio/producer:eosio-amazonlinux-2-fe993ae1ac74c46f8d97e49ad8e390289e550cb8" - # environment: - # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - - # - label: ":centos: CentOS 7.6 - Build & Test" - # command: - # - "" - # agents: - # queue: "automation-eos-builder-fleet" - # plugins: - # - docker#v3.2.0: - # debug: true - # image: "eosio/producer:eosio-centos-7-1d592f4b1fc27aae8a4740b95525e7b495467bc8" - # environment: - # # - "ENABLE_LR_TESTS=true" - # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - - # - label: ":ubuntu: Ubuntu 16.04 - Build & Test" - # agents: - # queue: "automation-eos-builder-fleet" - # plugins: - # - docker#v3.2.0: - # debug: $DEBUG - # image: "eosio/producer:eosio-ubuntu-16.04-a1aa07ffa321d67ea0d7b37313f3ff8690123d2e" - # environment: - # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - - # - label: ":ubuntu: Ubuntu 18.04 - Build & Test" - # agents: - # queue: "automation-eos-builder-fleet" - # plugins: - # - docker#v3.2.0: - # debug: $DEBUG - # image: "eosio/producer:eosio-ubuntu-18.04-4a0a7504956fa835cae09221ede97f61fa01d75c" - # environment: - # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - - # - label: ":darwin: macOS 10.14 - Build & Test" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && mkdir -p build && cd build && cmake .." - # - "cd eos/build && make -j$(getconf _NPROCESSORS_ONLN)" - # - "if ${ENABLE_PARALLEL_TESTS:-true}; then cd eos/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test; fi" - # - "if ${ENABLE_SERIAL_TESTS:-true}; then cd eos/build && mkdir -p ./mongodb && mongod --dbpath ./mongodb --fork --logpath mongod.log && ctest -L nonparallelizable_tests --output-on-failure -T Test; fi" - # - "if ${ENABLE_LR_TESTS:-false}; then cd eos/build && ctest -L long_running_tests --output-on-failure -T Test; fi" - # - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # modify-cpu: 12 - # modify-ram: 24 - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-large-node-fleet" - - # - wait: - # continue_on_failure: true + - wait + + - label: ":aws: Amazon_Linux 2.0 - Build & Test" + agents: + queue: "automation-eos-builder-fleet" + plugins: + - docker#v3.2.0: + debug: $DEBUG + image: "eosio/producer:eosio-amazonlinux-2-fe993ae1ac74c46f8d97e49ad8e390289e550cb8" + environment: + - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + + - label: ":centos: CentOS 7.6 - Build & Test" + command: + - "" + agents: + queue: "automation-eos-builder-fleet" + plugins: + - docker#v3.2.0: + debug: true + image: "eosio/producer:eosio-centos-7-1d592f4b1fc27aae8a4740b95525e7b495467bc8" + environment: + # - "ENABLE_LR_TESTS=true" + - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + + - label: ":ubuntu: Ubuntu 16.04 - Build & Test" + agents: + queue: "automation-eos-builder-fleet" + plugins: + - docker#v3.2.0: + debug: $DEBUG + image: "eosio/producer:eosio-ubuntu-16.04-a1aa07ffa321d67ea0d7b37313f3ff8690123d2e" + environment: + - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + + - label: ":ubuntu: Ubuntu 18.04 - Build & Test" + agents: + queue: "automation-eos-builder-fleet" + plugins: + - docker#v3.2.0: + debug: $DEBUG + image: "eosio/producer:eosio-ubuntu-18.04-4a0a7504956fa835cae09221ede97f61fa01d75c" + environment: + - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + + - label: ":darwin: macOS 10.14 - Build & Test" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && mkdir -p build && cd build && cmake .." + - "cd eos/build && make -j$(getconf _NPROCESSORS_ONLN)" + - "if ${ENABLE_PARALLEL_TESTS:-true}; then cd eos/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test; fi" + - "if ${ENABLE_SERIAL_TESTS:-true}; then cd eos/build && mkdir -p ./mongodb && mongod --dbpath ./mongodb --fork --logpath mongod.log && ctest -L nonparallelizable_tests --output-on-failure -T Test; fi" + - "if ${ENABLE_LR_TESTS:-false}; then cd eos/build && ctest -L long_running_tests --output-on-failure -T Test; fi" + - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + modify-cpu: 12 + modify-ram: 24 + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-large-node-fleet" + + - wait: + continue_on_failure: true - command: | echo '+++ :compression: Extracting Test Metrics Code' @@ -106,78 +106,78 @@ steps: timeout: 10 soft_fail: true - # - wait - - # - label: ":centos: Centos 7.6 - PB" - # command: - # - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - # - "./.cicd/package-builder.sh" - # plugins: - # - docker#v3.2.0: - # debug: true - # image: "eosio/producer:eosio-centos-7-1d592f4b1fc27aae8a4740b95525e7b495467bc8" - # environment: - # # - "ENABLE_LR_TESTS=true" - # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: 10 - - # - label: ":ubuntu: Ubuntu 16.04 - PB" - # command: - # - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - # - "./.cicd/package-builder.sh" - # plugins: - # - docker#v3.2.0: - # debug: $DEBUG - # image: "eosio/producer:eosio-ubuntu-16.04-a1aa07ffa321d67ea0d7b37313f3ff8690123d2e" - # environment: - # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: 10 - - # - label: ":ubuntu: Ubuntu 18.04 - PB" - # command: - # - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - # - "./.cicd/package-builder.sh" - # plugins: - # - docker#v3.2.0: - # debug: $DEBUG - # image: "eosio/producer:eosio-ubuntu-18.04-4a0a7504956fa835cae09221ede97f61fa01d75c" - # environment: - # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: 10 - - # - label: ":darwin: Mojave - PB" - # command: - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" - # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build & Test' && tar -xzf build.tar.gz" - # - "cd eos && ./.cicd/package-builder.sh" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-node-fleet" - # timeout: 10 - - # - label: ":git: Git Submodule Regression Check" - # command: - # - "./.cicd/submodule-regression-checker.sh" - # agents: - # queue: "automation-basic-builder-fleet" - # timeout: 5 \ No newline at end of file + - wait + + - label: ":centos: Centos 7.6 - PB" + command: + - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "./.cicd/package-builder.sh" + plugins: + - docker#v3.2.0: + debug: true + image: "eosio/producer:eosio-centos-7-1d592f4b1fc27aae8a4740b95525e7b495467bc8" + environment: + # - "ENABLE_LR_TESTS=true" + - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + agents: + queue: "automation-eos-builder-fleet" + timeout: 10 + + - label: ":ubuntu: Ubuntu 16.04 - PB" + command: + - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "./.cicd/package-builder.sh" + plugins: + - docker#v3.2.0: + debug: $DEBUG + image: "eosio/producer:eosio-ubuntu-16.04-a1aa07ffa321d67ea0d7b37313f3ff8690123d2e" + environment: + - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + agents: + queue: "automation-eos-builder-fleet" + timeout: 10 + + - label: ":ubuntu: Ubuntu 18.04 - PB" + command: + - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "./.cicd/package-builder.sh" + plugins: + - docker#v3.2.0: + debug: $DEBUG + image: "eosio/producer:eosio-ubuntu-18.04-4a0a7504956fa835cae09221ede97f61fa01d75c" + environment: + - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + agents: + queue: "automation-eos-builder-fleet" + timeout: 10 + + - label: ":darwin: Mojave - PB" + command: + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build & Test' && tar -xzf build.tar.gz" + - "cd eos && ./.cicd/package-builder.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-node-fleet" + timeout: 10 + + - label: ":git: Git Submodule Regression Check" + command: + - "./.cicd/submodule-regression-checker.sh" + agents: + queue: "automation-basic-builder-fleet" + timeout: 5 \ No newline at end of file From 49af5fc3a5a28a9b5c76de84e45836dbad3903fe Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 1 Aug 2019 10:59:59 -0400 Subject: [PATCH 178/528] PB -> Package Builder --- .cicd/pipeline.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index ba6c1a74484..603647f3c51 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -108,7 +108,7 @@ steps: - wait - - label: ":centos: Centos 7.6 - PB" + - label: ":centos: Centos 7.6 - Package Builder" command: - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - "./.cicd/package-builder.sh" @@ -125,7 +125,7 @@ steps: queue: "automation-eos-builder-fleet" timeout: 10 - - label: ":ubuntu: Ubuntu 16.04 - PB" + - label: ":ubuntu: Ubuntu 16.04 - Package Builder" command: - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - "./.cicd/package-builder.sh" @@ -141,7 +141,7 @@ steps: queue: "automation-eos-builder-fleet" timeout: 10 - - label: ":ubuntu: Ubuntu 18.04 - PB" + - label: ":ubuntu: Ubuntu 18.04 - Package Builder" command: - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - "./.cicd/package-builder.sh" @@ -157,7 +157,7 @@ steps: queue: "automation-eos-builder-fleet" timeout: 10 - - label: ":darwin: Mojave - PB" + - label: ":darwin: Mojave - Package Builder" command: - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build & Test' && tar -xzf build.tar.gz" From 7f8e9ac80e4e85e66b4416564731f28c9b659bab Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 1 Aug 2019 11:05:07 -0400 Subject: [PATCH 179/528] remove commented out env --- .cicd/pipeline.yml | 1 - .cicd/{ => travis}/.helpers | 0 2 files changed, 1 deletion(-) rename .cicd/{ => travis}/.helpers (100%) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 603647f3c51..1019652a96a 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -117,7 +117,6 @@ steps: debug: true image: "eosio/producer:eosio-centos-7-1d592f4b1fc27aae8a4740b95525e7b495467bc8" environment: - # - "ENABLE_LR_TESTS=true" - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) diff --git a/.cicd/.helpers b/.cicd/travis/.helpers similarity index 100% rename from .cicd/.helpers rename to .cicd/travis/.helpers From 736fba0d2a35c4171ddcd8ba19425010b513b879 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 1 Aug 2019 11:33:36 -0400 Subject: [PATCH 180/528] name change for file --- .cicd/pipeline.yml | 2 +- .cicd/travis/{travis-trigger.sh => trigger-travis.sh} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename .cicd/travis/{travis-trigger.sh => trigger-travis.sh} (100%) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 1019652a96a..4b504ec631d 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -11,7 +11,7 @@ steps: - label: ":webhook: Trigger Travis CI Build" command: - - "./.cicd/travis/travis-trigger.sh" + - "./.cicd/travis/trigger-travis.sh" agents: queue: "automation-basic-builder-fleet" diff --git a/.cicd/travis/travis-trigger.sh b/.cicd/travis/trigger-travis.sh similarity index 100% rename from .cicd/travis/travis-trigger.sh rename to .cicd/travis/trigger-travis.sh From e4edc4741bdab33c082a09352decf5bf879f41a5 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 1 Aug 2019 11:39:36 -0400 Subject: [PATCH 181/528] 7.6 --- .cicd/base-images.yml | 2 +- .cicd/docker/{centos-7.dockerfile => centos-7.6.dockerfile} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename .cicd/docker/{centos-7.dockerfile => centos-7.6.dockerfile} (100%) diff --git a/.cicd/base-images.yml b/.cicd/base-images.yml index 3a8ae02ccfb..7b534b762c2 100644 --- a/.cicd/base-images.yml +++ b/.cicd/base-images.yml @@ -15,7 +15,7 @@ steps: - label: ":centos: CentOS 7.6 - Build" command: - - ".cicd/generate-base-images.sh centos-7" + - ".cicd/generate-base-images.sh centos-7.6" agents: queue: "automation-eos-dockerhub-image-builder-fleet" timeout: $BUILD_TIMEOUT diff --git a/.cicd/docker/centos-7.dockerfile b/.cicd/docker/centos-7.6.dockerfile similarity index 100% rename from .cicd/docker/centos-7.dockerfile rename to .cicd/docker/centos-7.6.dockerfile From 228c9a923ce889e7afb64070bc2fa7a68ec3a640 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 1 Aug 2019 11:41:48 -0400 Subject: [PATCH 182/528] centos7.6 --- .cicd/{travis => }/.helpers | 0 .cicd/pipeline.yml | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) rename .cicd/{travis => }/.helpers (100%) diff --git a/.cicd/travis/.helpers b/.cicd/.helpers similarity index 100% rename from .cicd/travis/.helpers rename to .cicd/.helpers diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 4b504ec631d..4fe377a008a 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -37,7 +37,7 @@ steps: plugins: - docker#v3.2.0: debug: true - image: "eosio/producer:eosio-centos-7-1d592f4b1fc27aae8a4740b95525e7b495467bc8" + image: "eosio/producer:eosio-centos-7.6-1d72db966ca334266e0e7a432909d4fb6c188cc1" environment: # - "ENABLE_LR_TESTS=true" - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download @@ -115,7 +115,7 @@ steps: plugins: - docker#v3.2.0: debug: true - image: "eosio/producer:eosio-centos-7-1d592f4b1fc27aae8a4740b95525e7b495467bc8" + image: "eosio/producer:eosio-centos-7.6-1d72db966ca334266e0e7a432909d4fb6c188cc1" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it From 62908c2d13cf586cb9be27ba0f6df1f53c23566e Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 1 Aug 2019 13:56:24 -0400 Subject: [PATCH 183/528] centos 7.6 fix --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 9bdd9ce61d3..889252e5a6b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,7 +26,7 @@ matrix: dist: xenial services: docker env: - - IMAGE_TAG='centos-7' + - IMAGE_TAG='centos-7.6' - os: osx osx_image: xcode10.2 addons: From 89d38b802f77eb36bf565183b6079ea82b972724 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Thu, 1 Aug 2019 17:09:07 -0400 Subject: [PATCH 184/528] Updated builds to use JOBS env. --- .cicd/docker/amazonlinux-2.dockerfile | 5 +++-- .cicd/docker/centos-7.6.dockerfile | 5 +++-- .cicd/docker/ubuntu-16.04.dockerfile | 5 +++-- .cicd/docker/ubuntu-18.04.dockerfile | 5 +++-- .cicd/pipeline.yml | 4 ++++ .cicd/travis/travis-build.sh | 7 +++---- .travis.yml | 3 +++ 7 files changed, 22 insertions(+), 12 deletions(-) diff --git a/.cicd/docker/amazonlinux-2.dockerfile b/.cicd/docker/amazonlinux-2.dockerfile index b433d4ff728..39785cb95e9 100644 --- a/.cicd/docker/amazonlinux-2.dockerfile +++ b/.cicd/docker/amazonlinux-2.dockerfile @@ -87,8 +87,9 @@ COPY ./docker/.logging-helpers /tmp/.helpers CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ fold-execute ccache -s && \ mkdir /workdir/build && cd /workdir/build && fold-execute cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && \ - fold-execute make -j $(getconf _NPROCESSORS_ONLN) && \ - if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test; fi && \ + echo Building with -j$JOBS && \ + fold-execute make -j$JOBS && \ + if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test; fi && \ if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi && \ if ! ${TRAVIS:-false}; then cd .. && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi" diff --git a/.cicd/docker/centos-7.6.dockerfile b/.cicd/docker/centos-7.6.dockerfile index 0ec75b06db9..366cf563a4a 100644 --- a/.cicd/docker/centos-7.6.dockerfile +++ b/.cicd/docker/centos-7.6.dockerfile @@ -102,8 +102,9 @@ COPY ./docker/.logging-helpers /tmp/.helpers CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ fold-execute ccache -s && \ mkdir /workdir/build && cd /workdir/build && fold-execute cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && \ - fold-execute make -j $(getconf _NPROCESSORS_ONLN) && \ - if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test; fi && \ + echo Building with -j$JOBS && \ + fold-execute make -j$JOBS && \ + if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test; fi && \ if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi && \ if ! ${TRAVIS:-false}; then cd .. && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi" diff --git a/.cicd/docker/ubuntu-16.04.dockerfile b/.cicd/docker/ubuntu-16.04.dockerfile index 58d85842c27..16ed8579f46 100644 --- a/.cicd/docker/ubuntu-16.04.dockerfile +++ b/.cicd/docker/ubuntu-16.04.dockerfile @@ -97,8 +97,9 @@ COPY ./docker/.logging-helpers /tmp/.helpers CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ fold-execute ccache -s && \ mkdir /workdir/build && cd /workdir/build && fold-execute cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && \ - fold-execute make -j $(getconf _NPROCESSORS_ONLN) && \ - if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test; fi && \ + echo Building with -j$JOBS && \ + fold-execute make -j$JOBS && \ + if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test; fi && \ if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi && \ if ! ${TRAVIS:-false}; then cd .. && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi" \ No newline at end of file diff --git a/.cicd/docker/ubuntu-18.04.dockerfile b/.cicd/docker/ubuntu-18.04.dockerfile index 856cf14bdfd..2fe19893f3f 100644 --- a/.cicd/docker/ubuntu-18.04.dockerfile +++ b/.cicd/docker/ubuntu-18.04.dockerfile @@ -74,8 +74,9 @@ COPY ./docker/.logging-helpers /tmp/.helpers CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ fold-execute ccache -s && \ mkdir /workdir/build && cd /workdir/build && fold-execute cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && \ - fold-execute make -j $(getconf _NPROCESSORS_ONLN) && \ - if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test; fi && \ + echo Building with -j$JOBS && \ + fold-execute make -j $JOBS && \ + if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test; fi && \ if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi && \ if ! ${TRAVIS:-false}; then cd .. && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi" diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 4fe377a008a..6a310597efa 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -26,6 +26,7 @@ steps: image: "eosio/producer:eosio-amazonlinux-2-fe993ae1ac74c46f8d97e49ad8e390289e550cb8" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + - "JOBS" # Number for -j make/ctest args. mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) @@ -41,6 +42,7 @@ steps: environment: # - "ENABLE_LR_TESTS=true" - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + - "JOBS" # Number for -j make/ctest args. mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) @@ -53,6 +55,7 @@ steps: image: "eosio/producer:eosio-ubuntu-16.04-a1aa07ffa321d67ea0d7b37313f3ff8690123d2e" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + - "JOBS" # Number for -j make/ctest args. mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) @@ -65,6 +68,7 @@ steps: image: "eosio/producer:eosio-ubuntu-18.04-4a0a7504956fa835cae09221ede97f61fa01d75c" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + - "JOBS" # Number for -j make/ctest args. mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) diff --git a/.cicd/travis/travis-build.sh b/.cicd/travis/travis-build.sh index 8a934f1de69..48081e22e89 100755 --- a/.cicd/travis/travis-build.sh +++ b/.cicd/travis/travis-build.sh @@ -4,16 +4,15 @@ ROOT_DIR=$(pwd) cd $( dirname "${BASH_SOURCE[0]}" )/.. # Ensure we're in the .cicd dir . ./.helpers cd $ROOT_DIR -CPU_CORES=$(getconf _NPROCESSORS_ONLN) if [[ "$(uname)" == Darwin ]]; then . ./.cicd/docker/.logging-helpers fold-execute ccache -s mkdir -p build && cd build && fold-execute cmake .. - fold-execute make -j$(getconf _NPROCESSORS_ONLN) - if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test; fi + fold-execute make -j$JOBS + if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test; fi if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi else # linux DOCKER_RUN_EXTRAS="-e ENABLE_PACKAGE_BUILDER=false" # Travis doesn't need to test or push packages - execute eval docker run --rm -v $(pwd):/workdir -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e CCACHE_DIR=/opt/.ccache -e TRAVIS $DOCKER_RUN_EXTRAS $FULL_TAG + execute eval docker run --rm -v $(pwd):/workdir -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e JOBS -e CCACHE_DIR=/opt/.ccache -e TRAVIS $DOCKER_RUN_EXTRAS $FULL_TAG fi \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 889252e5a6b..09ea38963cf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,9 @@ cache: ccache: true directories: - $HOME/Library/Caches/Homebrew +env: + global: + - JOBS='2' matrix: include: - os: linux From 6ad2c9a730b9cc240462c3f18612010531b6fd53 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Thu, 1 Aug 2019 17:10:34 -0400 Subject: [PATCH 185/528] Added conditional to skip org builds in travis. --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 09ea38963cf..1cb94624d52 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,7 @@ cache: env: global: - JOBS='2' +if: fork = true matrix: include: - os: linux From 325306f6a545132513352b8083ea639a24e3b86d Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Thu, 1 Aug 2019 17:16:15 -0400 Subject: [PATCH 186/528] Removed echos: execute command handles verbosity. --- .cicd/docker/amazonlinux-2.dockerfile | 1 - .cicd/docker/centos-7.6.dockerfile | 1 - .cicd/docker/ubuntu-16.04.dockerfile | 1 - .cicd/docker/ubuntu-18.04.dockerfile | 1 - 4 files changed, 4 deletions(-) diff --git a/.cicd/docker/amazonlinux-2.dockerfile b/.cicd/docker/amazonlinux-2.dockerfile index 39785cb95e9..e56780c78f6 100644 --- a/.cicd/docker/amazonlinux-2.dockerfile +++ b/.cicd/docker/amazonlinux-2.dockerfile @@ -87,7 +87,6 @@ COPY ./docker/.logging-helpers /tmp/.helpers CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ fold-execute ccache -s && \ mkdir /workdir/build && cd /workdir/build && fold-execute cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && \ - echo Building with -j$JOBS && \ fold-execute make -j$JOBS && \ if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test; fi && \ if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ diff --git a/.cicd/docker/centos-7.6.dockerfile b/.cicd/docker/centos-7.6.dockerfile index 366cf563a4a..76f3d1f83a1 100644 --- a/.cicd/docker/centos-7.6.dockerfile +++ b/.cicd/docker/centos-7.6.dockerfile @@ -102,7 +102,6 @@ COPY ./docker/.logging-helpers /tmp/.helpers CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ fold-execute ccache -s && \ mkdir /workdir/build && cd /workdir/build && fold-execute cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && \ - echo Building with -j$JOBS && \ fold-execute make -j$JOBS && \ if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test; fi && \ if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ diff --git a/.cicd/docker/ubuntu-16.04.dockerfile b/.cicd/docker/ubuntu-16.04.dockerfile index 16ed8579f46..e8e96ff237c 100644 --- a/.cicd/docker/ubuntu-16.04.dockerfile +++ b/.cicd/docker/ubuntu-16.04.dockerfile @@ -97,7 +97,6 @@ COPY ./docker/.logging-helpers /tmp/.helpers CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ fold-execute ccache -s && \ mkdir /workdir/build && cd /workdir/build && fold-execute cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && \ - echo Building with -j$JOBS && \ fold-execute make -j$JOBS && \ if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test; fi && \ if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ diff --git a/.cicd/docker/ubuntu-18.04.dockerfile b/.cicd/docker/ubuntu-18.04.dockerfile index 2fe19893f3f..f636153066a 100644 --- a/.cicd/docker/ubuntu-18.04.dockerfile +++ b/.cicd/docker/ubuntu-18.04.dockerfile @@ -74,7 +74,6 @@ COPY ./docker/.logging-helpers /tmp/.helpers CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ fold-execute ccache -s && \ mkdir /workdir/build && cd /workdir/build && fold-execute cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && \ - echo Building with -j$JOBS && \ fold-execute make -j $JOBS && \ if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test; fi && \ if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ From 08eaa5e7c3b294b295dc021493a26e1da8accfaf Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Thu, 1 Aug 2019 17:20:44 -0400 Subject: [PATCH 187/528] Updated docker image hashes. --- .cicd/pipeline.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 6a310597efa..e2402e5a66e 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -23,7 +23,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-amazonlinux-2-fe993ae1ac74c46f8d97e49ad8e390289e550cb8" + image: "eosio/producer:eosio-amazonlinux-2-2f50b90dc0587a1bb96f8001891fc54efc81b11e" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - "JOBS" # Number for -j make/ctest args. @@ -38,7 +38,7 @@ steps: plugins: - docker#v3.2.0: debug: true - image: "eosio/producer:eosio-centos-7.6-1d72db966ca334266e0e7a432909d4fb6c188cc1" + image: "eosio/producer:eosio-centos-7.6-3d1cc1fb9f1681a5d8dc0b2e6425407c37d8fff6" environment: # - "ENABLE_LR_TESTS=true" - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download @@ -52,7 +52,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-16.04-a1aa07ffa321d67ea0d7b37313f3ff8690123d2e" + image: "eosio/producer:eosio-ubuntu-16.04-1837c2968d507ca2d73ab0ae8963c9dbb4275048" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - "JOBS" # Number for -j make/ctest args. @@ -65,7 +65,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-18.04-4a0a7504956fa835cae09221ede97f61fa01d75c" + image: "eosio/producer:eosio-ubuntu-18.04-ccb89fe03979636296d4999e09ce8a49a23e3059" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - "JOBS" # Number for -j make/ctest args. @@ -119,7 +119,7 @@ steps: plugins: - docker#v3.2.0: debug: true - image: "eosio/producer:eosio-centos-7.6-1d72db966ca334266e0e7a432909d4fb6c188cc1" + image: "eosio/producer:eosio-centos-7.6-3d1cc1fb9f1681a5d8dc0b2e6425407c37d8fff6" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it @@ -135,7 +135,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-16.04-a1aa07ffa321d67ea0d7b37313f3ff8690123d2e" + image: "eosio/producer:eosio-ubuntu-16.04-1837c2968d507ca2d73ab0ae8963c9dbb4275048" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it @@ -151,7 +151,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-18.04-4a0a7504956fa835cae09221ede97f61fa01d75c" + image: "eosio/producer:eosio-ubuntu-18.04-ccb89fe03979636296d4999e09ce8a49a23e3059" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it From 9a295c2f47fe1ad661d8d819e6809e7a4510e85b Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Fri, 2 Aug 2019 13:09:02 -0400 Subject: [PATCH 188/528] Changed JOBS for Travis builds. --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1cb94624d52..ffb48170383 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,8 +7,8 @@ cache: - $HOME/Library/Caches/Homebrew env: global: - - JOBS='2' -if: fork = true + - JOBS='$(getconf _NPROCESSORS_ONLN)' +# if: fork = true matrix: include: - os: linux From debd6e57a6a3064a042de4b5a8389d9771187b14 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Fri, 2 Aug 2019 13:09:19 -0400 Subject: [PATCH 189/528] Re-enabled fork conditional. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ffb48170383..7a821dd0987 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ cache: env: global: - JOBS='$(getconf _NPROCESSORS_ONLN)' -# if: fork = true +if: fork = true matrix: include: - os: linux From 7c41bb478156c2621b13396cd306a176e832a480 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Fri, 2 Aug 2019 14:04:50 -0400 Subject: [PATCH 190/528] Allow API or manually triggered builds on Travis. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 7a821dd0987..3e1482340a5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ cache: env: global: - JOBS='$(getconf _NPROCESSORS_ONLN)' -if: fork = true +if: fork = true OR type = api matrix: include: - os: linux From a072be40d01e4938b992d891e842d981e307c43c Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Sun, 4 Aug 2019 10:52:48 -0400 Subject: [PATCH 191/528] Disabled trigger from Buildkite. Added JOBS var to travis build script. Removed JOBS var from .travis.yml. --- .cicd/pipeline.yml | 8 -------- .cicd/travis/travis-build.sh | 1 + .travis.yml | 3 --- 3 files changed, 1 insertion(+), 11 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index e2402e5a66e..51b89c66b1d 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -6,14 +6,6 @@ steps: build: commit: "${BUILDKITE_COMMIT}" branch: "${BUILDKITE_BRANCH}" - - - wait - - - label: ":webhook: Trigger Travis CI Build" - command: - - "./.cicd/travis/trigger-travis.sh" - agents: - queue: "automation-basic-builder-fleet" - wait diff --git a/.cicd/travis/travis-build.sh b/.cicd/travis/travis-build.sh index 48081e22e89..b8ab4ab5208 100755 --- a/.cicd/travis/travis-build.sh +++ b/.cicd/travis/travis-build.sh @@ -4,6 +4,7 @@ ROOT_DIR=$(pwd) cd $( dirname "${BASH_SOURCE[0]}" )/.. # Ensure we're in the .cicd dir . ./.helpers cd $ROOT_DIR +export JOBS="$(getconf _NPROCESSORS_ONLN)" if [[ "$(uname)" == Darwin ]]; then . ./.cicd/docker/.logging-helpers fold-execute ccache -s diff --git a/.travis.yml b/.travis.yml index 3e1482340a5..f82127a58c0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,9 +5,6 @@ cache: ccache: true directories: - $HOME/Library/Caches/Homebrew -env: - global: - - JOBS='$(getconf _NPROCESSORS_ONLN)' if: fork = true OR type = api matrix: include: From 1cd394f32144c8c40c11af4a6a4e4ba95628a149 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Mon, 5 Aug 2019 16:12:24 -0400 Subject: [PATCH 192/528] Added trigger step for eosio-installation-images. --- .cicd/pipeline.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 51b89c66b1d..43a651a941d 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -103,6 +103,15 @@ steps: soft_fail: true - wait + + - trigger: "eosio-installation-images" + label: ":docker: Start EOS Installation Pipeline" + build: + commit: "${BUILDKITE_COMMIT}" + branch: "${BUILDKITE_BRANCH}" + async: true + + - wait - label: ":centos: Centos 7.6 - Package Builder" command: From 93ead2a846d715dc1d2e614a6161a1d467901820 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Mon, 5 Aug 2019 16:12:44 -0400 Subject: [PATCH 193/528] Added new pipeline file for eosio-installation-images. --- .cicd/eosio-installation-images.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .cicd/eosio-installation-images.yml diff --git a/.cicd/eosio-installation-images.yml b/.cicd/eosio-installation-images.yml new file mode 100644 index 00000000000..44280dfaa7a --- /dev/null +++ b/.cicd/eosio-installation-images.yml @@ -0,0 +1,9 @@ +steps: + + - label: ":ubuntu: Ubuntu 18.04 - Build" + command: + - echo "Got Here." + agents: + queue: "automation-eos-builder-fleet" + timeout: $BUILD_TIMEOUT + skip: $SKIP_UBUNTU_18 \ No newline at end of file From 8b4ac93150eeca64f2a700db40c93b050ce39cd1 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Mon, 5 Aug 2019 16:13:45 -0400 Subject: [PATCH 194/528] Disable builds other than U18 for testing. --- .cicd/pipeline.yml | 262 ++++++++++++++++++++++----------------------- 1 file changed, 131 insertions(+), 131 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 43a651a941d..609cb5465cd 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -9,47 +9,47 @@ steps: - wait - - label: ":aws: Amazon_Linux 2.0 - Build & Test" - agents: - queue: "automation-eos-builder-fleet" - plugins: - - docker#v3.2.0: - debug: $DEBUG - image: "eosio/producer:eosio-amazonlinux-2-2f50b90dc0587a1bb96f8001891fc54efc81b11e" - environment: - - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - - "JOBS" # Number for -j make/ctest args. - mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + # - label: ":aws: Amazon_Linux 2.0 - Build & Test" + # agents: + # queue: "automation-eos-builder-fleet" + # plugins: + # - docker#v3.2.0: + # debug: $DEBUG + # image: "eosio/producer:eosio-amazonlinux-2-2f50b90dc0587a1bb96f8001891fc54efc81b11e" + # environment: + # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + # - "JOBS" # Number for -j make/ctest args. + # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - - label: ":centos: CentOS 7.6 - Build & Test" - command: - - "" - agents: - queue: "automation-eos-builder-fleet" - plugins: - - docker#v3.2.0: - debug: true - image: "eosio/producer:eosio-centos-7.6-3d1cc1fb9f1681a5d8dc0b2e6425407c37d8fff6" - environment: - # - "ENABLE_LR_TESTS=true" - - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - - "JOBS" # Number for -j make/ctest args. - mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + # - label: ":centos: CentOS 7.6 - Build & Test" + # command: + # - "" + # agents: + # queue: "automation-eos-builder-fleet" + # plugins: + # - docker#v3.2.0: + # debug: true + # image: "eosio/producer:eosio-centos-7.6-3d1cc1fb9f1681a5d8dc0b2e6425407c37d8fff6" + # environment: + # # - "ENABLE_LR_TESTS=true" + # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + # - "JOBS" # Number for -j make/ctest args. + # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - - label: ":ubuntu: Ubuntu 16.04 - Build & Test" - agents: - queue: "automation-eos-builder-fleet" - plugins: - - docker#v3.2.0: - debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-16.04-1837c2968d507ca2d73ab0ae8963c9dbb4275048" - environment: - - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - - "JOBS" # Number for -j make/ctest args. - mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + # - label: ":ubuntu: Ubuntu 16.04 - Build & Test" + # agents: + # queue: "automation-eos-builder-fleet" + # plugins: + # - docker#v3.2.0: + # debug: $DEBUG + # image: "eosio/producer:eosio-ubuntu-16.04-1837c2968d507ca2d73ab0ae8963c9dbb4275048" + # environment: + # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + # - "JOBS" # Number for -j make/ctest args. + # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - label: ":ubuntu: Ubuntu 18.04 - Build & Test" agents: @@ -64,29 +64,29 @@ steps: mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - - label: ":darwin: macOS 10.14 - Build & Test" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && mkdir -p build && cd build && cmake .." - - "cd eos/build && make -j$(getconf _NPROCESSORS_ONLN)" - - "if ${ENABLE_PARALLEL_TESTS:-true}; then cd eos/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test; fi" - - "if ${ENABLE_SERIAL_TESTS:-true}; then cd eos/build && mkdir -p ./mongodb && mongod --dbpath ./mongodb --fork --logpath mongod.log && ctest -L nonparallelizable_tests --output-on-failure -T Test; fi" - - "if ${ENABLE_LR_TESTS:-false}; then cd eos/build && ctest -L long_running_tests --output-on-failure -T Test; fi" - - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - modify-cpu: 12 - modify-ram: 24 - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-large-node-fleet" + # - label: ":darwin: macOS 10.14 - Build & Test" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && mkdir -p build && cd build && cmake .." + # - "cd eos/build && make -j$(getconf _NPROCESSORS_ONLN)" + # - "if ${ENABLE_PARALLEL_TESTS:-true}; then cd eos/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test; fi" + # - "if ${ENABLE_SERIAL_TESTS:-true}; then cd eos/build && mkdir -p ./mongodb && mongod --dbpath ./mongodb --fork --logpath mongod.log && ctest -L nonparallelizable_tests --output-on-failure -T Test; fi" + # - "if ${ENABLE_LR_TESTS:-false}; then cd eos/build && ctest -L long_running_tests --output-on-failure -T Test; fi" + # - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # modify-cpu: 12 + # modify-ram: 24 + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-large-node-fleet" - wait: continue_on_failure: true @@ -111,77 +111,77 @@ steps: branch: "${BUILDKITE_BRANCH}" async: true - - wait + # - wait - - label: ":centos: Centos 7.6 - Package Builder" - command: - - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package-builder.sh" - plugins: - - docker#v3.2.0: - debug: true - image: "eosio/producer:eosio-centos-7.6-3d1cc1fb9f1681a5d8dc0b2e6425407c37d8fff6" - environment: - - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - agents: - queue: "automation-eos-builder-fleet" - timeout: 10 + # - label: ":centos: Centos 7.6 - Package Builder" + # command: + # - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + # - "./.cicd/package-builder.sh" + # plugins: + # - docker#v3.2.0: + # debug: true + # image: "eosio/producer:eosio-centos-7.6-3d1cc1fb9f1681a5d8dc0b2e6425407c37d8fff6" + # environment: + # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: 10 - - label: ":ubuntu: Ubuntu 16.04 - Package Builder" - command: - - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package-builder.sh" - plugins: - - docker#v3.2.0: - debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-16.04-1837c2968d507ca2d73ab0ae8963c9dbb4275048" - environment: - - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - agents: - queue: "automation-eos-builder-fleet" - timeout: 10 + # - label: ":ubuntu: Ubuntu 16.04 - Package Builder" + # command: + # - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + # - "./.cicd/package-builder.sh" + # plugins: + # - docker#v3.2.0: + # debug: $DEBUG + # image: "eosio/producer:eosio-ubuntu-16.04-1837c2968d507ca2d73ab0ae8963c9dbb4275048" + # environment: + # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: 10 - - label: ":ubuntu: Ubuntu 18.04 - Package Builder" - command: - - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package-builder.sh" - plugins: - - docker#v3.2.0: - debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-18.04-ccb89fe03979636296d4999e09ce8a49a23e3059" - environment: - - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - agents: - queue: "automation-eos-builder-fleet" - timeout: 10 + # - label: ":ubuntu: Ubuntu 18.04 - Package Builder" + # command: + # - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + # - "./.cicd/package-builder.sh" + # plugins: + # - docker#v3.2.0: + # debug: $DEBUG + # image: "eosio/producer:eosio-ubuntu-18.04-ccb89fe03979636296d4999e09ce8a49a23e3059" + # environment: + # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: 10 - - label: ":darwin: Mojave - Package Builder" - command: - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build & Test' && tar -xzf build.tar.gz" - - "cd eos && ./.cicd/package-builder.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-node-fleet" - timeout: 10 + # - label: ":darwin: Mojave - Package Builder" + # command: + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" + # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build & Test' && tar -xzf build.tar.gz" + # - "cd eos && ./.cicd/package-builder.sh" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-node-fleet" + # timeout: 10 - - label: ":git: Git Submodule Regression Check" - command: - - "./.cicd/submodule-regression-checker.sh" - agents: - queue: "automation-basic-builder-fleet" - timeout: 5 \ No newline at end of file + # - label: ":git: Git Submodule Regression Check" + # command: + # - "./.cicd/submodule-regression-checker.sh" + # agents: + # queue: "automation-basic-builder-fleet" + # timeout: 5 \ No newline at end of file From 54dfc1b9362c91949bd794d3434bb0b6dcfb931a Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 09:26:25 -0400 Subject: [PATCH 195/528] Testing new pipeline with build. Added new flag to install EOS in docker image. --- .cicd/docker/ubuntu-18.04.dockerfile | 3 ++- .cicd/eosio-installation-images.yml | 4 +++- .cicd/installation-build.sh | 7 +++++++ 3 files changed, 12 insertions(+), 2 deletions(-) create mode 100755 .cicd/installation-build.sh diff --git a/.cicd/docker/ubuntu-18.04.dockerfile b/.cicd/docker/ubuntu-18.04.dockerfile index f636153066a..d3686d587fa 100644 --- a/.cicd/docker/ubuntu-18.04.dockerfile +++ b/.cicd/docker/ubuntu-18.04.dockerfile @@ -78,4 +78,5 @@ CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test; fi && \ if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi && \ - if ! ${TRAVIS:-false}; then cd .. && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi" + if ! ${TRAVIS:-false}; then cd .. && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi && \ + if ${ENABLE_INSTALL:-false}; then fold-execute make install && nodeos --version; fi" diff --git a/.cicd/eosio-installation-images.yml b/.cicd/eosio-installation-images.yml index 44280dfaa7a..f5c2f527dcc 100644 --- a/.cicd/eosio-installation-images.yml +++ b/.cicd/eosio-installation-images.yml @@ -2,7 +2,9 @@ steps: - label: ":ubuntu: Ubuntu 18.04 - Build" command: - - echo "Got Here." + - bash ./.cicd/installation-build.sh" + env: + IMAGE_TAG: "ubuntu-18.04" agents: queue: "automation-eos-builder-fleet" timeout: $BUILD_TIMEOUT diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh new file mode 100755 index 00000000000..d399068252c --- /dev/null +++ b/.cicd/installation-build.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +set -eo pipefail +. ./.helpers + +./.cicd/generate-base-images.sh + +docker run -v $(pwd):/workdir -e JOBS -e $FULL_TAG From 139313ef564ebe430c5535c20159d4ff2ed2154b Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 09:29:43 -0400 Subject: [PATCH 196/528] Update hash. --- .cicd/pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 609cb5465cd..b63c7ac51f5 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -57,7 +57,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-18.04-ccb89fe03979636296d4999e09ce8a49a23e3059" + image: "eosio/producer:eosio-ubuntu-18.04-95fbfd396e289938076c9182f208f83c0ed5cbc5" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - "JOBS" # Number for -j make/ctest args. From b66e8ab30cb233e201406e5f098df969a63bcb03 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 09:39:48 -0400 Subject: [PATCH 197/528] Use execute and remove generate-base-images. --- .cicd/installation-build.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh index d399068252c..d6c10ccf267 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/installation-build.sh @@ -2,6 +2,4 @@ set -eo pipefail . ./.helpers -./.cicd/generate-base-images.sh - -docker run -v $(pwd):/workdir -e JOBS -e $FULL_TAG +execute docker run -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true -e $FULL_TAG From 87a1f10ea33dc6e2776f68cada735d2252b27342 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 10:07:06 -0400 Subject: [PATCH 198/528] Disable EOS builds while ensuring trigger is working properly. --- .cicd/pipeline.yml | 48 +++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index b63c7ac51f5..ea6f9f8d018 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -51,18 +51,18 @@ steps: # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - - label: ":ubuntu: Ubuntu 18.04 - Build & Test" - agents: - queue: "automation-eos-builder-fleet" - plugins: - - docker#v3.2.0: - debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-18.04-95fbfd396e289938076c9182f208f83c0ed5cbc5" - environment: - - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - - "JOBS" # Number for -j make/ctest args. - mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + # - label: ":ubuntu: Ubuntu 18.04 - Build & Test" + # agents: + # queue: "automation-eos-builder-fleet" + # plugins: + # - docker#v3.2.0: + # debug: $DEBUG + # image: "eosio/producer:eosio-ubuntu-18.04-95fbfd396e289938076c9182f208f83c0ed5cbc5" + # environment: + # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + # - "JOBS" # Number for -j make/ctest args. + # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) # - label: ":darwin: macOS 10.14 - Build & Test" # command: @@ -88,19 +88,19 @@ steps: # agents: # - "queue=mac-anka-large-node-fleet" - - wait: - continue_on_failure: true + # - wait: + # continue_on_failure: true - - command: | - echo '+++ :compression: Extracting Test Metrics Code' - tar -zxf .cicd/metrics/test-metrics.tar.gz - echo '+++ :javascript: Running test-metrics.js' - node --max-old-space-size=32768 test-metrics.js - label: ":bar_chart: Test Metrics" - agents: - queue: "automation-eos-builder-fleet" - timeout: 10 - soft_fail: true + # - command: | + # echo '+++ :compression: Extracting Test Metrics Code' + # tar -zxf .cicd/metrics/test-metrics.tar.gz + # echo '+++ :javascript: Running test-metrics.js' + # node --max-old-space-size=32768 test-metrics.js + # label: ":bar_chart: Test Metrics" + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: 10 + # soft_fail: true - wait From a11aaea7563a35f43540a4bd3f15acde27fd0566 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 10:23:16 -0400 Subject: [PATCH 199/528] Debugging. --- .cicd/installation-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh index d6c10ccf267..479a88f47ce 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/installation-build.sh @@ -2,4 +2,4 @@ set -eo pipefail . ./.helpers -execute docker run -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true -e $FULL_TAG +execute docker run -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true $FULL_TAG From 685b964decd9199c9816cbbc21d5a4ca50e78526 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 10:26:18 -0400 Subject: [PATCH 200/528] Removed extra quote. --- .cicd/eosio-installation-images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/eosio-installation-images.yml b/.cicd/eosio-installation-images.yml index f5c2f527dcc..60670912d47 100644 --- a/.cicd/eosio-installation-images.yml +++ b/.cicd/eosio-installation-images.yml @@ -2,7 +2,7 @@ steps: - label: ":ubuntu: Ubuntu 18.04 - Build" command: - - bash ./.cicd/installation-build.sh" + - bash ./.cicd/installation-build.sh env: IMAGE_TAG: "ubuntu-18.04" agents: From 2bb2372101668d0c21f05495c3860d545cc10172 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 10:29:12 -0400 Subject: [PATCH 201/528] Debugging. --- .cicd/eosio-installation-images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/eosio-installation-images.yml b/.cicd/eosio-installation-images.yml index 60670912d47..d26e0b4c0b4 100644 --- a/.cicd/eosio-installation-images.yml +++ b/.cicd/eosio-installation-images.yml @@ -2,7 +2,7 @@ steps: - label: ":ubuntu: Ubuntu 18.04 - Build" command: - - bash ./.cicd/installation-build.sh + - cd ./.cicd && bash ./.cicd/installation-build.sh env: IMAGE_TAG: "ubuntu-18.04" agents: From a4ecb872a89669ee0be26e6ef8dbfaf886fa69b1 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 10:33:12 -0400 Subject: [PATCH 202/528] Debugging. --- .cicd/eosio-installation-images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/eosio-installation-images.yml b/.cicd/eosio-installation-images.yml index d26e0b4c0b4..ed45cc5a499 100644 --- a/.cicd/eosio-installation-images.yml +++ b/.cicd/eosio-installation-images.yml @@ -2,7 +2,7 @@ steps: - label: ":ubuntu: Ubuntu 18.04 - Build" command: - - cd ./.cicd && bash ./.cicd/installation-build.sh + - cd ./.cicd && bash ./installation-build.sh env: IMAGE_TAG: "ubuntu-18.04" agents: From 1f84a17aa513fe133b5d435e6b672c8ba5b4f999 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 10:44:51 -0400 Subject: [PATCH 203/528] Debugging. --- .cicd/installation-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh index 479a88f47ce..e8a44b135ce 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/installation-build.sh @@ -2,4 +2,4 @@ set -eo pipefail . ./.helpers -execute docker run -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true $FULL_TAG +execute docker run -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true $FULL_TAG bash -c "pwd && ls -la" From 0f11c6bef09137c86d0639ba7a33f7fec74bfb3c Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 10:50:02 -0400 Subject: [PATCH 204/528] Debugging. --- .cicd/installation-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh index e8a44b135ce..1e2ab8fcab7 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/installation-build.sh @@ -2,4 +2,4 @@ set -eo pipefail . ./.helpers -execute docker run -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true $FULL_TAG bash -c "pwd && ls -la" +execute docker run -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true $FULL_TAG bash -c "pwd && ls -la /workdir" From 038598da49584abc651b88a6b33323e465231cae Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 11:05:50 -0400 Subject: [PATCH 205/528] Debugging. --- .cicd/installation-build.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh index 1e2ab8fcab7..c1c8c511b82 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/installation-build.sh @@ -2,4 +2,5 @@ set -eo pipefail . ./.helpers -execute docker run -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true $FULL_TAG bash -c "pwd && ls -la /workdir" +cd .. +execute docker run -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true $FULL_TAG From 444a472170b364fc9d0021f89f58d16f4ef57a97 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 11:35:40 -0400 Subject: [PATCH 206/528] Added flags to disable tests and uploads. --- .cicd/installation-build.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh index c1c8c511b82..e7e72923c54 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/installation-build.sh @@ -3,4 +3,8 @@ set -eo pipefail . ./.helpers cd .. -execute docker run -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true $FULL_TAG +execute docker run --name eos-binaries -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true -e ENABLE_PARALLEL_TESTS=false -e ENABLE_SERIAL_TESTS=false -e TRAVIS=true $FULL_TAG + +docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD +docker tag eos-binaries eosio/producer:eos-binaries-$HASHED_IMAGE_TAG +docker push eosio/producer:eos-binaries-$HASHED_IMAGE_TAG From e1d37c2d543cff8b183b5872968396c4c33cdb0e Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 12:52:40 -0400 Subject: [PATCH 207/528] Added function to determine EOS version. --- .cicd/.helpers | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.cicd/.helpers b/.cicd/.helpers index f673c763542..e69d03461e5 100644 --- a/.cicd/.helpers +++ b/.cicd/.helpers @@ -37,6 +37,13 @@ function docker_tag_exists() { ( [[ $EXISTS =~ '404 page not found' ]] || [[ $EXISTS =~ 'manifest unknown' ]] ) && return 1 || return 0 } +function determine_eos_version() { + export EOSIO_VERSION_MAJOR=$(cat /workdir/CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_MAJOR" | tail -1 | sed 's/.*VERSION_MAJOR //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) + export EOSIO_VERSION_MINOR=$(cat /workdir/CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_MINOR" | tail -1 | sed 's/.*VERSION_MINOR //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) + export EOSIO_VERSION_PATCH=$(cat /workdir/CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_PATCH" | tail -1 | sed 's/.*VERSION_PATCH //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) + export EOSIO_VERSION_SUFFIX=$(cat /workdir/CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_SUFFIX" | tail -1 | sed 's/.*VERSION_SUFFIX //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) +} + if [[ ! -z $IMAGE_TAG ]]; then # Darwin doesn't need hash (yet) determine-hash "docker/${IMAGE_TAG}.dockerfile" [[ -z $DETERMINED_HASH ]] && echo "DETERMINED_HASH empty! (check determine-hash function)" && exit 1 From bc0b84366f12260d652576220d3482d0a5f9204a Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 12:52:54 -0400 Subject: [PATCH 208/528] Removed nodeos command. --- .cicd/docker/ubuntu-18.04.dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/docker/ubuntu-18.04.dockerfile b/.cicd/docker/ubuntu-18.04.dockerfile index d3686d587fa..66e3b174475 100644 --- a/.cicd/docker/ubuntu-18.04.dockerfile +++ b/.cicd/docker/ubuntu-18.04.dockerfile @@ -79,4 +79,4 @@ CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi && \ if ! ${TRAVIS:-false}; then cd .. && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi && \ - if ${ENABLE_INSTALL:-false}; then fold-execute make install && nodeos --version; fi" + if ${ENABLE_INSTALL:-false}; then fold-execute make install; fi" From ef49909f8a5ba0053eaf1171d23b409c98973e12 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 12:53:09 -0400 Subject: [PATCH 209/528] Added tags and push commands. --- .cicd/installation-build.sh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh index e7e72923c54..2ccef72f4c9 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/installation-build.sh @@ -2,9 +2,16 @@ set -eo pipefail . ./.helpers +# TODO: Add if statement to gate this only running on release/ , develop , and master $BUILDKITE_BRANCH. cd .. +determine_eos_version execute docker run --name eos-binaries -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true -e ENABLE_PARALLEL_TESTS=false -e ENABLE_SERIAL_TESTS=false -e TRAVIS=true $FULL_TAG +export BINARIES_TAG_HASH="eosio/eos-binaries-$BUILDKITE_BRANCH-$EOSIO_VERSION_MAJOR.$EOSIO_VERSION_MINOR.$EOSIO_VERSION_PATCH:$BUILDKITE_COMMIT" +export BINARIES_TAG_LATEST="eosio/eos-binaries-$BUILDKITE_BRANCH-$EOSIO_VERSION_MAJOR.$EOSIO_VERSION_MINOR.$EOSIO_VERSION_PATCH:latest" docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD -docker tag eos-binaries eosio/producer:eos-binaries-$HASHED_IMAGE_TAG -docker push eosio/producer:eos-binaries-$HASHED_IMAGE_TAG +docker tag eos-binaries $BINARIES_TAG_HASH +docker tag eos-binaries $BINARIES_TAG_LATEST +docker push $BINARIES_TAG_HASH +docker push $BINARIES_TAG_LATEST + From 2b7ad3ac0b555debba4e312a7b8cd377d14f7c1d Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 12:55:46 -0400 Subject: [PATCH 210/528] Updated hash. Changed tagging. --- .cicd/installation-build.sh | 10 ++++------ .cicd/pipeline.yml | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh index 2ccef72f4c9..b94235dbb3e 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/installation-build.sh @@ -7,11 +7,9 @@ cd .. determine_eos_version execute docker run --name eos-binaries -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true -e ENABLE_PARALLEL_TESTS=false -e ENABLE_SERIAL_TESTS=false -e TRAVIS=true $FULL_TAG -export BINARIES_TAG_HASH="eosio/eos-binaries-$BUILDKITE_BRANCH-$EOSIO_VERSION_MAJOR.$EOSIO_VERSION_MINOR.$EOSIO_VERSION_PATCH:$BUILDKITE_COMMIT" -export BINARIES_TAG_LATEST="eosio/eos-binaries-$BUILDKITE_BRANCH-$EOSIO_VERSION_MAJOR.$EOSIO_VERSION_MINOR.$EOSIO_VERSION_PATCH:latest" +export EOS_BINARIES_TAG="eosio/eos-binaries-$BUILDKITE_BRANCH-$EOSIO_VERSION_MAJOR.$EOSIO_VERSION_MINOR.$EOSIO_VERSION_PATCH" docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD -docker tag eos-binaries $BINARIES_TAG_HASH -docker tag eos-binaries $BINARIES_TAG_LATEST -docker push $BINARIES_TAG_HASH -docker push $BINARIES_TAG_LATEST +docker tag eos-binaries $EOS_BINARIES_TAG +docker push $EOS_BINARIES_TAG +docker push $EOS_BINARIES_TAG:$BUILDKITE_COMMIT diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index ea6f9f8d018..3442f47c7cf 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -57,7 +57,7 @@ steps: # plugins: # - docker#v3.2.0: # debug: $DEBUG - # image: "eosio/producer:eosio-ubuntu-18.04-95fbfd396e289938076c9182f208f83c0ed5cbc5" + # image: "eosio/producer:eosio-ubuntu-18.04-b6f49042288158f36dfa668ac15300f6ed9750fb" # environment: # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download # - "JOBS" # Number for -j make/ctest args. From 4d8606ffd5ff4aa533cef970d9328a8bb8ace3ab Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 13:30:35 -0400 Subject: [PATCH 211/528] Changed tag. --- .cicd/installation-build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh index b94235dbb3e..1e7f8fca6c7 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/installation-build.sh @@ -7,9 +7,9 @@ cd .. determine_eos_version execute docker run --name eos-binaries -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true -e ENABLE_PARALLEL_TESTS=false -e ENABLE_SERIAL_TESTS=false -e TRAVIS=true $FULL_TAG -export EOS_BINARIES_TAG="eosio/eos-binaries-$BUILDKITE_BRANCH-$EOSIO_VERSION_MAJOR.$EOSIO_VERSION_MINOR.$EOSIO_VERSION_PATCH" +export EOS_BINARIES_TAG="eosio/producer:eos-binaries-$BUILDKITE_BRANCH-$EOSIO_VERSION_MAJOR.$EOSIO_VERSION_MINOR.$EOSIO_VERSION_PATCH" docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD docker tag eos-binaries $EOS_BINARIES_TAG docker push $EOS_BINARIES_TAG -docker push $EOS_BINARIES_TAG:$BUILDKITE_COMMIT +docker push $EOS_BINARIES_TAG-$BUILDKITE_COMMIT From dfecca3518c910c36651f9d32c7efe5dfaa35991 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 13:37:12 -0400 Subject: [PATCH 212/528] Ensure we stop and remove the container after pushing. --- .cicd/installation-build.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh index 1e7f8fca6c7..a21f7318b43 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/installation-build.sh @@ -5,7 +5,7 @@ set -eo pipefail # TODO: Add if statement to gate this only running on release/ , develop , and master $BUILDKITE_BRANCH. cd .. determine_eos_version -execute docker run --name eos-binaries -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true -e ENABLE_PARALLEL_TESTS=false -e ENABLE_SERIAL_TESTS=false -e TRAVIS=true $FULL_TAG +execute docker run --name eos-binaries-$BUILDKITE_COMMIT -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true -e ENABLE_PARALLEL_TESTS=false -e ENABLE_SERIAL_TESTS=false -e TRAVIS=true $FULL_TAG export EOS_BINARIES_TAG="eosio/producer:eos-binaries-$BUILDKITE_BRANCH-$EOSIO_VERSION_MAJOR.$EOSIO_VERSION_MINOR.$EOSIO_VERSION_PATCH" docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD @@ -13,3 +13,4 @@ docker tag eos-binaries $EOS_BINARIES_TAG docker push $EOS_BINARIES_TAG docker push $EOS_BINARIES_TAG-$BUILDKITE_COMMIT +docker stop eos-binaries-$BUILDKITE_COMMIT && docker rm eos-binaries-$BUILDKITE_COMMIT From ef7516fca90bea793d038a0fc141b31ba8ff7185 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 13:56:12 -0400 Subject: [PATCH 213/528] Fixed tagging. --- .cicd/installation-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh index a21f7318b43..b183330c028 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/installation-build.sh @@ -9,7 +9,7 @@ execute docker run --name eos-binaries-$BUILDKITE_COMMIT -v $(pwd):/workdir -e J export EOS_BINARIES_TAG="eosio/producer:eos-binaries-$BUILDKITE_BRANCH-$EOSIO_VERSION_MAJOR.$EOSIO_VERSION_MINOR.$EOSIO_VERSION_PATCH" docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD -docker tag eos-binaries $EOS_BINARIES_TAG +docker tag eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG docker push $EOS_BINARIES_TAG docker push $EOS_BINARIES_TAG-$BUILDKITE_COMMIT From 0fbed3644d62bcedc20a03ddce4dedbb5f64794f Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 14:17:03 -0400 Subject: [PATCH 214/528] Debugging. --- .cicd/installation-build.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh index b183330c028..2d766e2df4a 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/installation-build.sh @@ -5,10 +5,11 @@ set -eo pipefail # TODO: Add if statement to gate this only running on release/ , develop , and master $BUILDKITE_BRANCH. cd .. determine_eos_version -execute docker run --name eos-binaries-$BUILDKITE_COMMIT -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true -e ENABLE_PARALLEL_TESTS=false -e ENABLE_SERIAL_TESTS=false -e TRAVIS=true $FULL_TAG - export EOS_BINARIES_TAG="eosio/producer:eos-binaries-$BUILDKITE_BRANCH-$EOSIO_VERSION_MAJOR.$EOSIO_VERSION_MINOR.$EOSIO_VERSION_PATCH" docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD + +docker run --name eos-binaries-$BUILDKITE_COMMIT -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true -e ENABLE_PARALLEL_TESTS=false -e ENABLE_SERIAL_TESTS=false -e TRAVIS=true $FULL_TAG + docker tag eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG docker push $EOS_BINARIES_TAG docker push $EOS_BINARIES_TAG-$BUILDKITE_COMMIT From 1e23400078e7c1eae69a4e2359de6e3379e1efbb Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 14:27:13 -0400 Subject: [PATCH 215/528] Changes to determine_eos_version. --- .cicd/.helpers | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.cicd/.helpers b/.cicd/.helpers index e69d03461e5..3df22f4e6bf 100644 --- a/.cicd/.helpers +++ b/.cicd/.helpers @@ -38,10 +38,10 @@ function docker_tag_exists() { } function determine_eos_version() { - export EOSIO_VERSION_MAJOR=$(cat /workdir/CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_MAJOR" | tail -1 | sed 's/.*VERSION_MAJOR //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) - export EOSIO_VERSION_MINOR=$(cat /workdir/CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_MINOR" | tail -1 | sed 's/.*VERSION_MINOR //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) - export EOSIO_VERSION_PATCH=$(cat /workdir/CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_PATCH" | tail -1 | sed 's/.*VERSION_PATCH //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) - export EOSIO_VERSION_SUFFIX=$(cat /workdir/CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_SUFFIX" | tail -1 | sed 's/.*VERSION_SUFFIX //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) + export EOSIO_VERSION_MAJOR=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_MAJOR" | tail -1 | sed 's/.*VERSION_MAJOR //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) + export EOSIO_VERSION_MINOR=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_MINOR" | tail -1 | sed 's/.*VERSION_MINOR //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) + export EOSIO_VERSION_PATCH=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_PATCH" | tail -1 | sed 's/.*VERSION_PATCH //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) + export EOSIO_VERSION_SUFFIX=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_SUFFIX" | tail -1 | sed 's/.*VERSION_SUFFIX //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) } if [[ ! -z $IMAGE_TAG ]]; then # Darwin doesn't need hash (yet) From 250e92b32a094d5e3ebfea2a814f9c070fe8155f Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 15:09:22 -0400 Subject: [PATCH 216/528] Use docker commit. --- .cicd/installation-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh index 2d766e2df4a..74c34190867 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/installation-build.sh @@ -10,7 +10,7 @@ docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD docker run --name eos-binaries-$BUILDKITE_COMMIT -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true -e ENABLE_PARALLEL_TESTS=false -e ENABLE_SERIAL_TESTS=false -e TRAVIS=true $FULL_TAG -docker tag eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG +docker commit eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG docker push $EOS_BINARIES_TAG docker push $EOS_BINARIES_TAG-$BUILDKITE_COMMIT From 2e2289f0b10b86219fdb25685ce5b18d82f9701f Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 15:24:47 -0400 Subject: [PATCH 217/528] Tag on commit as well. --- .cicd/installation-build.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh index 74c34190867..43a40c088fb 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/installation-build.sh @@ -11,6 +11,7 @@ docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD docker run --name eos-binaries-$BUILDKITE_COMMIT -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true -e ENABLE_PARALLEL_TESTS=false -e ENABLE_SERIAL_TESTS=false -e TRAVIS=true $FULL_TAG docker commit eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG +docker commit eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG-$BUILDKITE_COMMIT docker push $EOS_BINARIES_TAG docker push $EOS_BINARIES_TAG-$BUILDKITE_COMMIT From 276265af1a3127b2641ae336271b661cff140dcb Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 16:40:59 -0400 Subject: [PATCH 218/528] Added logic to gate building docker images. --- .cicd/installation-build.sh | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh index 43a40c088fb..bc97178070a 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/installation-build.sh @@ -2,17 +2,18 @@ set -eo pipefail . ./.helpers -# TODO: Add if statement to gate this only running on release/ , develop , and master $BUILDKITE_BRANCH. -cd .. -determine_eos_version -export EOS_BINARIES_TAG="eosio/producer:eos-binaries-$BUILDKITE_BRANCH-$EOSIO_VERSION_MAJOR.$EOSIO_VERSION_MINOR.$EOSIO_VERSION_PATCH" -docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD - -docker run --name eos-binaries-$BUILDKITE_COMMIT -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true -e ENABLE_PARALLEL_TESTS=false -e ENABLE_SERIAL_TESTS=false -e TRAVIS=true $FULL_TAG - -docker commit eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG -docker commit eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG-$BUILDKITE_COMMIT -docker push $EOS_BINARIES_TAG -docker push $EOS_BINARIES_TAG-$BUILDKITE_COMMIT - -docker stop eos-binaries-$BUILDKITE_COMMIT && docker rm eos-binaries-$BUILDKITE_COMMIT +if [[ $BUILDKITE_BRANCH =~ ^"release/" || $BUILDKITE_BRANCH =~ ^"master"$ || $BUILDKITE_BRANCH =~ ^"develop"$ || $FORCE_BINARIES_BUILD == true ]]; then + cd .. + determine_eos_version + export EOS_BINARIES_TAG="eosio/producer:eos-binaries-$BUILDKITE_BRANCH-$EOSIO_VERSION_MAJOR.$EOSIO_VERSION_MINOR.$EOSIO_VERSION_PATCH" + docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD + docker run --name eos-binaries-$BUILDKITE_COMMIT -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true -e ENABLE_PARALLEL_TESTS=false -e ENABLE_SERIAL_TESTS=false -e TRAVIS=true $FULL_TAG + docker commit eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG + docker commit eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG-$BUILDKITE_COMMIT + docker push $EOS_BINARIES_TAG + docker push $EOS_BINARIES_TAG-$BUILDKITE_COMMIT + docker stop eos-binaries-$BUILDKITE_COMMIT && docker rm eos-binaries-$BUILDKITE_COMMIT +else + echo "This pipeline will only generate images against master, develop, and release branches. Exiting..." + exit 0 +fi From 78eb1041be87a14094be7564e950cddfedef8eb8 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 16:44:51 -0400 Subject: [PATCH 219/528] Pass env to control builds to triggered build. --- .cicd/pipeline.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 3442f47c7cf..a5abd06f306 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -109,6 +109,8 @@ steps: build: commit: "${BUILDKITE_COMMIT}" branch: "${BUILDKITE_BRANCH}" + env: + FORCE_BINARIES_BUILD: "${FORCE_BINARIES_BUILD}" async: true # - wait From 0d5e0ef81d61b8bd0a49e71b681ed87cee7e922b Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 16:50:52 -0400 Subject: [PATCH 220/528] Updated regex. --- .cicd/installation-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh index bc97178070a..8e0bca14f23 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/installation-build.sh @@ -2,7 +2,7 @@ set -eo pipefail . ./.helpers -if [[ $BUILDKITE_BRANCH =~ ^"release/" || $BUILDKITE_BRANCH =~ ^"master"$ || $BUILDKITE_BRANCH =~ ^"develop"$ || $FORCE_BINARIES_BUILD == true ]]; then +if [[ $BUILDKITE_BRANCH =~ ^release/[0-9].[0-9]+.x$ || $BUILDKITE_BRANCH =~ ^master$ || $BUILDKITE_BRANCH =~ ^develop$ || $FORCE_BINARIES_BUILD == true ]]; then cd .. determine_eos_version export EOS_BINARIES_TAG="eosio/producer:eos-binaries-$BUILDKITE_BRANCH-$EOSIO_VERSION_MAJOR.$EOSIO_VERSION_MINOR.$EOSIO_VERSION_PATCH" From c00bf047d29a188806fba877e5fed08b6d8fe984 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 6 Aug 2019 16:59:47 -0400 Subject: [PATCH 221/528] Re-enable entire pipeline. --- .cicd/pipeline.yml | 310 ++++++++++++++++++++++----------------------- 1 file changed, 155 insertions(+), 155 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index a5abd06f306..9a0e3c6a03e 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -9,98 +9,98 @@ steps: - wait - # - label: ":aws: Amazon_Linux 2.0 - Build & Test" - # agents: - # queue: "automation-eos-builder-fleet" - # plugins: - # - docker#v3.2.0: - # debug: $DEBUG - # image: "eosio/producer:eosio-amazonlinux-2-2f50b90dc0587a1bb96f8001891fc54efc81b11e" - # environment: - # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - # - "JOBS" # Number for -j make/ctest args. - # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + - label: ":aws: Amazon_Linux 2.0 - Build & Test" + agents: + queue: "automation-eos-builder-fleet" + plugins: + - docker#v3.2.0: + debug: $DEBUG + image: "eosio/producer:eosio-amazonlinux-2-2f50b90dc0587a1bb96f8001891fc54efc81b11e" + environment: + - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + - "JOBS" # Number for -j make/ctest args. + mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - # - label: ":centos: CentOS 7.6 - Build & Test" - # command: - # - "" - # agents: - # queue: "automation-eos-builder-fleet" - # plugins: - # - docker#v3.2.0: - # debug: true - # image: "eosio/producer:eosio-centos-7.6-3d1cc1fb9f1681a5d8dc0b2e6425407c37d8fff6" - # environment: - # # - "ENABLE_LR_TESTS=true" - # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - # - "JOBS" # Number for -j make/ctest args. - # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + - label: ":centos: CentOS 7.6 - Build & Test" + command: + - "" + agents: + queue: "automation-eos-builder-fleet" + plugins: + - docker#v3.2.0: + debug: true + image: "eosio/producer:eosio-centos-7.6-3d1cc1fb9f1681a5d8dc0b2e6425407c37d8fff6" + environment: + # - "ENABLE_LR_TESTS=true" + - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + - "JOBS" # Number for -j make/ctest args. + mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - # - label: ":ubuntu: Ubuntu 16.04 - Build & Test" - # agents: - # queue: "automation-eos-builder-fleet" - # plugins: - # - docker#v3.2.0: - # debug: $DEBUG - # image: "eosio/producer:eosio-ubuntu-16.04-1837c2968d507ca2d73ab0ae8963c9dbb4275048" - # environment: - # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - # - "JOBS" # Number for -j make/ctest args. - # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + - label: ":ubuntu: Ubuntu 16.04 - Build & Test" + agents: + queue: "automation-eos-builder-fleet" + plugins: + - docker#v3.2.0: + debug: $DEBUG + image: "eosio/producer:eosio-ubuntu-16.04-1837c2968d507ca2d73ab0ae8963c9dbb4275048" + environment: + - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + - "JOBS" # Number for -j make/ctest args. + mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - # - label: ":ubuntu: Ubuntu 18.04 - Build & Test" - # agents: - # queue: "automation-eos-builder-fleet" - # plugins: - # - docker#v3.2.0: - # debug: $DEBUG - # image: "eosio/producer:eosio-ubuntu-18.04-b6f49042288158f36dfa668ac15300f6ed9750fb" - # environment: - # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - # - "JOBS" # Number for -j make/ctest args. - # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + - label: ":ubuntu: Ubuntu 18.04 - Build & Test" + agents: + queue: "automation-eos-builder-fleet" + plugins: + - docker#v3.2.0: + debug: $DEBUG + image: "eosio/producer:eosio-ubuntu-18.04-b6f49042288158f36dfa668ac15300f6ed9750fb" + environment: + - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + - "JOBS" # Number for -j make/ctest args. + mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - # - label: ":darwin: macOS 10.14 - Build & Test" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && mkdir -p build && cd build && cmake .." - # - "cd eos/build && make -j$(getconf _NPROCESSORS_ONLN)" - # - "if ${ENABLE_PARALLEL_TESTS:-true}; then cd eos/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test; fi" - # - "if ${ENABLE_SERIAL_TESTS:-true}; then cd eos/build && mkdir -p ./mongodb && mongod --dbpath ./mongodb --fork --logpath mongod.log && ctest -L nonparallelizable_tests --output-on-failure -T Test; fi" - # - "if ${ENABLE_LR_TESTS:-false}; then cd eos/build && ctest -L long_running_tests --output-on-failure -T Test; fi" - # - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # modify-cpu: 12 - # modify-ram: 24 - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-large-node-fleet" + - label: ":darwin: macOS 10.14 - Build & Test" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && mkdir -p build && cd build && cmake .." + - "cd eos/build && make -j$(getconf _NPROCESSORS_ONLN)" + - "if ${ENABLE_PARALLEL_TESTS:-true}; then cd eos/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test; fi" + - "if ${ENABLE_SERIAL_TESTS:-true}; then cd eos/build && mkdir -p ./mongodb && mongod --dbpath ./mongodb --fork --logpath mongod.log && ctest -L nonparallelizable_tests --output-on-failure -T Test; fi" + - "if ${ENABLE_LR_TESTS:-false}; then cd eos/build && ctest -L long_running_tests --output-on-failure -T Test; fi" + - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + modify-cpu: 12 + modify-ram: 24 + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-large-node-fleet" - # - wait: - # continue_on_failure: true + - wait: + continue_on_failure: true - # - command: | - # echo '+++ :compression: Extracting Test Metrics Code' - # tar -zxf .cicd/metrics/test-metrics.tar.gz - # echo '+++ :javascript: Running test-metrics.js' - # node --max-old-space-size=32768 test-metrics.js - # label: ":bar_chart: Test Metrics" - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: 10 - # soft_fail: true + - command: | + echo '+++ :compression: Extracting Test Metrics Code' + tar -zxf .cicd/metrics/test-metrics.tar.gz + echo '+++ :javascript: Running test-metrics.js' + node --max-old-space-size=32768 test-metrics.js + label: ":bar_chart: Test Metrics" + agents: + queue: "automation-eos-builder-fleet" + timeout: 10 + soft_fail: true - wait @@ -113,77 +113,77 @@ steps: FORCE_BINARIES_BUILD: "${FORCE_BINARIES_BUILD}" async: true - # - wait + - wait - # - label: ":centos: Centos 7.6 - Package Builder" - # command: - # - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - # - "./.cicd/package-builder.sh" - # plugins: - # - docker#v3.2.0: - # debug: true - # image: "eosio/producer:eosio-centos-7.6-3d1cc1fb9f1681a5d8dc0b2e6425407c37d8fff6" - # environment: - # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: 10 + - label: ":centos: Centos 7.6 - Package Builder" + command: + - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "./.cicd/package-builder.sh" + plugins: + - docker#v3.2.0: + debug: true + image: "eosio/producer:eosio-centos-7.6-3d1cc1fb9f1681a5d8dc0b2e6425407c37d8fff6" + environment: + - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + agents: + queue: "automation-eos-builder-fleet" + timeout: 10 - # - label: ":ubuntu: Ubuntu 16.04 - Package Builder" - # command: - # - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - # - "./.cicd/package-builder.sh" - # plugins: - # - docker#v3.2.0: - # debug: $DEBUG - # image: "eosio/producer:eosio-ubuntu-16.04-1837c2968d507ca2d73ab0ae8963c9dbb4275048" - # environment: - # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: 10 + - label: ":ubuntu: Ubuntu 16.04 - Package Builder" + command: + - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "./.cicd/package-builder.sh" + plugins: + - docker#v3.2.0: + debug: $DEBUG + image: "eosio/producer:eosio-ubuntu-16.04-1837c2968d507ca2d73ab0ae8963c9dbb4275048" + environment: + - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + agents: + queue: "automation-eos-builder-fleet" + timeout: 10 - # - label: ":ubuntu: Ubuntu 18.04 - Package Builder" - # command: - # - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - # - "./.cicd/package-builder.sh" - # plugins: - # - docker#v3.2.0: - # debug: $DEBUG - # image: "eosio/producer:eosio-ubuntu-18.04-ccb89fe03979636296d4999e09ce8a49a23e3059" - # environment: - # - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - # mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - # propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: 10 + - label: ":ubuntu: Ubuntu 18.04 - Package Builder" + command: + - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "./.cicd/package-builder.sh" + plugins: + - docker#v3.2.0: + debug: $DEBUG + image: "eosio/producer:eosio-ubuntu-18.04-ccb89fe03979636296d4999e09ce8a49a23e3059" + environment: + - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download + mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it + propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + agents: + queue: "automation-eos-builder-fleet" + timeout: 10 - # - label: ":darwin: Mojave - Package Builder" - # command: - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" - # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build & Test' && tar -xzf build.tar.gz" - # - "cd eos && ./.cicd/package-builder.sh" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-node-fleet" - # timeout: 10 + - label: ":darwin: Mojave - Package Builder" + command: + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build & Test' && tar -xzf build.tar.gz" + - "cd eos && ./.cicd/package-builder.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-node-fleet" + timeout: 10 - # - label: ":git: Git Submodule Regression Check" - # command: - # - "./.cicd/submodule-regression-checker.sh" - # agents: - # queue: "automation-basic-builder-fleet" - # timeout: 5 \ No newline at end of file + - label: ":git: Git Submodule Regression Check" + command: + - "./.cicd/submodule-regression-checker.sh" + agents: + queue: "automation-basic-builder-fleet" + timeout: 5 \ No newline at end of file From 9edfb578769d6af3c76173b05f32f7d080d79ccf Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 7 Aug 2019 15:57:00 -0400 Subject: [PATCH 222/528] new hashes --- .cicd/docker/amazonlinux-2.dockerfile | 5 +++-- .cicd/docker/centos-7.6.dockerfile | 5 +++-- .cicd/docker/ubuntu-16.04.dockerfile | 5 +++-- .cicd/docker/ubuntu-18.04.dockerfile | 2 +- .cicd/pipeline.yml | 14 +++++++------- 5 files changed, 17 insertions(+), 14 deletions(-) diff --git a/.cicd/docker/amazonlinux-2.dockerfile b/.cicd/docker/amazonlinux-2.dockerfile index e56780c78f6..13fde939ef0 100644 --- a/.cicd/docker/amazonlinux-2.dockerfile +++ b/.cicd/docker/amazonlinux-2.dockerfile @@ -87,8 +87,9 @@ COPY ./docker/.logging-helpers /tmp/.helpers CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ fold-execute ccache -s && \ mkdir /workdir/build && cd /workdir/build && fold-execute cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && \ - fold-execute make -j$JOBS && \ + fold-execute make -j $JOBS && \ if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test; fi && \ if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi && \ - if ! ${TRAVIS:-false}; then cd .. && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi" + if ! ${TRAVIS:-false}; then cd .. && echo $(pkill mongod || :) && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi && \ + if ${ENABLE_INSTALL:-false}; then fold-execute make install; fi" diff --git a/.cicd/docker/centos-7.6.dockerfile b/.cicd/docker/centos-7.6.dockerfile index 76f3d1f83a1..d87503d1a4c 100644 --- a/.cicd/docker/centos-7.6.dockerfile +++ b/.cicd/docker/centos-7.6.dockerfile @@ -102,8 +102,9 @@ COPY ./docker/.logging-helpers /tmp/.helpers CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ fold-execute ccache -s && \ mkdir /workdir/build && cd /workdir/build && fold-execute cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && \ - fold-execute make -j$JOBS && \ + fold-execute make -j $JOBS && \ if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test; fi && \ if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi && \ - if ! ${TRAVIS:-false}; then cd .. && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi" + if ! ${TRAVIS:-false}; then cd .. && echo $(pkill mongod || :) && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi && \ + if ${ENABLE_INSTALL:-false}; then fold-execute make install; fi" diff --git a/.cicd/docker/ubuntu-16.04.dockerfile b/.cicd/docker/ubuntu-16.04.dockerfile index e8e96ff237c..326d9d48ef3 100644 --- a/.cicd/docker/ubuntu-16.04.dockerfile +++ b/.cicd/docker/ubuntu-16.04.dockerfile @@ -97,8 +97,9 @@ COPY ./docker/.logging-helpers /tmp/.helpers CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ fold-execute ccache -s && \ mkdir /workdir/build && cd /workdir/build && fold-execute cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && \ - fold-execute make -j$JOBS && \ + fold-execute make -j $JOBS && \ if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test; fi && \ if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi && \ - if ! ${TRAVIS:-false}; then cd .. && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi" \ No newline at end of file + if ! ${TRAVIS:-false}; then cd .. && echo $(pkill mongod || :) && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi && \ + if ${ENABLE_INSTALL:-false}; then fold-execute make install; fi" diff --git a/.cicd/docker/ubuntu-18.04.dockerfile b/.cicd/docker/ubuntu-18.04.dockerfile index 66e3b174475..9dce9e35cf3 100644 --- a/.cicd/docker/ubuntu-18.04.dockerfile +++ b/.cicd/docker/ubuntu-18.04.dockerfile @@ -78,5 +78,5 @@ CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test; fi && \ if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi && \ - if ! ${TRAVIS:-false}; then cd .. && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi && \ + if ! ${TRAVIS:-false}; then cd .. && echo $(pkill mongod || :) && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi && \ if ${ENABLE_INSTALL:-false}; then fold-execute make install; fi" diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 9a0e3c6a03e..aa8ca802b04 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -15,7 +15,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-amazonlinux-2-2f50b90dc0587a1bb96f8001891fc54efc81b11e" + image: "eosio/producer:eosio-amazonlinux-2-d89cfcba2c5002f7c79e5f2ea07d9f514b960fcd" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - "JOBS" # Number for -j make/ctest args. @@ -30,7 +30,7 @@ steps: plugins: - docker#v3.2.0: debug: true - image: "eosio/producer:eosio-centos-7.6-3d1cc1fb9f1681a5d8dc0b2e6425407c37d8fff6" + image: "eosio/producer:eosio-centos-7.6-8837beff70f9bb04717630bdeb3a29ff984ae985" environment: # - "ENABLE_LR_TESTS=true" - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download @@ -44,7 +44,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-16.04-1837c2968d507ca2d73ab0ae8963c9dbb4275048" + image: "eosio/producer:eosio-ubuntu-16.04-a86f678994109fd09a13468f9b8f5ebf10b48a6b" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - "JOBS" # Number for -j make/ctest args. @@ -57,7 +57,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-18.04-b6f49042288158f36dfa668ac15300f6ed9750fb" + image: "eosio/producer:eosio-ubuntu-18.04-d1248048f40158965ff9876c0c21ac728bb82da6" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - "JOBS" # Number for -j make/ctest args. @@ -122,7 +122,7 @@ steps: plugins: - docker#v3.2.0: debug: true - image: "eosio/producer:eosio-centos-7.6-3d1cc1fb9f1681a5d8dc0b2e6425407c37d8fff6" + image: "eosio/producer:eosio-centos-7.6-8837beff70f9bb04717630bdeb3a29ff984ae985" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it @@ -138,7 +138,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-16.04-1837c2968d507ca2d73ab0ae8963c9dbb4275048" + image: "eosio/producer:eosio-ubuntu-16.04-a86f678994109fd09a13468f9b8f5ebf10b48a6b" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it @@ -154,7 +154,7 @@ steps: plugins: - docker#v3.2.0: debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-18.04-ccb89fe03979636296d4999e09ce8a49a23e3059" + image: "eosio/producer:eosio-ubuntu-18.04-d1248048f40158965ff9876c0c21ac728bb82da6" environment: - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it From b9dde3789418b8c8e79e6390c271735c6f333db3 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 7 Aug 2019 16:01:01 -0400 Subject: [PATCH 223/528] mac --- .cicd/pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index aa8ca802b04..a03e13e96b5 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -73,7 +73,7 @@ steps: - "if ${ENABLE_PARALLEL_TESTS:-true}; then cd eos/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test; fi" - "if ${ENABLE_SERIAL_TESTS:-true}; then cd eos/build && mkdir -p ./mongodb && mongod --dbpath ./mongodb --fork --logpath mongod.log && ctest -L nonparallelizable_tests --output-on-failure -T Test; fi" - "if ${ENABLE_LR_TESTS:-false}; then cd eos/build && ctest -L long_running_tests --output-on-failure -T Test; fi" - - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + - "cd eos && echo $(pkill mongod || :) && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" plugins: - chef/anka#v0.5.1: no-volume: true From 61909e5659489f2797a643034f76c0fefe010125 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 8 Aug 2019 16:12:29 -0400 Subject: [PATCH 224/528] first few changes: cha cha cha changes! quick fix build dir mac ccache quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes quick fixes --- .cicd/.helpers | 51 ---- .cicd/docker/.logging-helpers | 8 - .cicd/docker/amazonlinux-2.dockerfile | 18 -- .cicd/docker/centos-7.6.dockerfile | 19 +- .cicd/docker/ubuntu-16.04.dockerfile | 28 +-- .cicd/docker/ubuntu-18.04.dockerfile | 20 +- .cicd/eosio-installation-images.yml | 4 +- .cicd/generate-base-images.sh | 21 +- .../clang.make} | 0 .cicd/helpers/docker-hash.sh | 24 ++ .cicd/helpers/execute.sh | 4 + .cicd/helpers/general.sh | 12 + .cicd/{ => helpers}/installation-build.sh | 6 +- .cicd/helpers/logging.sh | 8 + .cicd/{ => helpers}/package-builder.sh | 0 .../submodule-regression-checker.sh | 0 .cicd/pipeline.yml | 226 +++++++++++------- .cicd/run.sh | 91 +++++++ .cicd/travis/travis-build.sh | 19 -- .travis.yml | 3 +- mongod.log.2019-08-12T13-03-22 | 14 ++ test.sh | 7 + 22 files changed, 327 insertions(+), 256 deletions(-) delete mode 100644 .cicd/.helpers delete mode 100755 .cicd/docker/.logging-helpers rename .cicd/{docker/pinned_toolchain.cmake => helpers/clang.make} (100%) create mode 100644 .cicd/helpers/docker-hash.sh create mode 100644 .cicd/helpers/execute.sh create mode 100644 .cicd/helpers/general.sh rename .cicd/{ => helpers}/installation-build.sh (80%) create mode 100755 .cicd/helpers/logging.sh rename .cicd/{ => helpers}/package-builder.sh (100%) rename .cicd/{ => helpers}/submodule-regression-checker.sh (100%) create mode 100755 .cicd/run.sh delete mode 100755 .cicd/travis/travis-build.sh create mode 100644 mongod.log.2019-08-12T13-03-22 create mode 100755 test.sh diff --git a/.cicd/.helpers b/.cicd/.helpers deleted file mode 100644 index 3df22f4e6bf..00000000000 --- a/.cicd/.helpers +++ /dev/null @@ -1,51 +0,0 @@ -export PROJECT_NAME="eosio" - -# Set IMAGE_TAG using arg (generate-base-images.sh) or env (travis.yml) -export IMAGE_TAG=${IMAGE_TAG:-$1} - -function execute() { - echo "--- Executing: $@" - "$@" -} - -function determine-hash() { - # Determine the sha1 hash of all dockerfiles in the .cicd directory. - [[ -z $1 ]] && echo "Please provide the files to be hashed (wildcards supported)" && exit 1 - echo "Obtaining Hash of files from $1..." - # Collect all files, hash them, then hash those. - HASHES=() - for FILE in $(find $1 -type f); do - HASH=$(sha1sum $FILE | sha1sum | awk '{ print $1 }') - HASHES=($HASH "${HASHES[*]}") - echo "$FILE - $HASH" - done - export DETERMINED_HASH=$(echo ${HASHES[*]} | sha1sum | awk '{ print $1 }') - export HASHED_IMAGE_TAG="${IMAGE_TAG}-${DETERMINED_HASH}" -} - -function generate_docker_image() { - # If we cannot pull the image, we build and push it first. - docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD - docker build -t $FULL_TAG -f ./docker/${IMAGE_TAG}.dockerfile . - docker push $FULL_TAG -} - -function docker_tag_exists() { - ORG_REPO=$(echo $1 | cut -d: -f1) - TAG=$(echo $1 | cut -d: -f2) - EXISTS=$(curl -s -H "Authorization: Bearer $(curl -sSL "https://auth.docker.io/token?service=registry.docker.io&scope=repository:${ORG_REPO}:pull" | jq --raw-output .token)" "https://registry.hub.docker.com/v2/${ORG_REPO}/manifests/$TAG") - ( [[ $EXISTS =~ '404 page not found' ]] || [[ $EXISTS =~ 'manifest unknown' ]] ) && return 1 || return 0 -} - -function determine_eos_version() { - export EOSIO_VERSION_MAJOR=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_MAJOR" | tail -1 | sed 's/.*VERSION_MAJOR //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) - export EOSIO_VERSION_MINOR=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_MINOR" | tail -1 | sed 's/.*VERSION_MINOR //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) - export EOSIO_VERSION_PATCH=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_PATCH" | tail -1 | sed 's/.*VERSION_PATCH //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) - export EOSIO_VERSION_SUFFIX=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_SUFFIX" | tail -1 | sed 's/.*VERSION_SUFFIX //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) -} - -if [[ ! -z $IMAGE_TAG ]]; then # Darwin doesn't need hash (yet) - determine-hash "docker/${IMAGE_TAG}.dockerfile" - [[ -z $DETERMINED_HASH ]] && echo "DETERMINED_HASH empty! (check determine-hash function)" && exit 1 - export FULL_TAG="eosio/producer:${PROJECT_NAME}-$HASHED_IMAGE_TAG" -fi \ No newline at end of file diff --git a/.cicd/docker/.logging-helpers b/.cicd/docker/.logging-helpers deleted file mode 100755 index 4f9ff752367..00000000000 --- a/.cicd/docker/.logging-helpers +++ /dev/null @@ -1,8 +0,0 @@ -function fold-execute() { - ${TRAVIS:-false} && echo -en "travis_fold:start:$(echo $@)\r" || true - echo "--- Executing: $@" - "$@" - rcode=$? - [ $rcode -eq 0 ] || exit $rcode - ${TRAVIS:-false} && echo -en "travis_fold:end:$(echo $@)\r" || true -} \ No newline at end of file diff --git a/.cicd/docker/amazonlinux-2.dockerfile b/.cicd/docker/amazonlinux-2.dockerfile index 13fde939ef0..733e0c839bf 100644 --- a/.cicd/docker/amazonlinux-2.dockerfile +++ b/.cicd/docker/amazonlinux-2.dockerfile @@ -75,21 +75,3 @@ RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c # Install Buildkite Agent RUN echo -e "[buildkite-agent]\nname = Buildkite Pty Ltd\nbaseurl = https://yum.buildkite.com/buildkite-agent/stable/x86_64/\nenabled=1\ngpgcheck=0\npriority=1" > /etc/yum.repos.d/buildkite-agent.repo && \ yum -y install buildkite-agent - -# PRE_COMMANDS: Executed pre-cmake -# CMAKE_EXTRAS: Executed right before the cmake path (on the end) -ENV PRE_COMMANDS="export PATH=/usr/lib64/ccache:\$PATH" -ENV CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" - -# Bring in helpers that provides execute function so we can get better logging in BK and TRAV -COPY ./docker/.logging-helpers /tmp/.helpers - -CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ - fold-execute ccache -s && \ - mkdir /workdir/build && cd /workdir/build && fold-execute cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && \ - fold-execute make -j $JOBS && \ - if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test; fi && \ - if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ - if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi && \ - if ! ${TRAVIS:-false}; then cd .. && echo $(pkill mongod || :) && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi && \ - if ${ENABLE_INSTALL:-false}; then fold-execute make install; fi" diff --git a/.cicd/docker/centos-7.6.dockerfile b/.cicd/docker/centos-7.6.dockerfile index d87503d1a4c..3fc53792f98 100644 --- a/.cicd/docker/centos-7.6.dockerfile +++ b/.cicd/docker/centos-7.6.dockerfile @@ -90,21 +90,4 @@ ENV CCACHE_PATH="/opt/rh/devtoolset-8/root/usr/bin" # Install Buildkite Agent RUN echo -e "[buildkite-agent]\nname = Buildkite Pty Ltd\nbaseurl = https://yum.buildkite.com/buildkite-agent/stable/x86_64/\nenabled=1\ngpgcheck=0\npriority=1" > /etc/yum.repos.d/buildkite-agent.repo && \ - yum -y install buildkite-agent - -# PRE_COMMANDS: Executed pre-cmake -# CMAKE_EXTRAS: Executed right before the cmake path (on the end) -ENV PRE_COMMANDS="source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:\$PATH" - -# Bring in helpers that provides execute function so we can get better logging in BK and TRAV -COPY ./docker/.logging-helpers /tmp/.helpers - -CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ - fold-execute ccache -s && \ - mkdir /workdir/build && cd /workdir/build && fold-execute cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && \ - fold-execute make -j $JOBS && \ - if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test; fi && \ - if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ - if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi && \ - if ! ${TRAVIS:-false}; then cd .. && echo $(pkill mongod || :) && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi && \ - if ${ENABLE_INSTALL:-false}; then fold-execute make install; fi" + yum -y install buildkite-agent \ No newline at end of file diff --git a/.cicd/docker/ubuntu-16.04.dockerfile b/.cicd/docker/ubuntu-16.04.dockerfile index 326d9d48ef3..559d75bf9d2 100644 --- a/.cicd/docker/ubuntu-16.04.dockerfile +++ b/.cicd/docker/ubuntu-16.04.dockerfile @@ -20,14 +20,14 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz \ # Build appropriate version of Clang. RUN mkdir -p /root/tmp && cd /root/tmp && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && cd .. && cd ../../../../projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && cd ../ && cd /root/tmp/clang8 && mkdir build && cd build && cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=all -DCMAKE_BUILD_TYPE=Release .. && make -j$(nproc) && make install \ && cd / && rm -rf /root/tmp/clang8 -COPY ./docker/pinned_toolchain.cmake /tmp/pinned_toolchain.cmake +COPY ./.cicd/helpers/clang.make /tmp/clang.cmake # Build appropriate version of LLVM. RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm \ && cd llvm \ && mkdir build \ && cd build \ - && cmake -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' .. \ + && cmake -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. \ && make -j$(nproc) \ && make install \ && cd / @@ -52,7 +52,7 @@ RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/ && cd mongo-c-driver-1.13.0 \ && mkdir -p build \ && cd build \ - && cmake --DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' .. \ + && cmake --DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. \ && make -j$(nproc) \ && make install \ && cd / \ @@ -65,7 +65,7 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o && sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp \ && sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt \ && cd build \ - && cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' .. \ + && cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. \ && make -j$(nproc) \ && make install \ && cd / \ @@ -84,22 +84,4 @@ RUN curl -LO https://github.com/ccache/ccache/releases/download/v3.4.1/ccache-3. RUN echo "deb https://apt.buildkite.com/buildkite-agent stable main" > /etc/apt/sources.list.d/buildkite-agent.list \ && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 32A37959C2FA5C3C99EFBC32A79206696452D198 \ - && apt-get update && apt-get install -y buildkite-agent - -# PRE_COMMANDS: Executed pre-cmake -# CMAKE_EXTRAS: Executed right before the cmake path (on the end) -ENV PRE_COMMANDS="export PATH=/usr/lib/ccache:\$PATH" -ENV CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='/tmp/pinned_toolchain.cmake' -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" - -# Bring in helpers that provides execute function so we can get better logging in BK and TRAV -COPY ./docker/.logging-helpers /tmp/.helpers - -CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ - fold-execute ccache -s && \ - mkdir /workdir/build && cd /workdir/build && fold-execute cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && \ - fold-execute make -j $JOBS && \ - if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test; fi && \ - if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ - if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi && \ - if ! ${TRAVIS:-false}; then cd .. && echo $(pkill mongod || :) && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi && \ - if ${ENABLE_INSTALL:-false}; then fold-execute make install; fi" + && apt-get update && apt-get install -y buildkite-agent \ No newline at end of file diff --git a/.cicd/docker/ubuntu-18.04.dockerfile b/.cicd/docker/ubuntu-18.04.dockerfile index 9dce9e35cf3..2f94be6990b 100644 --- a/.cicd/docker/ubuntu-18.04.dockerfile +++ b/.cicd/docker/ubuntu-18.04.dockerfile @@ -61,22 +61,4 @@ ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin RUN echo "deb https://apt.buildkite.com/buildkite-agent stable main" > /etc/apt/sources.list.d/buildkite-agent.list \ && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 32A37959C2FA5C3C99EFBC32A79206696452D198 \ - && apt-get update && apt-get install -y apt-transport-https && apt-get install -y buildkite-agent - -# PRE_COMMANDS: Executed pre-cmake -# CMAKE_EXTRAS: Executed right before the cmake path (on the end) -ENV PRE_COMMANDS="export PATH=/usr/lib/ccache:\$PATH" -ENV CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" - -# Bring in helpers that provides execute function so we can get better logging in BK and TRAV -COPY ./docker/.logging-helpers /tmp/.helpers - -CMD bash -c ". /tmp/.helpers && $PRE_COMMANDS && \ - fold-execute ccache -s && \ - mkdir /workdir/build && cd /workdir/build && fold-execute cmake -DCMAKE_BUILD_TYPE='Release' -DCORE_SYMBOL_NAME='SYS' -DOPENSSL_ROOT_DIR='/usr/include/openssl' -DBUILD_MONGO_DB_PLUGIN=true $CMAKE_EXTRAS /workdir && \ - fold-execute make -j $JOBS && \ - if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test; fi && \ - if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi && \ - if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi && \ - if ! ${TRAVIS:-false}; then cd .. && echo $(pkill mongod || :) && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN; fi && \ - if ${ENABLE_INSTALL:-false}; then fold-execute make install; fi" + && apt-get update && apt-get install -y apt-transport-https && apt-get install -y buildkite-agent \ No newline at end of file diff --git a/.cicd/eosio-installation-images.yml b/.cicd/eosio-installation-images.yml index ed45cc5a499..494d1a6cde5 100644 --- a/.cicd/eosio-installation-images.yml +++ b/.cicd/eosio-installation-images.yml @@ -2,9 +2,11 @@ steps: - label: ":ubuntu: Ubuntu 18.04 - Build" command: - - cd ./.cicd && bash ./installation-build.sh + - bash ./.cicd/installation-build.sh env: IMAGE_TAG: "ubuntu-18.04" + ENABLE_INSTALL: true + ENABLE_BUILD: true agents: queue: "automation-eos-builder-fleet" timeout: $BUILD_TIMEOUT diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index 71cd07f1878..8762a5cb445 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -1,7 +1,18 @@ #!/usr/bin/env bash set -eo pipefail -cd $( dirname "${BASH_SOURCE[0]}" ) # Ensure we're in the .cicd dir -. ./.helpers -( [[ -z $IMAGE_TAG ]] && [[ -z $1 ]] ) && echo "You must provide the distro IMAGE_TAG name (example: ubuntu-18.04) as argument \$1 or set it within your ENV" && exit 1 -echo "Looking for $FULL_TAG" -docker_tag_exists $FULL_TAG && echo "$FULL_TAG already exists" || generate_docker_image +. ./.cicd/helpers/general.sh +. ./$HELPERS_DIR/execute.sh +. ./$HELPERS_DIR/docker-hash.sh +# look for Docker image +echo "+++ :mag_right: Looking for $FULL_TAG" +ORG_REPO=$(echo $FULL_TAG | cut -d: -f1) +TAG=$(echo $FULL_TAG | cut -d: -f2) +EXISTS=$(curl -s -H "Authorization: Bearer $(curl -sSL "https://auth.docker.io/token?service=registry.docker.io&scope=repository:${ORG_REPO}:pull" | jq --raw-output .token)" "https://registry.hub.docker.com/v2/${ORG_REPO}/manifests/$TAG") +# build, if neccessary +if [[ $EXISTS =~ '404 page not found' || $EXISTS =~ 'manifest unknown' ]]; then # if we cannot pull the image, we build and push it first + docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD + execute docker build -t $FULL_TAG -f $CICD_DIR/docker/${IMAGE_TAG}.dockerfile . + execute docker push $FULL_TAG +else + echo "$FULL_TAG already exists." +fi \ No newline at end of file diff --git a/.cicd/docker/pinned_toolchain.cmake b/.cicd/helpers/clang.make similarity index 100% rename from .cicd/docker/pinned_toolchain.cmake rename to .cicd/helpers/clang.make diff --git a/.cicd/helpers/docker-hash.sh b/.cicd/helpers/docker-hash.sh new file mode 100644 index 00000000000..6e7ce8f75fa --- /dev/null +++ b/.cicd/helpers/docker-hash.sh @@ -0,0 +1,24 @@ +export IMAGE_TAG=${IMAGE_TAG:-$1} + +function determine-hash() { + # determine the sha1 hash of all dockerfiles in the .cicd directory + [[ -z $1 ]] && echo "Please provide the files to be hashed (wildcards supported)" && exit 1 + echo "Obtaining Hash of files from $1..." + # collect all files, hash them, then hash those + HASHES=() + for FILE in $(find $1 -type f); do + HASH=$(sha1sum $FILE | sha1sum | awk '{ print $1 }') + HASHES=($HASH "${HASHES[*]}") + echo "$FILE - $HASH" + done + export DETERMINED_HASH=$(echo ${HASHES[*]} | sha1sum | awk '{ print $1 }') + export HASHED_IMAGE_TAG="${IMAGE_TAG}-${DETERMINED_HASH}" +} + +if [[ ! -z $IMAGE_TAG ]]; then + determine-hash "$CICD_DIR/docker/${IMAGE_TAG}.dockerfile" + export FULL_TAG="eosio/producer:eos-$HASHED_IMAGE_TAG" +else + echo "Please set ENV::IMAGE_TAG to match the name of a platform dockerfile..." + exit 1 +fi \ No newline at end of file diff --git a/.cicd/helpers/execute.sh b/.cicd/helpers/execute.sh new file mode 100644 index 00000000000..778aa42671c --- /dev/null +++ b/.cicd/helpers/execute.sh @@ -0,0 +1,4 @@ +function execute() { + echo "--- Executing: $@" + "$@" +} \ No newline at end of file diff --git a/.cicd/helpers/general.sh b/.cicd/helpers/general.sh new file mode 100644 index 00000000000..10f97284378 --- /dev/null +++ b/.cicd/helpers/general.sh @@ -0,0 +1,12 @@ +export ROOT_DIR=$( dirname "${BASH_SOURCE[0]}" )/../.. +export BUILD_DIR=$( dirname "${BASH_SOURCE[0]}" )/../../build +export CICD_DIR=$( dirname "${BASH_SOURCE[0]}" )/.. +export HELPERS_DIR=$( dirname "${BASH_SOURCE[0]}" ) +export JOBS=${JOBS:-"$(getconf _NPROCESSORS_ONLN)"} + +function determine_eos_version() { + export EOSIO_VERSION_MAJOR=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_MAJOR" | tail -1 | sed 's/.*VERSION_MAJOR //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) + export EOSIO_VERSION_MINOR=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_MINOR" | tail -1 | sed 's/.*VERSION_MINOR //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) + export EOSIO_VERSION_PATCH=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_PATCH" | tail -1 | sed 's/.*VERSION_PATCH //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) + export EOSIO_VERSION_SUFFIX=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_SUFFIX" | tail -1 | sed 's/.*VERSION_SUFFIX //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) +} diff --git a/.cicd/installation-build.sh b/.cicd/helpers/installation-build.sh similarity index 80% rename from .cicd/installation-build.sh rename to .cicd/helpers/installation-build.sh index 8e0bca14f23..3d592eca9d0 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/helpers/installation-build.sh @@ -1,13 +1,13 @@ #!/usr/bin/env bash set -eo pipefail -. ./.helpers +. ./.cicd/helpers/general.sh if [[ $BUILDKITE_BRANCH =~ ^release/[0-9].[0-9]+.x$ || $BUILDKITE_BRANCH =~ ^master$ || $BUILDKITE_BRANCH =~ ^develop$ || $FORCE_BINARIES_BUILD == true ]]; then - cd .. determine_eos_version export EOS_BINARIES_TAG="eosio/producer:eos-binaries-$BUILDKITE_BRANCH-$EOSIO_VERSION_MAJOR.$EOSIO_VERSION_MINOR.$EOSIO_VERSION_PATCH" + export ARGS="--name eos-binaries-$BUILDKITE_COMMIT -v $(pwd):$MOUNTED_DIR" docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD - docker run --name eos-binaries-$BUILDKITE_COMMIT -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true -e ENABLE_PARALLEL_TESTS=false -e ENABLE_SERIAL_TESTS=false -e TRAVIS=true $FULL_TAG + ./.cicd/run.sh docker commit eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG docker commit eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG-$BUILDKITE_COMMIT docker push $EOS_BINARIES_TAG diff --git a/.cicd/helpers/logging.sh b/.cicd/helpers/logging.sh new file mode 100755 index 00000000000..357b4e3f420 --- /dev/null +++ b/.cicd/helpers/logging.sh @@ -0,0 +1,8 @@ +function fold-execute() { + [[ $TRAVIS == true ]] && echo -en "travis_fold:start:$(echo $@)\r" || true + echo "--- Executing: $@" + "$@" + rcode=$? + [ $rcode -eq 0 ] || exit $rcode + [[ $TRAVIS == true ]] && echo -en "travis_fold:end:$(echo $@)\r" || true +} \ No newline at end of file diff --git a/.cicd/package-builder.sh b/.cicd/helpers/package-builder.sh similarity index 100% rename from .cicd/package-builder.sh rename to .cicd/helpers/package-builder.sh diff --git a/.cicd/submodule-regression-checker.sh b/.cicd/helpers/submodule-regression-checker.sh similarity index 100% rename from .cicd/submodule-regression-checker.sh rename to .cicd/helpers/submodule-regression-checker.sh diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index a03e13e96b5..8568560fe8c 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,79 +1,144 @@ steps: - - wait - - trigger: "eosio-base-images-beta" - label: ":docker: Ensure Base Images" - build: - commit: "${BUILDKITE_COMMIT}" - branch: "${BUILDKITE_BRANCH}" - - - wait + - label: ":aws: Amazon_Linux 2.0 - Build" + command: + - "bash ./.cicd/run.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "amazonlinux-2" + ENABLE_BUILD: true + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_AMAZON_LINUX_2 - - label: ":aws: Amazon_Linux 2.0 - Build & Test" + - label: ":centos: CentOS 7.6 - Build" + command: + - "bash ./.cicd/run.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "centos-7.6" + ENABLE_BUILD: true + BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" - plugins: - - docker#v3.2.0: - debug: $DEBUG - image: "eosio/producer:eosio-amazonlinux-2-d89cfcba2c5002f7c79e5f2ea07d9f514b960fcd" - environment: - - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - - "JOBS" # Number for -j make/ctest args. - mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - - - label: ":centos: CentOS 7.6 - Build & Test" + timeout: ${TIMEOUT:-10} + + - label: ":ubuntu: Ubuntu 16.04 - Build" + command: + - "bash ./.cicd/run.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-16.04" + ENABLE_BUILD: true + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 + + - label: ":ubuntu: Ubuntu 18.04 - Build" command: - - "" + - "bash ./.cicd/run.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-18.04" + ENABLE_BUILD: true + BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 + + - label: ":darwin: macOS 10.14 - Build" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && ENABLE_BUILD=${ENABLE_BUILD:-true} ./.cicd/run.sh" + - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" plugins: - - docker#v3.2.0: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + modify-cpu: 12 + modify-ram: 24 + always-pull: true debug: true - image: "eosio/producer:eosio-centos-7.6-8837beff70f9bb04717630bdeb3a29ff984ae985" - environment: - # - "ENABLE_LR_TESTS=true" - - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - - "JOBS" # Number for -j make/ctest args. - mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + wait-network: true + agents: + - "queue=mac-anka-large-node-fleet" - - label: ":ubuntu: Ubuntu 16.04 - Build & Test" + - wait + + - label: ":aws: Amazon_Linux 2.0 - Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2.0 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/run.sh" + env: + IMAGE_TAG: "amazonlinux-2" + ENABLE_PARALLEL_TESTS: true + ENABLE_SERIAL_TESTS: true + ENABLE_LONG_RUNNING_TESTS: false + BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" - plugins: - - docker#v3.2.0: - debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-16.04-a86f678994109fd09a13468f9b8f5ebf10b48a6b" - environment: - - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - - "JOBS" # Number for -j make/ctest args. - mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + timeout: ${TIMEOUT:-10} + skip: $SKIP_AMAZON_LINUX_2 - - label: ":ubuntu: Ubuntu 18.04 - Build & Test" + - label: ":centos: CentOS 7.6 - Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/run.sh" + env: + IMAGE_TAG: "centos-7.6" + ENABLE_PARALLEL_TESTS: true + ENABLE_SERIAL_TESTS: true + ENABLE_LONG_RUNNING_TESTS: false + BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" - plugins: - - docker#v3.2.0: - debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-18.04-d1248048f40158965ff9876c0c21ac728bb82da6" - environment: - - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - - "JOBS" # Number for -j make/ctest args. - mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) - - - label: ":darwin: macOS 10.14 - Build & Test" + timeout: ${TIMEOUT:-10} + skip: $SKIP_CENTOS_7 + + - label: ":ubuntu: Ubuntu 16.04 - Test" command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/run.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + ENABLE_PARALLEL_TESTS: true + ENABLE_SERIAL_TESTS: true + ENABLE_LONG_RUNNING_TESTS: false + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 + + - label: ":ubuntu: Ubuntu 18.04 - Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/run.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + ENABLE_PARALLEL_TESTS: true + ENABLE_SERIAL_TESTS: true + ENABLE_LONG_RUNNING_TESTS: false + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 + + - label: ":darwin: macOS 10.14 - Test" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && mkdir -p build && cd build && cmake .." - - "cd eos/build && make -j$(getconf _NPROCESSORS_ONLN)" - - "if ${ENABLE_PARALLEL_TESTS:-true}; then cd eos/build && ctest -j$(getconf _NPROCESSORS_ONLN) -LE _tests --output-on-failure -T Test; fi" - - "if ${ENABLE_SERIAL_TESTS:-true}; then cd eos/build && mkdir -p ./mongodb && mongod --dbpath ./mongodb --fork --logpath mongod.log && ctest -L nonparallelizable_tests --output-on-failure -T Test; fi" - - "if ${ENABLE_LR_TESTS:-false}; then cd eos/build && ctest -L long_running_tests --output-on-failure -T Test; fi" - - "cd eos && echo $(pkill mongod || :) && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && ENABLE_PARALLEL_TESTS=${ENABLE_PARALLEL_TESTS:-true} ENABLE_SERIAL_TESTS=${ENABLE_SERIAL_TESTS:-true} ENABLE_LONG_RUNNING_TESTS=${ENABLE_LONG_RUNNING_TESTS:-false} ./.cicd/run.sh" plugins: - chef/anka#v0.5.1: no-volume: true @@ -104,13 +169,11 @@ steps: - wait - - trigger: "eosio-installation-images" - label: ":docker: Start EOS Installation Pipeline" + - trigger: "eosio-dot-contracts-base-images-beta" + label: ":docker: Ensure EOSIO Installation Base Image" build: commit: "${BUILDKITE_COMMIT}" branch: "${BUILDKITE_BRANCH}" - env: - FORCE_BINARIES_BUILD: "${FORCE_BINARIES_BUILD}" async: true - wait @@ -119,49 +182,34 @@ steps: command: - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - "./.cicd/package-builder.sh" - plugins: - - docker#v3.2.0: - debug: true - image: "eosio/producer:eosio-centos-7.6-8837beff70f9bb04717630bdeb3a29ff984ae985" - environment: - - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + env: + BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" - timeout: 10 + timeout: ${TIMEOUT:-10} + skip: $SKIP_CENTOS_7 - label: ":ubuntu: Ubuntu 16.04 - Package Builder" command: - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - "./.cicd/package-builder.sh" - plugins: - - docker#v3.2.0: - debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-16.04-a86f678994109fd09a13468f9b8f5ebf10b48a6b" - environment: - - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + env: + BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" - timeout: 10 + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 - label: ":ubuntu: Ubuntu 18.04 - Package Builder" command: - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - "./.cicd/package-builder.sh" - plugins: - - docker#v3.2.0: - debug: $DEBUG - image: "eosio/producer:eosio-ubuntu-18.04-d1248048f40158965ff9876c0c21ac728bb82da6" - environment: - - "BUILDKITE_AGENT_ACCESS_TOKEN" # Needed for buildkite-agent upload/download - mount-buildkite-agent: false # Mounting bk-agent doesn't work, so disable it - propagate-environment: true # Need for buildkite-agent upload/download (JOB_ID, etc) + env: + BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" - timeout: 10 + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 - label: ":darwin: Mojave - Package Builder" command: diff --git a/.cicd/run.sh b/.cicd/run.sh new file mode 100755 index 00000000000..39b18ff2076 --- /dev/null +++ b/.cicd/run.sh @@ -0,0 +1,91 @@ +#!/usr/bin/env bash +set -eo pipefail +. ./.cicd/helpers/general.sh +. ./$HELPERS_DIR/execute.sh + +execute mkdir -p $BUILD_DIR + +PARALLEL_TEST_COMMAND="fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test" +SERIAL_TEST_COMMAND="mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test" +LONG_RUNNING_TEST_COMMAND="fold-execute ctest -L long_running_tests --output-on-failure -T Test" + +if [[ $(uname) == 'Darwin' ]]; then + + . $HELPERS_DIR/logging.sh + + # You can't use chained commands in execute + MAC_CMAKE="fold-execute cmake .." + MAC_MAKE="fold-execute make -j$JOBS" + fold-execute ccache -s + fold-execute cd $BUILD_DIR + if [[ $ENABLE_BUILD == true ]] || [[ $TRAVIS == true ]]; then + $MAC_CMAKE + $MAC_MAKE + fi + if [[ $BUILDKITE == true ]]; then + [[ $ENABLE_PARALLEL_TESTS == true ]] && $PARALLEL_TEST_COMMAND || true + [[ $ENABLE_SERIAL_TESTS == true ]] && $SERIAL_TEST_COMMAND || true + [[ $ENABLE_LONG_RUNNING_TESTS == true ]] && $LONG_RUNNING_TEST_COMMAND || true + elif [[ $TRAVIS == true ]]; then + $PARALLEL_TEST_COMMAND + $SERIAL_TEST_COMMAND + fi + +else # Linux + + MOUNTED_DIR='/workdir' + ARGS=${ARGS:-"--rm -v $(pwd):$MOUNTED_DIR"} + + function append-to-commands() { # Useful to avoid having to specify && between commands we need in the final COMMANDS var we use in Docker Run + [[ ! -z $COMMANDS ]] && export COMMANDS="$COMMANDS && $@" || export COMMANDS="$@" + } + + . ./$HELPERS_DIR/docker-hash.sh + + PRE_COMMANDS=". $MOUNTED_DIR/.cicd/helpers/logging.sh && fold-execute ccache -s && cd $MOUNTED_DIR/build" + # PRE_COMMANDS: Executed pre-cmake + # CMAKE_EXTRAS: Executed within and right before the cmake path (cmake CMAKE_EXTRAS ..) + if [[ $IMAGE_TAG == 'ubuntu-18.04' ]]; then + PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" + CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" + elif [[ $IMAGE_TAG == 'ubuntu-16.04' ]]; then + PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" + CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$MOUNTED_DIR/.cicd/helpers/clang.make -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" + elif [[ $IMAGE_TAG == 'centos-7.6' ]]; then + PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:\\\$PATH" + elif [[ $IMAGE_TAG == 'amazonlinux-2' ]]; then + PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib64/ccache:\\\$PATH" + CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" + fi + + MOVE_REPO_COMMANDS="fold-execute cp -r $MOUNTED_DIR ~/eosio && fold-execute cd ~/eosio/build" + BUILD_COMMANDS="fold-execute cmake $CMAKE_EXTRAS .. && fold-execute make -j$JOBS" + INSTALL_COMMANDS="fold-execute make install" + + append-to-commands $PRE_COMMANDS + + # Docker Commands + if [[ $BUILDKITE == true ]]; then + # Generate Base Images + execute ./.cicd/generate-base-images.sh + [[ $ENABLE_INSTALL == true ]] && append-to-commands $MOVE_REPO_COMMANDS + [[ $ENABLE_BUILD == true ]] && append-to-commands $BUILD_COMMANDS + [[ $ENABLE_INSTALL == true ]] && append-to-commands $INSTALL_COMMANDS + [[ $ENABLE_PARALLEL_TESTS == true ]] && append-to-commands $PARALLEL_TEST_COMMAND + [[ $ENABLE_SERIAL_TESTS == true ]] && append-to-commands $SERIAL_TEST_COMMAND + [[ $ENABLE_LONG_RUNNING_TESTS == true ]] && append-to-commands $LONG_RUNNING_TEST_COMMAND + elif [[ $TRAVIS == true ]]; then + ARGS="$ARGS -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e JOBS -e TRAVIS -e CCACHE_DIR=/opt/.ccache" + COMMANDS="$PRE_COMMANDS && $BUILD_COMMANDS && $PARALLEL_TEST_COMMAND && $SERIAL_TEST_COMMAND" + fi + + # Load BUILDKITE Environment Variables for use in docker run + if [[ -f $BUILDKITE_ENV_FILE ]]; then + evars="" + while read -r var; do + evars="$evars --env ${var%%=*}" + done < "$BUILDKITE_ENV_FILE" + fi + execute eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" + +fi \ No newline at end of file diff --git a/.cicd/travis/travis-build.sh b/.cicd/travis/travis-build.sh deleted file mode 100755 index b8ab4ab5208..00000000000 --- a/.cicd/travis/travis-build.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail -ROOT_DIR=$(pwd) -cd $( dirname "${BASH_SOURCE[0]}" )/.. # Ensure we're in the .cicd dir -. ./.helpers -cd $ROOT_DIR -export JOBS="$(getconf _NPROCESSORS_ONLN)" -if [[ "$(uname)" == Darwin ]]; then - . ./.cicd/docker/.logging-helpers - fold-execute ccache -s - mkdir -p build && cd build && fold-execute cmake .. - fold-execute make -j$JOBS - if ${ENABLE_PARALLEL_TESTS:-true}; then fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test; fi - if ${ENABLE_SERIAL_TESTS:-true}; then mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test; fi - if ${ENABLE_LR_TESTS:-false}; then fold-execute ctest -L long_running_tests --output-on-failure -T Test; fi -else # linux - DOCKER_RUN_EXTRAS="-e ENABLE_PACKAGE_BUILDER=false" # Travis doesn't need to test or push packages - execute eval docker run --rm -v $(pwd):/workdir -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e JOBS -e CCACHE_DIR=/opt/.ccache -e TRAVIS $DOCKER_RUN_EXTRAS $FULL_TAG -fi \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index f82127a58c0..5c07549fb44 100644 --- a/.travis.yml +++ b/.travis.yml @@ -49,8 +49,7 @@ matrix: - mongodb env: - PATH="/usr/local/opt/ccache/libexec:$PATH" -script: | - ./.cicd/travis/travis-build.sh +script: "./.cicd/run.sh" notifications: webhooks: secure: gmqODqoFAil2cR7v++ibqRNECBOSD/VJX+2qPa7XptkVWmVMzbII5CNgBQAscjFsp9arHPMXCCzkBi847PCSiHdsnYFQ4T273FLRWr3cDbLjfmR+BJ7dGKvQnlpSi2Ze2TtAPJyRl+iv+cxDj7cWE5zw2c4xbgh1a/cNO+/ayUfFkyMEIfVWRsHkdkra4gOLywou0XRLHr4CX1V60uU7uuqATnIMMi7gQYwiKKtZqjkbf8wcBvZirDhjQ6lDPN5tnZo6L4QHmqjtzNJg/UrD4h+zES53dLVI4uxlXRAwwpw+mJOFA3QE/3FT+bMQjLCffUz4gZaWcdgebPYzrwSWUbJoFdWAOwcTqivQY0FIQzcz/r6uGWcwWTavzkPEbg68BVM2BZId/0110J6feeTkpJ3MPV+UsIoGTvbg50vi/I06icftuZ/cLqDj3+Emifm7Jlr1sRTSdqtYAJj/2ImUfsb46cwgjAVhFOTvc+KuPgJQgvOXV7bZkxEr5qDWo8Al2sV8BWb83j1rMlZ4LfERokImDVqxu2kkcunchzvhtYFTesSpmwegVpwceCtOtO0rEUgATnfTEHzk2rm8nuz4UtidsQnluUKqmKD0QCqHXFfn+3ZRJsDqr+iCYdxv1BAeAVc9q1L7bgrKDMGiJgkxuhZ2v3J2SflWLvjZjFDduuc= diff --git a/mongod.log.2019-08-12T13-03-22 b/mongod.log.2019-08-12T13-03-22 new file mode 100644 index 00000000000..e49d6fe908e --- /dev/null +++ b/mongod.log.2019-08-12T13-03-22 @@ -0,0 +1,14 @@ +2019-08-12T13:03:00.430+0000 I CONTROL [initandlisten] MongoDB starting : pid=16 port=27017 dbpath=/workdir/./mongodb 64-bit host=322e0a8c3eed +2019-08-12T13:03:00.431+0000 I CONTROL [initandlisten] db version v3.6.3 +2019-08-12T13:03:00.432+0000 I CONTROL [initandlisten] git version: 9586e557d54ef70f9ca4b43c26892cd55257e1a5 +2019-08-12T13:03:00.433+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.0-fips 29 Mar 2010 +2019-08-12T13:03:00.434+0000 I CONTROL [initandlisten] allocator: tcmalloc +2019-08-12T13:03:00.435+0000 I CONTROL [initandlisten] modules: none +2019-08-12T13:03:00.436+0000 I CONTROL [initandlisten] build environment: +2019-08-12T13:03:00.438+0000 I CONTROL [initandlisten] distmod: amazon +2019-08-12T13:03:00.439+0000 I CONTROL [initandlisten] distarch: x86_64 +2019-08-12T13:03:00.440+0000 I CONTROL [initandlisten] target_arch: x86_64 +2019-08-12T13:03:00.441+0000 I CONTROL [initandlisten] options: { processManagement: { fork: true }, storage: { dbPath: "./mongodb" }, systemLog: { destination: "file", path: "mongod.log" } } +2019-08-12T13:03:00.443+0000 I STORAGE [initandlisten] exception in initAndListen: NonExistentPath: Data directory /workdir/./mongodb not found., terminating +2019-08-12T13:03:00.444+0000 I CONTROL [initandlisten] now exiting +2019-08-12T13:03:00.445+0000 I CONTROL [initandlisten] shutting down with code:100 diff --git a/test.sh b/test.sh new file mode 100755 index 00000000000..9a06da487ca --- /dev/null +++ b/test.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +. ./.cicd/helpers/logging.sh + +COMMAND="echo 123" + +$COMMAND From a4d821607e3e6250a733b32660e85279e80815ae Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Mon, 12 Aug 2019 12:02:40 -0400 Subject: [PATCH 225/528] Fixed issue with branch names containing slashes. --- .cicd/.helpers | 7 ------- .cicd/installation-build.sh | 5 +++++ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/.cicd/.helpers b/.cicd/.helpers index 3df22f4e6bf..f673c763542 100644 --- a/.cicd/.helpers +++ b/.cicd/.helpers @@ -37,13 +37,6 @@ function docker_tag_exists() { ( [[ $EXISTS =~ '404 page not found' ]] || [[ $EXISTS =~ 'manifest unknown' ]] ) && return 1 || return 0 } -function determine_eos_version() { - export EOSIO_VERSION_MAJOR=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_MAJOR" | tail -1 | sed 's/.*VERSION_MAJOR //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) - export EOSIO_VERSION_MINOR=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_MINOR" | tail -1 | sed 's/.*VERSION_MINOR //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) - export EOSIO_VERSION_PATCH=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_PATCH" | tail -1 | sed 's/.*VERSION_PATCH //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) - export EOSIO_VERSION_SUFFIX=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_SUFFIX" | tail -1 | sed 's/.*VERSION_SUFFIX //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) -} - if [[ ! -z $IMAGE_TAG ]]; then # Darwin doesn't need hash (yet) determine-hash "docker/${IMAGE_TAG}.dockerfile" [[ -z $DETERMINED_HASH ]] && echo "DETERMINED_HASH empty! (check determine-hash function)" && exit 1 diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh index 8e0bca14f23..4a31315006f 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/installation-build.sh @@ -4,8 +4,13 @@ set -eo pipefail if [[ $BUILDKITE_BRANCH =~ ^release/[0-9].[0-9]+.x$ || $BUILDKITE_BRANCH =~ ^master$ || $BUILDKITE_BRANCH =~ ^develop$ || $FORCE_BINARIES_BUILD == true ]]; then cd .. +<<<<<<< Updated upstream determine_eos_version export EOS_BINARIES_TAG="eosio/producer:eos-binaries-$BUILDKITE_BRANCH-$EOSIO_VERSION_MAJOR.$EOSIO_VERSION_MINOR.$EOSIO_VERSION_PATCH" +======= + export BRANCH=$(echo $BUILDKITE_BRANCH | sed 's/\//\-/') + export EOS_BINARIES_TAG="eosio/producer:eos-binaries-$BRANCH" +>>>>>>> Stashed changes docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD docker run --name eos-binaries-$BUILDKITE_COMMIT -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true -e ENABLE_PARALLEL_TESTS=false -e ENABLE_SERIAL_TESTS=false -e TRAVIS=true $FULL_TAG docker commit eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG From a6588b44fc2067ee4c138959cdb1f00be6cce1e4 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Mon, 12 Aug 2019 12:03:11 -0400 Subject: [PATCH 226/528] Enable cron builds for Travis. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f82127a58c0..06a26ba9921 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ cache: ccache: true directories: - $HOME/Library/Caches/Homebrew -if: fork = true OR type = api +if: fork = true OR type = api OR type = cron matrix: include: - os: linux From f79fc9de0d096cd3175791d729bf1fa724a97fea Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Mon, 12 Aug 2019 12:05:47 -0400 Subject: [PATCH 227/528] Fixed issue with branch names containing slashes. --- .cicd/installation-build.sh | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh index 4a31315006f..c06d1e11e63 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/installation-build.sh @@ -4,13 +4,8 @@ set -eo pipefail if [[ $BUILDKITE_BRANCH =~ ^release/[0-9].[0-9]+.x$ || $BUILDKITE_BRANCH =~ ^master$ || $BUILDKITE_BRANCH =~ ^develop$ || $FORCE_BINARIES_BUILD == true ]]; then cd .. -<<<<<<< Updated upstream - determine_eos_version - export EOS_BINARIES_TAG="eosio/producer:eos-binaries-$BUILDKITE_BRANCH-$EOSIO_VERSION_MAJOR.$EOSIO_VERSION_MINOR.$EOSIO_VERSION_PATCH" -======= export BRANCH=$(echo $BUILDKITE_BRANCH | sed 's/\//\-/') export EOS_BINARIES_TAG="eosio/producer:eos-binaries-$BRANCH" ->>>>>>> Stashed changes docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD docker run --name eos-binaries-$BUILDKITE_COMMIT -v $(pwd):/workdir -e JOBS -e ENABLE_INSTALL=true -e ENABLE_PARALLEL_TESTS=false -e ENABLE_SERIAL_TESTS=false -e TRAVIS=true $FULL_TAG docker commit eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG From 1ecf052af1679a586478eb300fd96d0dacce1665 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 14:49:14 -0400 Subject: [PATCH 228/528] script split and simplify --- .cicd/build.sh | 64 ++++++++++++++++++++ .cicd/eosio-installation-images.yml | 2 - .cicd/helpers/execute.sh | 4 -- .cicd/helpers/general.sh | 8 ++- .cicd/helpers/installation-build.sh | 16 ++--- .cicd/long-running-tests.sh | 34 +++++++++++ .cicd/parallel-tests.sh | 34 +++++++++++ .cicd/run.sh | 91 ----------------------------- .cicd/serial-tests.sh | 34 +++++++++++ 9 files changed, 180 insertions(+), 107 deletions(-) create mode 100755 .cicd/build.sh delete mode 100644 .cicd/helpers/execute.sh create mode 100755 .cicd/long-running-tests.sh create mode 100755 .cicd/parallel-tests.sh delete mode 100755 .cicd/run.sh create mode 100755 .cicd/serial-tests.sh diff --git a/.cicd/build.sh b/.cicd/build.sh new file mode 100755 index 00000000000..5edc0f601e4 --- /dev/null +++ b/.cicd/build.sh @@ -0,0 +1,64 @@ +#!/usr/bin/env bash +set -eo pipefail +. ./.cicd/helpers/general.sh + +fold-execute mkdir -p $BUILD_DIR + +if [[ $(uname) == 'Darwin' ]]; then + + # You can't use chained commands in execute + fold-execute cd $BUILD_DIR + [[ $TRAVIS == true ]] && fold-execute ccache -s + fold-execute cmake .. + fold-execute make -j$JOBS + +else # Linux + + MOUNTED_DIR='/workdir' + ARGS=${ARGS:-"--rm -v $(pwd):$MOUNTED_DIR"} + + . $HELPERS_DIR/docker-hash.sh + + PRE_COMMANDS=". $MOUNTED_DIR/.cicd/helpers/logging.sh && fold-execute ccache -s && cd $MOUNTED_DIR/build" + # PRE_COMMANDS: Executed pre-cmake + # CMAKE_EXTRAS: Executed within and right before the cmake path (cmake CMAKE_EXTRAS ..) + if [[ $IMAGE_TAG == 'ubuntu-18.04' ]]; then + PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" + CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" + elif [[ $IMAGE_TAG == 'ubuntu-16.04' ]]; then + PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" + CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$MOUNTED_DIR/.cicd/helpers/clang.make -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" + elif [[ $IMAGE_TAG == 'centos-7.6' ]]; then + PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:\\\$PATH" + elif [[ $IMAGE_TAG == 'amazonlinux-2' ]]; then + PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib64/ccache:\\\$PATH" + CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" + fi + + BUILD_COMMANDS="fold-execute cmake $CMAKE_EXTRAS .. && fold-execute make -j$JOBS" + + # Docker Commands + if [[ $BUILDKITE == true ]]; then + # Generate Base Images + fold-execute $CICD_DIR/generate-base-images.sh + [[ $ENABLE_INSTALL == true ]] && COMMANDS="fold-execute cp -r $MOUNTED_DIR ~/eosio && fold-execute cd ~/eosio/build &&" + COMMANDS="$COMMANDS $BUILD_COMMANDS" + [[ $ENABLE_INSTALL == true ]] && COMMAND="$COMMAND && fold-execute make install" + elif [[ $TRAVIS == true ]]; then + ARGS="$ARGS -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e JOBS -e TRAVIS -e CCACHE_DIR=/opt/.ccache" + COMMANDS="$BUILD_COMMANDS" + fi + + COMMANDS="$PRE_COMMANDS && $COMMANDS" + + # Load BUILDKITE Environment Variables for use in docker run + if [[ -f $BUILDKITE_ENV_FILE ]]; then + evars="" + while read -r var; do + evars="$evars --env ${var%%=*}" + done < "$BUILDKITE_ENV_FILE" + fi + + fold-execute eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" + +fi \ No newline at end of file diff --git a/.cicd/eosio-installation-images.yml b/.cicd/eosio-installation-images.yml index 494d1a6cde5..60670912d47 100644 --- a/.cicd/eosio-installation-images.yml +++ b/.cicd/eosio-installation-images.yml @@ -5,8 +5,6 @@ steps: - bash ./.cicd/installation-build.sh env: IMAGE_TAG: "ubuntu-18.04" - ENABLE_INSTALL: true - ENABLE_BUILD: true agents: queue: "automation-eos-builder-fleet" timeout: $BUILD_TIMEOUT diff --git a/.cicd/helpers/execute.sh b/.cicd/helpers/execute.sh deleted file mode 100644 index 778aa42671c..00000000000 --- a/.cicd/helpers/execute.sh +++ /dev/null @@ -1,4 +0,0 @@ -function execute() { - echo "--- Executing: $@" - "$@" -} \ No newline at end of file diff --git a/.cicd/helpers/general.sh b/.cicd/helpers/general.sh index 10f97284378..b7cb6f9f4e2 100644 --- a/.cicd/helpers/general.sh +++ b/.cicd/helpers/general.sh @@ -1,9 +1,11 @@ export ROOT_DIR=$( dirname "${BASH_SOURCE[0]}" )/../.. -export BUILD_DIR=$( dirname "${BASH_SOURCE[0]}" )/../../build -export CICD_DIR=$( dirname "${BASH_SOURCE[0]}" )/.. -export HELPERS_DIR=$( dirname "${BASH_SOURCE[0]}" ) +export BUILD_DIR=$ROOT_DIR/build +export CICD_DIR=$ROOT_DIR/.cicd +export HELPERS_DIR=$CICD_DIR/helpers export JOBS=${JOBS:-"$(getconf _NPROCESSORS_ONLN)"} +. $HELPERS_DIR/logging.sh + function determine_eos_version() { export EOSIO_VERSION_MAJOR=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_MAJOR" | tail -1 | sed 's/.*VERSION_MAJOR //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) export EOSIO_VERSION_MINOR=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_MINOR" | tail -1 | sed 's/.*VERSION_MINOR //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) diff --git a/.cicd/helpers/installation-build.sh b/.cicd/helpers/installation-build.sh index 3d592eca9d0..0b200af7cee 100755 --- a/.cicd/helpers/installation-build.sh +++ b/.cicd/helpers/installation-build.sh @@ -2,17 +2,19 @@ set -eo pipefail . ./.cicd/helpers/general.sh +export ENABLE_INSTALL=true + if [[ $BUILDKITE_BRANCH =~ ^release/[0-9].[0-9]+.x$ || $BUILDKITE_BRANCH =~ ^master$ || $BUILDKITE_BRANCH =~ ^develop$ || $FORCE_BINARIES_BUILD == true ]]; then determine_eos_version export EOS_BINARIES_TAG="eosio/producer:eos-binaries-$BUILDKITE_BRANCH-$EOSIO_VERSION_MAJOR.$EOSIO_VERSION_MINOR.$EOSIO_VERSION_PATCH" export ARGS="--name eos-binaries-$BUILDKITE_COMMIT -v $(pwd):$MOUNTED_DIR" - docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD - ./.cicd/run.sh - docker commit eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG - docker commit eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG-$BUILDKITE_COMMIT - docker push $EOS_BINARIES_TAG - docker push $EOS_BINARIES_TAG-$BUILDKITE_COMMIT - docker stop eos-binaries-$BUILDKITE_COMMIT && docker rm eos-binaries-$BUILDKITE_COMMIT + fold-execute docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD + $CICD_DIR/build.sh + fold-execute docker commit eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG + fold-execute docker commit eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG-$BUILDKITE_COMMIT + fold-execute docker push $EOS_BINARIES_TAG + fold-execute docker push $EOS_BINARIES_TAG-$BUILDKITE_COMMIT + fold-execute docker stop eos-binaries-$BUILDKITE_COMMIT && docker rm eos-binaries-$BUILDKITE_COMMIT else echo "This pipeline will only generate images against master, develop, and release branches. Exiting..." exit 0 diff --git a/.cicd/long-running-tests.sh b/.cicd/long-running-tests.sh new file mode 100755 index 00000000000..4e63e59893e --- /dev/null +++ b/.cicd/long-running-tests.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +set -eo pipefail +. ./.cicd/helpers/general.sh + +TEST="fold-execute ctest -L long_running_tests --output-on-failure -T Test" + +if [[ $(uname) == 'Darwin' ]]; then + + # You can't use chained commands in execute + fold-execute cd $BUILD_DIR + fold-execute $TEST + +else # Linux + + MOUNTED_DIR='/workdir' + ARGS=${ARGS:-"--rm -v $(pwd):$MOUNTED_DIR"} + + . $HELPERS_DIR/docker-hash.sh + + PRE_COMMANDS=". $MOUNTED_DIR/.cicd/helpers/logging.sh && cd $MOUNTED_DIR/build" + + COMMANDS="$PRE_COMMANDS && $TEST" + + # Load BUILDKITE Environment Variables for use in docker run + if [[ -f $BUILDKITE_ENV_FILE ]]; then + evars="" + while read -r var; do + evars="$evars --env ${var%%=*}" + done < "$BUILDKITE_ENV_FILE" + fi + + fold-execute eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" + +fi \ No newline at end of file diff --git a/.cicd/parallel-tests.sh b/.cicd/parallel-tests.sh new file mode 100755 index 00000000000..1e89f7d2eb4 --- /dev/null +++ b/.cicd/parallel-tests.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +set -eo pipefail +. ./.cicd/helpers/general.sh + +TEST="fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test" + +if [[ $(uname) == 'Darwin' ]]; then + + # You can't use chained commands in execute + fold-execute cd $BUILD_DIR + fold-execute $TEST + +else # Linux + + MOUNTED_DIR='/workdir' + ARGS=${ARGS:-"--rm -v $(pwd):$MOUNTED_DIR"} + + . $HELPERS_DIR/docker-hash.sh + + PRE_COMMANDS=". $MOUNTED_DIR/.cicd/helpers/logging.sh && cd $MOUNTED_DIR/build" + + COMMANDS="$PRE_COMMANDS && $TEST" + + # Load BUILDKITE Environment Variables for use in docker run + if [[ -f $BUILDKITE_ENV_FILE ]]; then + evars="" + while read -r var; do + evars="$evars --env ${var%%=*}" + done < "$BUILDKITE_ENV_FILE" + fi + + fold-execute eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" + +fi \ No newline at end of file diff --git a/.cicd/run.sh b/.cicd/run.sh deleted file mode 100755 index 39b18ff2076..00000000000 --- a/.cicd/run.sh +++ /dev/null @@ -1,91 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail -. ./.cicd/helpers/general.sh -. ./$HELPERS_DIR/execute.sh - -execute mkdir -p $BUILD_DIR - -PARALLEL_TEST_COMMAND="fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test" -SERIAL_TEST_COMMAND="mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test" -LONG_RUNNING_TEST_COMMAND="fold-execute ctest -L long_running_tests --output-on-failure -T Test" - -if [[ $(uname) == 'Darwin' ]]; then - - . $HELPERS_DIR/logging.sh - - # You can't use chained commands in execute - MAC_CMAKE="fold-execute cmake .." - MAC_MAKE="fold-execute make -j$JOBS" - fold-execute ccache -s - fold-execute cd $BUILD_DIR - if [[ $ENABLE_BUILD == true ]] || [[ $TRAVIS == true ]]; then - $MAC_CMAKE - $MAC_MAKE - fi - if [[ $BUILDKITE == true ]]; then - [[ $ENABLE_PARALLEL_TESTS == true ]] && $PARALLEL_TEST_COMMAND || true - [[ $ENABLE_SERIAL_TESTS == true ]] && $SERIAL_TEST_COMMAND || true - [[ $ENABLE_LONG_RUNNING_TESTS == true ]] && $LONG_RUNNING_TEST_COMMAND || true - elif [[ $TRAVIS == true ]]; then - $PARALLEL_TEST_COMMAND - $SERIAL_TEST_COMMAND - fi - -else # Linux - - MOUNTED_DIR='/workdir' - ARGS=${ARGS:-"--rm -v $(pwd):$MOUNTED_DIR"} - - function append-to-commands() { # Useful to avoid having to specify && between commands we need in the final COMMANDS var we use in Docker Run - [[ ! -z $COMMANDS ]] && export COMMANDS="$COMMANDS && $@" || export COMMANDS="$@" - } - - . ./$HELPERS_DIR/docker-hash.sh - - PRE_COMMANDS=". $MOUNTED_DIR/.cicd/helpers/logging.sh && fold-execute ccache -s && cd $MOUNTED_DIR/build" - # PRE_COMMANDS: Executed pre-cmake - # CMAKE_EXTRAS: Executed within and right before the cmake path (cmake CMAKE_EXTRAS ..) - if [[ $IMAGE_TAG == 'ubuntu-18.04' ]]; then - PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" - CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" - elif [[ $IMAGE_TAG == 'ubuntu-16.04' ]]; then - PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" - CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$MOUNTED_DIR/.cicd/helpers/clang.make -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" - elif [[ $IMAGE_TAG == 'centos-7.6' ]]; then - PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:\\\$PATH" - elif [[ $IMAGE_TAG == 'amazonlinux-2' ]]; then - PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib64/ccache:\\\$PATH" - CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" - fi - - MOVE_REPO_COMMANDS="fold-execute cp -r $MOUNTED_DIR ~/eosio && fold-execute cd ~/eosio/build" - BUILD_COMMANDS="fold-execute cmake $CMAKE_EXTRAS .. && fold-execute make -j$JOBS" - INSTALL_COMMANDS="fold-execute make install" - - append-to-commands $PRE_COMMANDS - - # Docker Commands - if [[ $BUILDKITE == true ]]; then - # Generate Base Images - execute ./.cicd/generate-base-images.sh - [[ $ENABLE_INSTALL == true ]] && append-to-commands $MOVE_REPO_COMMANDS - [[ $ENABLE_BUILD == true ]] && append-to-commands $BUILD_COMMANDS - [[ $ENABLE_INSTALL == true ]] && append-to-commands $INSTALL_COMMANDS - [[ $ENABLE_PARALLEL_TESTS == true ]] && append-to-commands $PARALLEL_TEST_COMMAND - [[ $ENABLE_SERIAL_TESTS == true ]] && append-to-commands $SERIAL_TEST_COMMAND - [[ $ENABLE_LONG_RUNNING_TESTS == true ]] && append-to-commands $LONG_RUNNING_TEST_COMMAND - elif [[ $TRAVIS == true ]]; then - ARGS="$ARGS -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e JOBS -e TRAVIS -e CCACHE_DIR=/opt/.ccache" - COMMANDS="$PRE_COMMANDS && $BUILD_COMMANDS && $PARALLEL_TEST_COMMAND && $SERIAL_TEST_COMMAND" - fi - - # Load BUILDKITE Environment Variables for use in docker run - if [[ -f $BUILDKITE_ENV_FILE ]]; then - evars="" - while read -r var; do - evars="$evars --env ${var%%=*}" - done < "$BUILDKITE_ENV_FILE" - fi - execute eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" - -fi \ No newline at end of file diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh new file mode 100755 index 00000000000..a7f5e15cab1 --- /dev/null +++ b/.cicd/serial-tests.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +set -eo pipefail +. ./.cicd/helpers/general.sh + +TEST="mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test" + +if [[ $(uname) == 'Darwin' ]]; then + + # You can't use chained commands in execute + fold-execute cd $BUILD_DIR + fold-execute $TEST + +else # Linux + + MOUNTED_DIR='/workdir' + ARGS=${ARGS:-"--rm -v $(pwd):$MOUNTED_DIR"} + + . $HELPERS_DIR/docker-hash.sh + + PRE_COMMANDS=". $MOUNTED_DIR/.cicd/helpers/logging.sh && cd $MOUNTED_DIR/build" + + COMMANDS="$PRE_COMMANDS && $TEST" + + # Load BUILDKITE Environment Variables for use in docker run + if [[ -f $BUILDKITE_ENV_FILE ]]; then + evars="" + while read -r var; do + evars="$evars --env ${var%%=*}" + done < "$BUILDKITE_ENV_FILE" + fi + + fold-execute eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" + +fi \ No newline at end of file From e88862958ee3cbaa6e12a33bbb1c35bc3cf74b2e Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 15:12:44 -0400 Subject: [PATCH 229/528] SKIP_LRT --- .cicd/long-running-tests.sh | 2 +- .cicd/{helpers => }/package-builder.sh | 0 .cicd/pipeline.yml | 113 +++++++++++++----- .../submodule-regression-checker.sh | 0 .travis.yml | 2 +- 5 files changed, 85 insertions(+), 32 deletions(-) rename .cicd/{helpers => }/package-builder.sh (100%) rename .cicd/{helpers => }/submodule-regression-checker.sh (100%) diff --git a/.cicd/long-running-tests.sh b/.cicd/long-running-tests.sh index 4e63e59893e..b00ecb45801 100755 --- a/.cicd/long-running-tests.sh +++ b/.cicd/long-running-tests.sh @@ -29,6 +29,6 @@ else # Linux done < "$BUILDKITE_ENV_FILE" fi - fold-execute eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" + [[ $SKIP_LRT == true ]] || fold-execute eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" fi \ No newline at end of file diff --git a/.cicd/helpers/package-builder.sh b/.cicd/package-builder.sh similarity index 100% rename from .cicd/helpers/package-builder.sh rename to .cicd/package-builder.sh diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 8568560fe8c..33cc8bb8dc4 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -2,11 +2,10 @@ steps: - label: ":aws: Amazon_Linux 2.0 - Build" command: - - "bash ./.cicd/run.sh" + - "bash ./.cicd/build.sh" - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" env: IMAGE_TAG: "amazonlinux-2" - ENABLE_BUILD: true BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" @@ -15,11 +14,10 @@ steps: - label: ":centos: CentOS 7.6 - Build" command: - - "bash ./.cicd/run.sh" + - "bash ./.cicd/build.sh" - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" env: IMAGE_TAG: "centos-7.6" - ENABLE_BUILD: true BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" @@ -27,11 +25,10 @@ steps: - label: ":ubuntu: Ubuntu 16.04 - Build" command: - - "bash ./.cicd/run.sh" + - "bash ./.cicd/build.sh" - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" env: IMAGE_TAG: "ubuntu-16.04" - ENABLE_BUILD: true BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" @@ -40,11 +37,10 @@ steps: - label: ":ubuntu: Ubuntu 18.04 - Build" command: - - "bash ./.cicd/run.sh" + - "bash ./.cicd/build.sh" - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" env: IMAGE_TAG: "ubuntu-18.04" - ENABLE_BUILD: true BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" @@ -55,7 +51,7 @@ steps: command: - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && ENABLE_BUILD=${ENABLE_BUILD:-true} ./.cicd/run.sh" + - "cd eos && ./.cicd/build.sh" - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" plugins: - chef/anka#v0.5.1: @@ -73,15 +69,12 @@ steps: - wait - - label: ":aws: Amazon_Linux 2.0 - Test" + - label: ":aws: Amazon_Linux 2.0 - Unit Test" command: - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2.0 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/run.sh" + - "bash ./.cicd/parallel-tests.sh" env: IMAGE_TAG: "amazonlinux-2" - ENABLE_PARALLEL_TESTS: true - ENABLE_SERIAL_TESTS: true - ENABLE_LONG_RUNNING_TESTS: false BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" @@ -91,54 +84,114 @@ steps: - label: ":centos: CentOS 7.6 - Test" command: - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/run.sh" + - "bash ./.cicd/parallel-tests.sh" env: IMAGE_TAG: "centos-7.6" - ENABLE_PARALLEL_TESTS: true - ENABLE_SERIAL_TESTS: true - ENABLE_LONG_RUNNING_TESTS: false BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} skip: $SKIP_CENTOS_7 - - label: ":ubuntu: Ubuntu 16.04 - Test" + - label: ":ubuntu: Ubuntu 16.04 - Unit Test" command: - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/run.sh" + - "bash ./.cicd/parallel-tests.sh" env: IMAGE_TAG: "ubuntu-16.04" - ENABLE_PARALLEL_TESTS: true - ENABLE_SERIAL_TESTS: true - ENABLE_LONG_RUNNING_TESTS: false BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} skip: $SKIP_UBUNTU_16 - - label: ":ubuntu: Ubuntu 18.04 - Test" + - label: ":ubuntu: Ubuntu 18.04 - Unit Test" command: - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/run.sh" + - "bash ./.cicd/parallel-tests.sh" env: IMAGE_TAG: "ubuntu-18.04" - ENABLE_PARALLEL_TESTS: true - ENABLE_SERIAL_TESTS: true - ENABLE_LONG_RUNNING_TESTS: false BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} skip: $SKIP_UBUNTU_18 - - label: ":darwin: macOS 10.14 - Test" + - label: ":darwin: macOS 10.14 - Unit Test" command: - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && ENABLE_PARALLEL_TESTS=${ENABLE_PARALLEL_TESTS:-true} ENABLE_SERIAL_TESTS=${ENABLE_SERIAL_TESTS:-true} ENABLE_LONG_RUNNING_TESTS=${ENABLE_LONG_RUNNING_TESTS:-false} ./.cicd/run.sh" + - "cd eos && bash ./.cicd/parallel-tests.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + modify-cpu: 12 + modify-ram: 24 + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-large-node-fleet" + + + - label: ":aws: Amazon_Linux 2.0 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2.0 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "amazonlinux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_AMAZON_LINUX_2 + + - label: ":centos: CentOS 7.6 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_CENTOS_7 + + - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 + + - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 + + - label: ":darwin: macOS 10.14 - Long-Running Tests" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && bash ./.cicd/long-running-tests.sh" plugins: - chef/anka#v0.5.1: no-volume: true diff --git a/.cicd/helpers/submodule-regression-checker.sh b/.cicd/submodule-regression-checker.sh similarity index 100% rename from .cicd/helpers/submodule-regression-checker.sh rename to .cicd/submodule-regression-checker.sh diff --git a/.travis.yml b/.travis.yml index 5c07549fb44..8bf6fc31cac 100644 --- a/.travis.yml +++ b/.travis.yml @@ -49,7 +49,7 @@ matrix: - mongodb env: - PATH="/usr/local/opt/ccache/libexec:$PATH" -script: "./.cicd/run.sh" +script: "./.cicd/build.sh && ./.cicd/parallel_tests.sh && ./.cicd/serial_tests.sh" notifications: webhooks: secure: gmqODqoFAil2cR7v++ibqRNECBOSD/VJX+2qPa7XptkVWmVMzbII5CNgBQAscjFsp9arHPMXCCzkBi847PCSiHdsnYFQ4T273FLRWr3cDbLjfmR+BJ7dGKvQnlpSi2Ze2TtAPJyRl+iv+cxDj7cWE5zw2c4xbgh1a/cNO+/ayUfFkyMEIfVWRsHkdkra4gOLywou0XRLHr4CX1V60uU7uuqATnIMMi7gQYwiKKtZqjkbf8wcBvZirDhjQ6lDPN5tnZo6L4QHmqjtzNJg/UrD4h+zES53dLVI4uxlXRAwwpw+mJOFA3QE/3FT+bMQjLCffUz4gZaWcdgebPYzrwSWUbJoFdWAOwcTqivQY0FIQzcz/r6uGWcwWTavzkPEbg68BVM2BZId/0110J6feeTkpJ3MPV+UsIoGTvbg50vi/I06icftuZ/cLqDj3+Emifm7Jlr1sRTSdqtYAJj/2ImUfsb46cwgjAVhFOTvc+KuPgJQgvOXV7bZkxEr5qDWo8Al2sV8BWb83j1rMlZ4LfERokImDVqxu2kkcunchzvhtYFTesSpmwegVpwceCtOtO0rEUgATnfTEHzk2rm8nuz4UtidsQnluUKqmKD0QCqHXFfn+3ZRJsDqr+iCYdxv1BAeAVc9q1L7bgrKDMGiJgkxuhZ2v3J2SflWLvjZjFDduuc= From 8f2b1e4ff605186ed704dbf8eb3fb3bfd4914471 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 15:18:07 -0400 Subject: [PATCH 230/528] testing skip --- .cicd/long-running-tests.sh | 2 +- .cicd/pipeline.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/long-running-tests.sh b/.cicd/long-running-tests.sh index b00ecb45801..4e63e59893e 100755 --- a/.cicd/long-running-tests.sh +++ b/.cicd/long-running-tests.sh @@ -29,6 +29,6 @@ else # Linux done < "$BUILDKITE_ENV_FILE" fi - [[ $SKIP_LRT == true ]] || fold-execute eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" + fold-execute eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" fi \ No newline at end of file diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 33cc8bb8dc4..51732e40578 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -148,7 +148,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_AMAZON_LINUX_2 + skip: "[[ $SKIP_AMAZON_LINUX_2 == true ]] || [[ $SKIP_LRT == true ]]" - label: ":centos: CentOS 7.6 - Long-Running Tests" command: From c0425f60a93d938d3bddf3bea94ecce697cdca5d Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 15:21:12 -0400 Subject: [PATCH 231/528] testing skip --- .cicd/pipeline.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 51732e40578..375e7b745a0 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -79,7 +79,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_AMAZON_LINUX_2 + skip: "[[ $SKIP_AMAZON_LINUX_2 == true ]] || [[ $SKIP_UNIT_TESTS == true ]]" - label: ":centos: CentOS 7.6 - Test" command: @@ -91,7 +91,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_CENTOS_7 + skip: "[[ $SKIP_CENTOS_7 == true ]] || [[ $SKIP_UNIT_TESTS == true ]]" - label: ":ubuntu: Ubuntu 16.04 - Unit Test" command: @@ -103,7 +103,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_16 + skip: "[[ $SKIP_UBUNTU_16 == true ]] || [[ $SKIP_UNIT_TESTS == true ]]" - label: ":ubuntu: Ubuntu 18.04 - Unit Test" command: @@ -115,7 +115,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_18 + skip: "[[ $SKIP_UBUNTU_18 == true ]] || [[ $SKIP_UNIT_TESTS == true ]]" - label: ":darwin: macOS 10.14 - Unit Test" command: @@ -160,7 +160,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_CENTOS_7 + skip: "[[ $SKIP_CENTOS_7 == true ]] || [[ $SKIP_LRT == true ]]" - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" command: @@ -172,7 +172,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_16 + skip: "[[ $SKIP_UBUNTU_16 == true ]] || [[ $SKIP_LRT == true ]]" - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" command: @@ -184,7 +184,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_18 + skip: "[[ $SKIP_UBUNTU_18 == true ]] || [[ $SKIP_LRT == true ]]" - label: ":darwin: macOS 10.14 - Long-Running Tests" command: From 5b995e46dbe7acd114295fc0bd0ca914a3c246f5 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 15:21:49 -0400 Subject: [PATCH 232/528] testing skip --- .cicd/pipeline.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 375e7b745a0..ede18bff6e5 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -148,7 +148,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: "[[ $SKIP_AMAZON_LINUX_2 == true ]] || [[ $SKIP_LRT == true ]]" + skip: "[[ $SKIP_AMAZON_LINUX_2 == true ]] || [[ $SKIP_LONG_RUNNING_TESTS == true ]]" - label: ":centos: CentOS 7.6 - Long-Running Tests" command: @@ -160,7 +160,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: "[[ $SKIP_CENTOS_7 == true ]] || [[ $SKIP_LRT == true ]]" + skip: "[[ $SKIP_CENTOS_7 == true ]] || [[ $SKIP_LONG_RUNNING_TESTS == true ]]" - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" command: @@ -172,7 +172,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: "[[ $SKIP_UBUNTU_16 == true ]] || [[ $SKIP_LRT == true ]]" + skip: "[[ $SKIP_UBUNTU_16 == true ]] || [[ $SKIP_LONG_RUNNING_TESTS == true ]]" - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" command: @@ -184,7 +184,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: "[[ $SKIP_UBUNTU_18 == true ]] || [[ $SKIP_LRT == true ]]" + skip: "[[ $SKIP_UBUNTU_18 == true ]] || [[ $SKIP_LONG_RUNNING_TESTS == true ]]" - label: ":darwin: macOS 10.14 - Long-Running Tests" command: From 82334e2960af82fea9ef09d9ac22268402a1a6e9 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 15:23:47 -0400 Subject: [PATCH 233/528] testing skip --- .cicd/pipeline.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index ede18bff6e5..970d1aa6d57 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -136,6 +136,7 @@ steps: wait-network: true agents: - "queue=mac-anka-large-node-fleet" + skip: "[[ $SKIP_MOJAVE == true ]] || [[ $SKIP_UNIT_TESTS == true ]]" - label: ":aws: Amazon_Linux 2.0 - Long-Running Tests" @@ -148,7 +149,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: "[[ $SKIP_AMAZON_LINUX_2 == true ]] || [[ $SKIP_LONG_RUNNING_TESTS == true ]]" + skip: "[[ $SKIP_AMAZON_LINUX_2 == true ]] || [[ ${SKIP_LONG_RUNNING_TESTS:-true} == true ]]" - label: ":centos: CentOS 7.6 - Long-Running Tests" command: @@ -160,7 +161,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: "[[ $SKIP_CENTOS_7 == true ]] || [[ $SKIP_LONG_RUNNING_TESTS == true ]]" + skip: "[[ $SKIP_CENTOS_7 == true ]] || [[ ${SKIP_LONG_RUNNING_TESTS:-true} == true ]]" - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" command: @@ -172,7 +173,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: "[[ $SKIP_UBUNTU_16 == true ]] || [[ $SKIP_LONG_RUNNING_TESTS == true ]]" + skip: "[[ $SKIP_UBUNTU_16 == true ]] || [[ ${SKIP_LONG_RUNNING_TESTS:-true} == true ]]" - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" command: @@ -184,7 +185,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: "[[ $SKIP_UBUNTU_18 == true ]] || [[ $SKIP_LONG_RUNNING_TESTS == true ]]" + skip: "[[ $SKIP_UBUNTU_18 == true ]] || [[ ${SKIP_LONG_RUNNING_TESTS:-true} == true ]]" - label: ":darwin: macOS 10.14 - Long-Running Tests" command: @@ -205,6 +206,7 @@ steps: wait-network: true agents: - "queue=mac-anka-large-node-fleet" + skip: "[[ $SKIP_MOJAVE == true ]] || [[ ${SKIP_LONG_RUNNING_TESTS:-true} == true ]]" - wait: continue_on_failure: true From b2a00856677f8498eff6337812e4484b18906f4f Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 15:36:26 -0400 Subject: [PATCH 234/528] quick fixes --- .cicd/generate-base-images.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index 8762a5cb445..d52d39a2fc0 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -1,8 +1,7 @@ #!/usr/bin/env bash set -eo pipefail . ./.cicd/helpers/general.sh -. ./$HELPERS_DIR/execute.sh -. ./$HELPERS_DIR/docker-hash.sh +. $HELPERS_DIR/docker-hash.sh # look for Docker image echo "+++ :mag_right: Looking for $FULL_TAG" ORG_REPO=$(echo $FULL_TAG | cut -d: -f1) From 1062127ccb6b16bdd95ba0db3c6d65da40df98eb Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 15:48:02 -0400 Subject: [PATCH 235/528] quick fixes --- .cicd/generate-base-images.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index d52d39a2fc0..cc080c47170 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -10,8 +10,8 @@ EXISTS=$(curl -s -H "Authorization: Bearer $(curl -sSL "https://auth.docker.io/t # build, if neccessary if [[ $EXISTS =~ '404 page not found' || $EXISTS =~ 'manifest unknown' ]]; then # if we cannot pull the image, we build and push it first docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD - execute docker build -t $FULL_TAG -f $CICD_DIR/docker/${IMAGE_TAG}.dockerfile . - execute docker push $FULL_TAG + fold-execute docker build -t $FULL_TAG -f $CICD_DIR/docker/${IMAGE_TAG}.dockerfile . + fold-execute docker push $FULL_TAG else echo "$FULL_TAG already exists." fi \ No newline at end of file From 428b2e1020c0da46e535e381eebd53fcf23c9b2c Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 15:55:06 -0400 Subject: [PATCH 236/528] quick fixes --- .cicd/pipeline.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 970d1aa6d57..802086f60fe 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -79,7 +79,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: "[[ $SKIP_AMAZON_LINUX_2 == true ]] || [[ $SKIP_UNIT_TESTS == true ]]" + skip: "[[ ${SKIP_AMAZON_LINUX_2:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]]" - label: ":centos: CentOS 7.6 - Test" command: @@ -91,7 +91,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: "[[ $SKIP_CENTOS_7 == true ]] || [[ $SKIP_UNIT_TESTS == true ]]" + skip: "[[ ${SKIP_CENTOS_7:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]]" - label: ":ubuntu: Ubuntu 16.04 - Unit Test" command: @@ -103,7 +103,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: "[[ $SKIP_UBUNTU_16 == true ]] || [[ $SKIP_UNIT_TESTS == true ]]" + skip: "[[ ${SKIP_UBUNTU_16:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]]" - label: ":ubuntu: Ubuntu 18.04 - Unit Test" command: @@ -136,7 +136,7 @@ steps: wait-network: true agents: - "queue=mac-anka-large-node-fleet" - skip: "[[ $SKIP_MOJAVE == true ]] || [[ $SKIP_UNIT_TESTS == true ]]" + skip: "([[ ${SKIP_MOJAVE:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]])" - label: ":aws: Amazon_Linux 2.0 - Long-Running Tests" From bd6021192bcdc49348b60688af4b49f2966d909f Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 16:16:11 -0400 Subject: [PATCH 237/528] quick fixes --- .cicd/build.sh | 22 +++++++++++----------- .cicd/generate-base-images.sh | 4 ++-- .cicd/helpers/general.sh | 2 -- .cicd/helpers/installation-build.sh | 12 ++++++------ .cicd/helpers/logging.sh | 8 -------- .cicd/long-running-tests.sh | 8 ++++---- .cicd/parallel-tests.sh | 8 ++++---- .cicd/serial-tests.sh | 8 ++++---- .cicd/travis/trigger-travis.sh | 18 ------------------ 9 files changed, 31 insertions(+), 59 deletions(-) delete mode 100755 .cicd/helpers/logging.sh delete mode 100644 .cicd/travis/trigger-travis.sh diff --git a/.cicd/build.sh b/.cicd/build.sh index 5edc0f601e4..7b4d4745908 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -2,15 +2,15 @@ set -eo pipefail . ./.cicd/helpers/general.sh -fold-execute mkdir -p $BUILD_DIR +mkdir -p $BUILD_DIR if [[ $(uname) == 'Darwin' ]]; then # You can't use chained commands in execute - fold-execute cd $BUILD_DIR - [[ $TRAVIS == true ]] && fold-execute ccache -s - fold-execute cmake .. - fold-execute make -j$JOBS + cd $BUILD_DIR + [[ $TRAVIS == true ]] && ccache -s + cmake .. + make -j$JOBS else # Linux @@ -19,7 +19,7 @@ else # Linux . $HELPERS_DIR/docker-hash.sh - PRE_COMMANDS=". $MOUNTED_DIR/.cicd/helpers/logging.sh && fold-execute ccache -s && cd $MOUNTED_DIR/build" + PRE_COMMANDS=". $MOUNTED_DIR/.cicd/helpers/logging.sh && ccache -s && cd $MOUNTED_DIR/build" # PRE_COMMANDS: Executed pre-cmake # CMAKE_EXTRAS: Executed within and right before the cmake path (cmake CMAKE_EXTRAS ..) if [[ $IMAGE_TAG == 'ubuntu-18.04' ]]; then @@ -35,15 +35,15 @@ else # Linux CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" fi - BUILD_COMMANDS="fold-execute cmake $CMAKE_EXTRAS .. && fold-execute make -j$JOBS" + BUILD_COMMANDS="cmake $CMAKE_EXTRAS .. && make -j$JOBS" # Docker Commands if [[ $BUILDKITE == true ]]; then # Generate Base Images - fold-execute $CICD_DIR/generate-base-images.sh - [[ $ENABLE_INSTALL == true ]] && COMMANDS="fold-execute cp -r $MOUNTED_DIR ~/eosio && fold-execute cd ~/eosio/build &&" + $CICD_DIR/generate-base-images.sh + [[ $ENABLE_INSTALL == true ]] && COMMANDS="cp -r $MOUNTED_DIR ~/eosio && cd ~/eosio/build &&" COMMANDS="$COMMANDS $BUILD_COMMANDS" - [[ $ENABLE_INSTALL == true ]] && COMMAND="$COMMAND && fold-execute make install" + [[ $ENABLE_INSTALL == true ]] && COMMAND="$COMMAND && make install" elif [[ $TRAVIS == true ]]; then ARGS="$ARGS -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e JOBS -e TRAVIS -e CCACHE_DIR=/opt/.ccache" COMMANDS="$BUILD_COMMANDS" @@ -59,6 +59,6 @@ else # Linux done < "$BUILDKITE_ENV_FILE" fi - fold-execute eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" + eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" fi \ No newline at end of file diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index cc080c47170..10e7f81b8da 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -10,8 +10,8 @@ EXISTS=$(curl -s -H "Authorization: Bearer $(curl -sSL "https://auth.docker.io/t # build, if neccessary if [[ $EXISTS =~ '404 page not found' || $EXISTS =~ 'manifest unknown' ]]; then # if we cannot pull the image, we build and push it first docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD - fold-execute docker build -t $FULL_TAG -f $CICD_DIR/docker/${IMAGE_TAG}.dockerfile . - fold-execute docker push $FULL_TAG + docker build -t $FULL_TAG -f $CICD_DIR/docker/${IMAGE_TAG}.dockerfile . + docker push $FULL_TAG else echo "$FULL_TAG already exists." fi \ No newline at end of file diff --git a/.cicd/helpers/general.sh b/.cicd/helpers/general.sh index b7cb6f9f4e2..1ba5c8eed9c 100644 --- a/.cicd/helpers/general.sh +++ b/.cicd/helpers/general.sh @@ -4,8 +4,6 @@ export CICD_DIR=$ROOT_DIR/.cicd export HELPERS_DIR=$CICD_DIR/helpers export JOBS=${JOBS:-"$(getconf _NPROCESSORS_ONLN)"} -. $HELPERS_DIR/logging.sh - function determine_eos_version() { export EOSIO_VERSION_MAJOR=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_MAJOR" | tail -1 | sed 's/.*VERSION_MAJOR //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) export EOSIO_VERSION_MINOR=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_MINOR" | tail -1 | sed 's/.*VERSION_MINOR //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) diff --git a/.cicd/helpers/installation-build.sh b/.cicd/helpers/installation-build.sh index 0b200af7cee..7a58b3b94e3 100755 --- a/.cicd/helpers/installation-build.sh +++ b/.cicd/helpers/installation-build.sh @@ -8,13 +8,13 @@ if [[ $BUILDKITE_BRANCH =~ ^release/[0-9].[0-9]+.x$ || $BUILDKITE_BRANCH =~ ^mas determine_eos_version export EOS_BINARIES_TAG="eosio/producer:eos-binaries-$BUILDKITE_BRANCH-$EOSIO_VERSION_MAJOR.$EOSIO_VERSION_MINOR.$EOSIO_VERSION_PATCH" export ARGS="--name eos-binaries-$BUILDKITE_COMMIT -v $(pwd):$MOUNTED_DIR" - fold-execute docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD + docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD $CICD_DIR/build.sh - fold-execute docker commit eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG - fold-execute docker commit eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG-$BUILDKITE_COMMIT - fold-execute docker push $EOS_BINARIES_TAG - fold-execute docker push $EOS_BINARIES_TAG-$BUILDKITE_COMMIT - fold-execute docker stop eos-binaries-$BUILDKITE_COMMIT && docker rm eos-binaries-$BUILDKITE_COMMIT + docker commit eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG + docker commit eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG-$BUILDKITE_COMMIT + docker push $EOS_BINARIES_TAG + docker push $EOS_BINARIES_TAG-$BUILDKITE_COMMIT + docker stop eos-binaries-$BUILDKITE_COMMIT && docker rm eos-binaries-$BUILDKITE_COMMIT else echo "This pipeline will only generate images against master, develop, and release branches. Exiting..." exit 0 diff --git a/.cicd/helpers/logging.sh b/.cicd/helpers/logging.sh deleted file mode 100755 index 357b4e3f420..00000000000 --- a/.cicd/helpers/logging.sh +++ /dev/null @@ -1,8 +0,0 @@ -function fold-execute() { - [[ $TRAVIS == true ]] && echo -en "travis_fold:start:$(echo $@)\r" || true - echo "--- Executing: $@" - "$@" - rcode=$? - [ $rcode -eq 0 ] || exit $rcode - [[ $TRAVIS == true ]] && echo -en "travis_fold:end:$(echo $@)\r" || true -} \ No newline at end of file diff --git a/.cicd/long-running-tests.sh b/.cicd/long-running-tests.sh index 4e63e59893e..850e7a3cf6e 100755 --- a/.cicd/long-running-tests.sh +++ b/.cicd/long-running-tests.sh @@ -2,13 +2,13 @@ set -eo pipefail . ./.cicd/helpers/general.sh -TEST="fold-execute ctest -L long_running_tests --output-on-failure -T Test" +TEST="ctest -L long_running_tests --output-on-failure -T Test" if [[ $(uname) == 'Darwin' ]]; then # You can't use chained commands in execute - fold-execute cd $BUILD_DIR - fold-execute $TEST + cd $BUILD_DIR + $TEST else # Linux @@ -29,6 +29,6 @@ else # Linux done < "$BUILDKITE_ENV_FILE" fi - fold-execute eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" + eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" fi \ No newline at end of file diff --git a/.cicd/parallel-tests.sh b/.cicd/parallel-tests.sh index 1e89f7d2eb4..8e9660129e4 100755 --- a/.cicd/parallel-tests.sh +++ b/.cicd/parallel-tests.sh @@ -2,13 +2,13 @@ set -eo pipefail . ./.cicd/helpers/general.sh -TEST="fold-execute ctest -j$JOBS -LE _tests --output-on-failure -T Test" +TEST="ctest -j$JOBS -LE _tests --output-on-failure -T Test" if [[ $(uname) == 'Darwin' ]]; then # You can't use chained commands in execute - fold-execute cd $BUILD_DIR - fold-execute $TEST + cd $BUILD_DIR + $TEST else # Linux @@ -29,6 +29,6 @@ else # Linux done < "$BUILDKITE_ENV_FILE" fi - fold-execute eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" + eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" fi \ No newline at end of file diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index a7f5e15cab1..2c34c7995ea 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -2,13 +2,13 @@ set -eo pipefail . ./.cicd/helpers/general.sh -TEST="mkdir -p ./mongodb && fold-execute mongod --dbpath ./mongodb --fork --logpath mongod.log && fold-execute ctest -L nonparallelizable_tests --output-on-failure -T Test" +TEST="mkdir -p ./mongodb && mongod --dbpath ./mongodb --fork --logpath mongod.log && ctest -L nonparallelizable_tests --output-on-failure -T Test" if [[ $(uname) == 'Darwin' ]]; then # You can't use chained commands in execute - fold-execute cd $BUILD_DIR - fold-execute $TEST + cd $BUILD_DIR + $TEST else # Linux @@ -29,6 +29,6 @@ else # Linux done < "$BUILDKITE_ENV_FILE" fi - fold-execute eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" + eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" fi \ No newline at end of file diff --git a/.cicd/travis/trigger-travis.sh b/.cicd/travis/trigger-travis.sh deleted file mode 100644 index d5be2d89d8a..00000000000 --- a/.cicd/travis/trigger-travis.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail -echo '+++ :gear: Configuring Travis CI Build' -[[ -z $TRIGGER_TRAVIS_API_KEY ]] && echo '+++ :no_entry: ERROR: TRIGGER_TRAVIS_API_KEY key not found!' && exit 1 -TRAVIS_MESSAGE=${TRAVIS_MESSAGE:-"$BUILDKITE_MESSAGE - $(echo $BUILDKITE_BUILD_URL | grep -oe 'buildkite.*')"} -SOURCE_SLUG=${SOURCE_SLUG:-'eos'} -[[ -z $BODY ]] && BODY="$(jq -nc '{"request":{"branch":env.BUILDKITE_BRANCH,"message":env.TRAVIS_MESSAGE}}')" -echo 'Configuration:' -echo "$BODY" | jq -echo 'This configuration is derived from the BUILDKITE_BRANCH and BUILDKITE_MESSAGE variables set for this build.' -echo '+++ :tractor: Triggering Travis CI Build' -export RESULT="$(curl -s -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "Travis-API-Version: 3" -H "Authorization: token $TRIGGER_TRAVIS_API_KEY" -d "$BODY" https://api.travis-ci.org/repo/EOSIO%2f${SOURCE_SLUG}/requests)" -echo 'API Response:' -echo "$RESULT" | jq 2>/dev/null || echo "$RESULT" -if [[ "$(echo $RESULT | jq -r '.["@type"]')" != "pending" ]]; then - echo '+++ :no_entry: ERROR: Failed to trigger Travis API!' - exit 1 -fi \ No newline at end of file From 3794efe447674a2d8da569a787309b215a98cc9b Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 16:36:55 -0400 Subject: [PATCH 238/528] quick fixes --- .cicd/pipeline.yml | 509 +++++++++++++++++++++++---------------------- 1 file changed, 255 insertions(+), 254 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 802086f60fe..653a75c90cb 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -10,283 +10,284 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_AMAZON_LINUX_2 + skip: "( [[ ${SKIP_AMAZON_LINUX_2:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]] )" - - label: ":centos: CentOS 7.6 - Build" - command: - - "bash ./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - - label: ":ubuntu: Ubuntu 16.04 - Build" - command: - - "bash ./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_16 + # - label: ":centos: CentOS 7.6 - Build" + # command: + # - "bash ./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "centos-7.6" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} - - label: ":ubuntu: Ubuntu 18.04 - Build" - command: - - "bash ./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_18 + # - label: ":ubuntu: Ubuntu 16.04 - Build" + # command: + # - "bash ./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "ubuntu-16.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_16 - - label: ":darwin: macOS 10.14 - Build" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && ./.cicd/build.sh" - - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - modify-cpu: 12 - modify-ram: 24 - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-large-node-fleet" + # - label: ":ubuntu: Ubuntu 18.04 - Build" + # command: + # - "bash ./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "ubuntu-18.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_18 - - wait + # - label: ":darwin: macOS 10.14 - Build" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && ./.cicd/build.sh" + # - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # modify-cpu: 12 + # modify-ram: 24 + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-large-node-fleet" - - label: ":aws: Amazon_Linux 2.0 - Unit Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2.0 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "amazonlinux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: "[[ ${SKIP_AMAZON_LINUX_2:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]]" + # - wait - - label: ":centos: CentOS 7.6 - Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: "[[ ${SKIP_CENTOS_7:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]]" + # - label: ":aws: Amazon_Linux 2.0 - Unit Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2.0 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "amazonlinux-2" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: "[[ ${SKIP_AMAZON_LINUX_2:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]]" - - label: ":ubuntu: Ubuntu 16.04 - Unit Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: "[[ ${SKIP_UBUNTU_16:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]]" + # - label: ":centos: CentOS 7.6 - Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "centos-7.6" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: "[[ ${SKIP_CENTOS_7:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]]" - - label: ":ubuntu: Ubuntu 18.04 - Unit Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: "[[ $SKIP_UBUNTU_18 == true ]] || [[ $SKIP_UNIT_TESTS == true ]]" + # - label: ":ubuntu: Ubuntu 16.04 - Unit Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-16.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: "[[ ${SKIP_UBUNTU_16:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]]" - - label: ":darwin: macOS 10.14 - Unit Test" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && bash ./.cicd/parallel-tests.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - modify-cpu: 12 - modify-ram: 24 - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-large-node-fleet" - skip: "([[ ${SKIP_MOJAVE:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]])" + # - label: ":ubuntu: Ubuntu 18.04 - Unit Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-18.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: "[[ $SKIP_UBUNTU_18 == true ]] || [[ $SKIP_UNIT_TESTS == true ]]" + # - label: ":darwin: macOS 10.14 - Unit Test" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + # - "cd eos && bash ./.cicd/parallel-tests.sh" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # modify-cpu: 12 + # modify-ram: 24 + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-large-node-fleet" + # skip: "([[ ${SKIP_MOJAVE:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]])" - - label: ":aws: Amazon_Linux 2.0 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2.0 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/long-running-tests.sh" - env: - IMAGE_TAG: "amazonlinux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: "[[ $SKIP_AMAZON_LINUX_2 == true ]] || [[ ${SKIP_LONG_RUNNING_TESTS:-true} == true ]]" - - label: ":centos: CentOS 7.6 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/long-running-tests.sh" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: "[[ $SKIP_CENTOS_7 == true ]] || [[ ${SKIP_LONG_RUNNING_TESTS:-true} == true ]]" + # - label: ":aws: Amazon_Linux 2.0 - Long-Running Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2.0 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/long-running-tests.sh" + # env: + # IMAGE_TAG: "amazonlinux-2" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: "[[ $SKIP_AMAZON_LINUX_2 == true ]] || [[ ${SKIP_LONG_RUNNING_TESTS:-true} == true ]]" - - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/long-running-tests.sh" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: "[[ $SKIP_UBUNTU_16 == true ]] || [[ ${SKIP_LONG_RUNNING_TESTS:-true} == true ]]" + # - label: ":centos: CentOS 7.6 - Long-Running Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/long-running-tests.sh" + # env: + # IMAGE_TAG: "centos-7.6" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: "[[ $SKIP_CENTOS_7 == true ]] || [[ ${SKIP_LONG_RUNNING_TESTS:-true} == true ]]" - - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/long-running-tests.sh" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: "[[ $SKIP_UBUNTU_18 == true ]] || [[ ${SKIP_LONG_RUNNING_TESTS:-true} == true ]]" + # - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/long-running-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-16.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: "[[ $SKIP_UBUNTU_16 == true ]] || [[ ${SKIP_LONG_RUNNING_TESTS:-true} == true ]]" - - label: ":darwin: macOS 10.14 - Long-Running Tests" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && bash ./.cicd/long-running-tests.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - modify-cpu: 12 - modify-ram: 24 - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-large-node-fleet" - skip: "[[ $SKIP_MOJAVE == true ]] || [[ ${SKIP_LONG_RUNNING_TESTS:-true} == true ]]" + # - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/long-running-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-18.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: "[[ $SKIP_UBUNTU_18 == true ]] || [[ ${SKIP_LONG_RUNNING_TESTS:-true} == true ]]" - - wait: - continue_on_failure: true + # - label: ":darwin: macOS 10.14 - Long-Running Tests" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + # - "cd eos && bash ./.cicd/long-running-tests.sh" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # modify-cpu: 12 + # modify-ram: 24 + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-large-node-fleet" + # skip: "[[ $SKIP_MOJAVE == true ]] || [[ ${SKIP_LONG_RUNNING_TESTS:-true} == true ]]" - - command: | - echo '+++ :compression: Extracting Test Metrics Code' - tar -zxf .cicd/metrics/test-metrics.tar.gz - echo '+++ :javascript: Running test-metrics.js' - node --max-old-space-size=32768 test-metrics.js - label: ":bar_chart: Test Metrics" - agents: - queue: "automation-eos-builder-fleet" - timeout: 10 - soft_fail: true + # - wait: + # continue_on_failure: true + + # - command: | + # echo '+++ :compression: Extracting Test Metrics Code' + # tar -zxf .cicd/metrics/test-metrics.tar.gz + # echo '+++ :javascript: Running test-metrics.js' + # node --max-old-space-size=32768 test-metrics.js + # label: ":bar_chart: Test Metrics" + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: 10 + # soft_fail: true - - wait + # - wait - - trigger: "eosio-dot-contracts-base-images-beta" - label: ":docker: Ensure EOSIO Installation Base Image" - build: - commit: "${BUILDKITE_COMMIT}" - branch: "${BUILDKITE_BRANCH}" - async: true + # - trigger: "eosio-dot-contracts-base-images-beta" + # label: ":docker: Ensure EOSIO Installation Base Image" + # build: + # commit: "${BUILDKITE_COMMIT}" + # branch: "${BUILDKITE_BRANCH}" + # async: true - - wait + # - wait - - label: ":centos: Centos 7.6 - Package Builder" - command: - - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package-builder.sh" - env: - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_CENTOS_7 + # - label: ":centos: Centos 7.6 - Package Builder" + # command: + # - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + # - "./.cicd/package-builder.sh" + # env: + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_CENTOS_7 - - label: ":ubuntu: Ubuntu 16.04 - Package Builder" - command: - - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package-builder.sh" - env: - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_16 + # - label: ":ubuntu: Ubuntu 16.04 - Package Builder" + # command: + # - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + # - "./.cicd/package-builder.sh" + # env: + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_16 - - label: ":ubuntu: Ubuntu 18.04 - Package Builder" - command: - - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package-builder.sh" - env: - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_18 + # - label: ":ubuntu: Ubuntu 18.04 - Package Builder" + # command: + # - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + # - "./.cicd/package-builder.sh" + # env: + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_18 - - label: ":darwin: Mojave - Package Builder" - command: - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build & Test' && tar -xzf build.tar.gz" - - "cd eos && ./.cicd/package-builder.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-node-fleet" - timeout: 10 + # - label: ":darwin: Mojave - Package Builder" + # command: + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" + # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build & Test' && tar -xzf build.tar.gz" + # - "cd eos && ./.cicd/package-builder.sh" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-node-fleet" + # timeout: 10 - - label: ":git: Git Submodule Regression Check" - command: - - "./.cicd/submodule-regression-checker.sh" - agents: - queue: "automation-basic-builder-fleet" - timeout: 5 \ No newline at end of file + # - label: ":git: Git Submodule Regression Check" + # command: + # - "./.cicd/submodule-regression-checker.sh" + # agents: + # queue: "automation-basic-builder-fleet" + # timeout: 5 \ No newline at end of file From c676709e1e5fcd8132daaf76888406d91b89a04b Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 16:37:57 -0400 Subject: [PATCH 239/528] quick fixes --- .cicd/pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 653a75c90cb..625b5337f5e 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -10,7 +10,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: "( [[ ${SKIP_AMAZON_LINUX_2:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]] )" + skip: ( [[ ${SKIP_AMAZON_LINUX_2:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]] ) # - label: ":centos: CentOS 7.6 - Build" From d382b3babdd647e562e28b84acc9f6855c22d3ad Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 16:39:06 -0400 Subject: [PATCH 240/528] quick fixes --- .cicd/pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 625b5337f5e..5429b351c9e 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -10,7 +10,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: ( [[ ${SKIP_AMAZON_LINUX_2:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]] ) + skip: ( [[ ${SKIP_AMAZON_LINUX_2:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]] ) || false # - label: ":centos: CentOS 7.6 - Build" From 3abb11d5546515496396b4cf25fca242b9b4e523 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 16:40:26 -0400 Subject: [PATCH 241/528] quick fixes --- .cicd/pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 5429b351c9e..7c961129061 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -10,7 +10,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: ( [[ ${SKIP_AMAZON_LINUX_2:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]] ) || false + skip: "[[ ${SKIP_UNIT_TESTS:-false} == true ]] || false" # - label: ":centos: CentOS 7.6 - Build" From 802e27c3ac2dd4aaddf2e796f1621c50edd8b140 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 16:41:12 -0400 Subject: [PATCH 242/528] quick fixes --- .cicd/pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 7c961129061..c58308d6fca 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -10,7 +10,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: "[[ ${SKIP_UNIT_TESTS:-false} == true ]] || false" + skip: "[[ ${SKIP_UNIT_TESTS:-false} == true ]] || echo false" # - label: ":centos: CentOS 7.6 - Build" From 1f60a815c6aa626a81bf7b5077f4e293a5969c60 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 16:42:28 -0400 Subject: [PATCH 243/528] quick fixes --- .cicd/pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index c58308d6fca..21a85362b4b 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -10,7 +10,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: "[[ ${SKIP_UNIT_TESTS:-false} == true ]] || echo false" + skip: "[[ $SKIP_UNIT_TESTS == true ]] || false" # - label: ":centos: CentOS 7.6 - Build" From f8a18409663b202a91f866138f3ea483cc350cf3 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 16:43:09 -0400 Subject: [PATCH 244/528] quick fixes --- .cicd/pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 21a85362b4b..1c5b7812d79 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -10,7 +10,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: "[[ $SKIP_UNIT_TESTS == true ]] || false" + skip: "[[ $SKIP_UNIT_TESTS == true ]]" # - label: ":centos: CentOS 7.6 - Build" From a65c67294e7a692b7eb90f6ff953576693cdd3cb Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 16:44:01 -0400 Subject: [PATCH 245/528] quick fixes --- .cicd/pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 1c5b7812d79..6593629d58f 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -10,7 +10,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: "[[ $SKIP_UNIT_TESTS == true ]]" + skip: ( [[ $SKIP_UNIT_TESTS == true ]] || false ) # - label: ":centos: CentOS 7.6 - Build" From 0055c79767c54ab68c56b78254c9b5056219adc5 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 17:03:17 -0400 Subject: [PATCH 246/528] quick fixes --- .cicd/pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 6593629d58f..55f740a779a 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -10,7 +10,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: ( [[ $SKIP_UNIT_TESTS == true ]] || false ) + skip: ( [[ $SKIP_UNIT_TESTS == true ]] || echo false ) # - label: ":centos: CentOS 7.6 - Build" From 5208a678ced40ef1298dad0e3ce8ad5f32234f7a Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 17:06:11 -0400 Subject: [PATCH 247/528] quick fixes --- .cicd/pipeline.yml | 395 ++++++++++++++++++++++----------------------- 1 file changed, 196 insertions(+), 199 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 55f740a779a..60937d744e6 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -10,134 +10,132 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: ( [[ $SKIP_UNIT_TESTS == true ]] || echo false ) + skip: $SKIP_AMAZON_LINUX_2 + - label: ":centos: CentOS 7.6 - Build" + command: + - "bash ./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} - # - label: ":centos: CentOS 7.6 - Build" - # command: - # - "bash ./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "centos-7.6" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - - # - label: ":ubuntu: Ubuntu 16.04 - Build" - # command: - # - "bash ./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_16 + - label: ":ubuntu: Ubuntu 16.04 - Build" + command: + - "bash ./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 - # - label: ":ubuntu: Ubuntu 18.04 - Build" - # command: - # - "bash ./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_18 + - label: ":ubuntu: Ubuntu 18.04 - Build" + command: + - "bash ./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 - # - label: ":darwin: macOS 10.14 - Build" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && ./.cicd/build.sh" - # - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # modify-cpu: 12 - # modify-ram: 24 - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-large-node-fleet" + - label: ":darwin: macOS 10.14 - Build" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && ./.cicd/build.sh" + - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + modify-cpu: 12 + modify-ram: 24 + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-large-node-fleet" - # - wait + - wait - # - label: ":aws: Amazon_Linux 2.0 - Unit Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2.0 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "amazonlinux-2" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: "[[ ${SKIP_AMAZON_LINUX_2:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]]" + - label: ":aws: Amazon_Linux 2.0 - Unit Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2.0 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "amazonlinux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_AMAZON_LINUX_2 - # - label: ":centos: CentOS 7.6 - Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "centos-7.6" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: "[[ ${SKIP_CENTOS_7:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]]" + - label: ":centos: CentOS 7.6 - Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_CENTOS_7 - # - label: ":ubuntu: Ubuntu 16.04 - Unit Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: "[[ ${SKIP_UBUNTU_16:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]]" + - label: ":ubuntu: Ubuntu 16.04 - Unit Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 - # - label: ":ubuntu: Ubuntu 18.04 - Unit Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: "[[ $SKIP_UBUNTU_18 == true ]] || [[ $SKIP_UNIT_TESTS == true ]]" + - label: ":ubuntu: Ubuntu 18.04 - Unit Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 - # - label: ":darwin: macOS 10.14 - Unit Test" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - # - "cd eos && bash ./.cicd/parallel-tests.sh" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # modify-cpu: 12 - # modify-ram: 24 - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-large-node-fleet" - # skip: "([[ ${SKIP_MOJAVE:-false} == true ]] || [[ ${SKIP_UNIT_TESTS:-false} == true ]])" + - label: ":darwin: macOS 10.14 - Unit Test" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && bash ./.cicd/parallel-tests.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + modify-cpu: 12 + modify-ram: 24 + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-large-node-fleet" # - label: ":aws: Amazon_Linux 2.0 - Long-Running Tests" @@ -150,7 +148,7 @@ steps: # agents: # queue: "automation-eos-builder-fleet" # timeout: ${TIMEOUT:-10} - # skip: "[[ $SKIP_AMAZON_LINUX_2 == true ]] || [[ ${SKIP_LONG_RUNNING_TESTS:-true} == true ]]" + # skip: $SKIP_AMAZON_LINUX_2 # - label: ":centos: CentOS 7.6 - Long-Running Tests" # command: @@ -162,38 +160,38 @@ steps: # agents: # queue: "automation-eos-builder-fleet" # timeout: ${TIMEOUT:-10} - # skip: "[[ $SKIP_CENTOS_7 == true ]] || [[ ${SKIP_LONG_RUNNING_TESTS:-true} == true ]]" + # skip: $SKIP_CENTOS_7 # - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" # command: # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/long-running-tests.sh" + # - "bash ./.cicd/parallel-tests.sh" # env: # IMAGE_TAG: "ubuntu-16.04" # BUILDKITE_AGENT_ACCESS_TOKEN: # agents: # queue: "automation-eos-builder-fleet" # timeout: ${TIMEOUT:-10} - # skip: "[[ $SKIP_UBUNTU_16 == true ]] || [[ ${SKIP_LONG_RUNNING_TESTS:-true} == true ]]" + # skip: $SKIP_UBUNTU_16 # - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" # command: # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/long-running-tests.sh" + # - "bash ./.cicd/parallel-tests.sh" # env: # IMAGE_TAG: "ubuntu-18.04" # BUILDKITE_AGENT_ACCESS_TOKEN: # agents: # queue: "automation-eos-builder-fleet" # timeout: ${TIMEOUT:-10} - # skip: "[[ $SKIP_UBUNTU_18 == true ]] || [[ ${SKIP_LONG_RUNNING_TESTS:-true} == true ]]" + # skip: $SKIP_UBUNTU_18 # - label: ":darwin: macOS 10.14 - Long-Running Tests" # command: # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - # - "cd eos && bash ./.cicd/long-running-tests.sh" + # - "cd eos && bash ./.cicd/parallel-tests.sh" # plugins: # - chef/anka#v0.5.1: # no-volume: true @@ -207,87 +205,86 @@ steps: # wait-network: true # agents: # - "queue=mac-anka-large-node-fleet" - # skip: "[[ $SKIP_MOJAVE == true ]] || [[ ${SKIP_LONG_RUNNING_TESTS:-true} == true ]]" - # - wait: - # continue_on_failure: true + - wait: + continue_on_failure: true - # - command: | - # echo '+++ :compression: Extracting Test Metrics Code' - # tar -zxf .cicd/metrics/test-metrics.tar.gz - # echo '+++ :javascript: Running test-metrics.js' - # node --max-old-space-size=32768 test-metrics.js - # label: ":bar_chart: Test Metrics" - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: 10 - # soft_fail: true + - command: | + echo '+++ :compression: Extracting Test Metrics Code' + tar -zxf .cicd/metrics/test-metrics.tar.gz + echo '+++ :javascript: Running test-metrics.js' + node --max-old-space-size=32768 test-metrics.js + label: ":bar_chart: Test Metrics" + agents: + queue: "automation-eos-builder-fleet" + timeout: 10 + soft_fail: true - # - wait + - wait - # - trigger: "eosio-dot-contracts-base-images-beta" - # label: ":docker: Ensure EOSIO Installation Base Image" - # build: - # commit: "${BUILDKITE_COMMIT}" - # branch: "${BUILDKITE_BRANCH}" - # async: true + - trigger: "eosio-dot-contracts-base-images-beta" + label: ":docker: Ensure EOSIO Installation Base Image" + build: + commit: "${BUILDKITE_COMMIT}" + branch: "${BUILDKITE_BRANCH}" + async: true - # - wait + - wait - # - label: ":centos: Centos 7.6 - Package Builder" - # command: - # - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - # - "./.cicd/package-builder.sh" - # env: - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_CENTOS_7 + - label: ":centos: Centos 7.6 - Package Builder" + command: + - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "./.cicd/package-builder.sh" + env: + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_CENTOS_7 - # - label: ":ubuntu: Ubuntu 16.04 - Package Builder" - # command: - # - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - # - "./.cicd/package-builder.sh" - # env: - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_16 + - label: ":ubuntu: Ubuntu 16.04 - Package Builder" + command: + - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "./.cicd/package-builder.sh" + env: + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 - # - label: ":ubuntu: Ubuntu 18.04 - Package Builder" - # command: - # - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - # - "./.cicd/package-builder.sh" - # env: - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_18 + - label: ":ubuntu: Ubuntu 18.04 - Package Builder" + command: + - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "./.cicd/package-builder.sh" + env: + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 - # - label: ":darwin: Mojave - Package Builder" - # command: - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" - # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build & Test' && tar -xzf build.tar.gz" - # - "cd eos && ./.cicd/package-builder.sh" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-node-fleet" - # timeout: 10 + - label: ":darwin: Mojave - Package Builder" + command: + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build & Test' && tar -xzf build.tar.gz" + - "cd eos && ./.cicd/package-builder.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-node-fleet" + timeout: 10 - # - label: ":git: Git Submodule Regression Check" - # command: - # - "./.cicd/submodule-regression-checker.sh" - # agents: - # queue: "automation-basic-builder-fleet" - # timeout: 5 \ No newline at end of file + - label: ":git: Git Submodule Regression Check" + command: + - "./.cicd/submodule-regression-checker.sh" + agents: + queue: "automation-basic-builder-fleet" + timeout: 5 \ No newline at end of file From 9c4b7917a8286fba8c90083e3ea5b38a2e035930 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 17:07:14 -0400 Subject: [PATCH 248/528] quick fixes --- .cicd/pipeline.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 60937d744e6..394199d9802 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -233,7 +233,7 @@ steps: - label: ":centos: Centos 7.6 - Package Builder" command: - - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - "./.cicd/package-builder.sh" env: BUILDKITE_AGENT_ACCESS_TOKEN: @@ -244,7 +244,7 @@ steps: - label: ":ubuntu: Ubuntu 16.04 - Package Builder" command: - - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - "./.cicd/package-builder.sh" env: BUILDKITE_AGENT_ACCESS_TOKEN: @@ -255,7 +255,7 @@ steps: - label: ":ubuntu: Ubuntu 18.04 - Package Builder" command: - - "cd /workdir && buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - "./.cicd/package-builder.sh" env: BUILDKITE_AGENT_ACCESS_TOKEN: From bc0d709abb11c1a7bb8be02f28eb45ca011b3a5c Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 17:10:31 -0400 Subject: [PATCH 249/528] quick fixes --- .cicd/pipeline.yml | 71 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 394199d9802..c15a4313287 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -136,6 +136,77 @@ steps: wait-network: true agents: - "queue=mac-anka-large-node-fleet" + skip: $SKIP_MOJAVE + + + - label: ":aws: Amazon_Linux 2.0 - Serial Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2.0 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/serial-tests.sh" + env: + IMAGE_TAG: "amazonlinux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_AMAZON_LINUX_2 + + - label: ":centos: CentOS 7.6 - Serial Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/serial-tests.sh" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_CENTOS_7 + + - label: ":ubuntu: Ubuntu 16.04 - Serial Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/serial-tests.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 + + - label: ":ubuntu: Ubuntu 18.04 - Serial Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/serial-tests.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 + + - label: ":darwin: macOS 10.14 - Serial Test" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && bash ./.cicd/serial-tests.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + modify-cpu: 12 + modify-ram: 24 + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-large-node-fleet" + skip: $SKIP_MOJAVE # - label: ":aws: Amazon_Linux 2.0 - Long-Running Tests" From 04aa64f8d1164a16f0c6938366bacea3923b2ff1 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 17:14:17 -0400 Subject: [PATCH 250/528] quick fixes --- .cicd/long-running-tests.sh | 4 +--- .cicd/parallel-tests.sh | 4 +--- .cicd/serial-tests.sh | 4 +--- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/.cicd/long-running-tests.sh b/.cicd/long-running-tests.sh index 850e7a3cf6e..ed5f653425c 100755 --- a/.cicd/long-running-tests.sh +++ b/.cicd/long-running-tests.sh @@ -17,9 +17,7 @@ else # Linux . $HELPERS_DIR/docker-hash.sh - PRE_COMMANDS=". $MOUNTED_DIR/.cicd/helpers/logging.sh && cd $MOUNTED_DIR/build" - - COMMANDS="$PRE_COMMANDS && $TEST" + COMMANDS="cd $MOUNTED_DIR/build && $TEST" # Load BUILDKITE Environment Variables for use in docker run if [[ -f $BUILDKITE_ENV_FILE ]]; then diff --git a/.cicd/parallel-tests.sh b/.cicd/parallel-tests.sh index 8e9660129e4..5ff2247f0c8 100755 --- a/.cicd/parallel-tests.sh +++ b/.cicd/parallel-tests.sh @@ -17,9 +17,7 @@ else # Linux . $HELPERS_DIR/docker-hash.sh - PRE_COMMANDS=". $MOUNTED_DIR/.cicd/helpers/logging.sh && cd $MOUNTED_DIR/build" - - COMMANDS="$PRE_COMMANDS && $TEST" + COMMANDS="cd $MOUNTED_DIR/build && $TEST" # Load BUILDKITE Environment Variables for use in docker run if [[ -f $BUILDKITE_ENV_FILE ]]; then diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index 2c34c7995ea..935b667d128 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -17,9 +17,7 @@ else # Linux . $HELPERS_DIR/docker-hash.sh - PRE_COMMANDS=". $MOUNTED_DIR/.cicd/helpers/logging.sh && cd $MOUNTED_DIR/build" - - COMMANDS="$PRE_COMMANDS && $TEST" + COMMANDS="cd $MOUNTED_DIR/build && $TEST" # Load BUILDKITE Environment Variables for use in docker run if [[ -f $BUILDKITE_ENV_FILE ]]; then From 41ee851552da52b76e371ff33896667cdedb6b50 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 17:31:37 -0400 Subject: [PATCH 251/528] quick fixes --- .cicd/build.sh | 2 +- test.sh | 7 ------- 2 files changed, 1 insertion(+), 8 deletions(-) delete mode 100755 test.sh diff --git a/.cicd/build.sh b/.cicd/build.sh index 7b4d4745908..bb4d05f1bb0 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -19,7 +19,7 @@ else # Linux . $HELPERS_DIR/docker-hash.sh - PRE_COMMANDS=". $MOUNTED_DIR/.cicd/helpers/logging.sh && ccache -s && cd $MOUNTED_DIR/build" + PRE_COMMANDS="ccache -s && cd $MOUNTED_DIR/build" # PRE_COMMANDS: Executed pre-cmake # CMAKE_EXTRAS: Executed within and right before the cmake path (cmake CMAKE_EXTRAS ..) if [[ $IMAGE_TAG == 'ubuntu-18.04' ]]; then diff --git a/test.sh b/test.sh deleted file mode 100755 index 9a06da487ca..00000000000 --- a/test.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -. ./.cicd/helpers/logging.sh - -COMMAND="echo 123" - -$COMMAND From b3b39990889a8e238ca6ac7dc41cb5d5ee200485 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 17:45:04 -0400 Subject: [PATCH 252/528] quick fixes --- .cicd/build.sh | 4 ++-- .cicd/pipeline.yml | 26 ++++++++++---------------- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index bb4d05f1bb0..62ed3174dae 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -19,7 +19,7 @@ else # Linux . $HELPERS_DIR/docker-hash.sh - PRE_COMMANDS="ccache -s && cd $MOUNTED_DIR/build" + PRE_COMMANDS="cd $MOUNTED_DIR/build" # PRE_COMMANDS: Executed pre-cmake # CMAKE_EXTRAS: Executed within and right before the cmake path (cmake CMAKE_EXTRAS ..) if [[ $IMAGE_TAG == 'ubuntu-18.04' ]]; then @@ -46,7 +46,7 @@ else # Linux [[ $ENABLE_INSTALL == true ]] && COMMAND="$COMMAND && make install" elif [[ $TRAVIS == true ]]; then ARGS="$ARGS -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e JOBS -e TRAVIS -e CCACHE_DIR=/opt/.ccache" - COMMANDS="$BUILD_COMMANDS" + COMMANDS="ccache -s && $BUILD_COMMANDS" fi COMMANDS="$PRE_COMMANDS && $COMMANDS" diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index c15a4313287..3df442237b0 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,6 +1,6 @@ steps: - - label: ":aws: Amazon_Linux 2.0 - Build" + - label: ":aws: Amazon_Linux 2 - Build" command: - "bash ./.cicd/build.sh" - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" @@ -69,9 +69,9 @@ steps: - wait - - label: ":aws: Amazon_Linux 2.0 - Unit Test" + - label: ":aws: Amazon_Linux 2 - Unit Test" command: - - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2.0 - Build' && tar -xzf build.tar.gz" + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - "bash ./.cicd/parallel-tests.sh" env: IMAGE_TAG: "amazonlinux-2" @@ -129,19 +129,17 @@ steps: inherit-environment-vars: true vm-name: 10.14.4_6C_14G_40G vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - modify-cpu: 12 - modify-ram: 24 always-pull: true debug: true wait-network: true agents: - - "queue=mac-anka-large-node-fleet" + - "queue=mac-anka-node-fleet" skip: $SKIP_MOJAVE - - label: ":aws: Amazon_Linux 2.0 - Serial Test" + - label: ":aws: Amazon_Linux 2 - Serial Test" command: - - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2.0 - Build' && tar -xzf build.tar.gz" + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - "bash ./.cicd/serial-tests.sh" env: IMAGE_TAG: "amazonlinux-2" @@ -199,19 +197,17 @@ steps: inherit-environment-vars: true vm-name: 10.14.4_6C_14G_40G vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - modify-cpu: 12 - modify-ram: 24 always-pull: true debug: true wait-network: true agents: - - "queue=mac-anka-large-node-fleet" + - "queue=mac-anka-node-fleet" skip: $SKIP_MOJAVE - # - label: ":aws: Amazon_Linux 2.0 - Long-Running Tests" + # - label: ":aws: Amazon_Linux 2 - Long-Running Tests" # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2.0 - Build' && tar -xzf build.tar.gz" + # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" # - "bash ./.cicd/long-running-tests.sh" # env: # IMAGE_TAG: "amazonlinux-2" @@ -269,13 +265,11 @@ steps: # inherit-environment-vars: true # vm-name: 10.14.4_6C_14G_40G # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # modify-cpu: 12 - # modify-ram: 24 # always-pull: true # debug: true # wait-network: true # agents: - # - "queue=mac-anka-large-node-fleet" + # - "queue=mac-anka-node-fleet" - wait: continue_on_failure: true From 9f43897548d0630439bd27dbb5da7f6a39c8841d Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 12 Aug 2019 17:48:27 -0400 Subject: [PATCH 253/528] quick fixes --- .cicd/serial-tests.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index 935b667d128..ec8d2252d40 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -17,7 +17,10 @@ else # Linux . $HELPERS_DIR/docker-hash.sh - COMMANDS="cd $MOUNTED_DIR/build && $TEST" + PRE_COMMANDS="cd $MOUNTED_DIR/build" + [[ $IMAGE_TAG == 'centos-7.6' ]] && PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:\\\$PATH" + + COMMANDS="$PRE_COMMANDS && $TEST" # Load BUILDKITE Environment Variables for use in docker run if [[ -f $BUILDKITE_ENV_FILE ]]; then From 4e878bb2a41cf83a9b8651c004fa144a74729ef4 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 13 Aug 2019 09:48:56 -0400 Subject: [PATCH 254/528] merged in release/1.8.x --- libraries/chainbase | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/chainbase b/libraries/chainbase index 664b4ae2136..b769749d533 160000 --- a/libraries/chainbase +++ b/libraries/chainbase @@ -1 +1 @@ -Subproject commit 664b4ae2136fa4b67c5b3b8f23ed3dfe95e44b66 +Subproject commit b769749d53303ec1a037d483c631d02268cbf012 From fcb0bd2ffe233b55f8b5e08375c048ad88c472a8 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 10:12:59 -0400 Subject: [PATCH 255/528] Modifications to pushing of ci-contracts-builder images. --- .cicd/helpers/installation-build.sh | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/.cicd/helpers/installation-build.sh b/.cicd/helpers/installation-build.sh index 7a58b3b94e3..efd2900682e 100755 --- a/.cicd/helpers/installation-build.sh +++ b/.cicd/helpers/installation-build.sh @@ -5,17 +5,26 @@ set -eo pipefail export ENABLE_INSTALL=true if [[ $BUILDKITE_BRANCH =~ ^release/[0-9].[0-9]+.x$ || $BUILDKITE_BRANCH =~ ^master$ || $BUILDKITE_BRANCH =~ ^develop$ || $FORCE_BINARIES_BUILD == true ]]; then - determine_eos_version - export EOS_BINARIES_TAG="eosio/producer:eos-binaries-$BUILDKITE_BRANCH-$EOSIO_VERSION_MAJOR.$EOSIO_VERSION_MINOR.$EOSIO_VERSION_PATCH" - export ARGS="--name eos-binaries-$BUILDKITE_COMMIT -v $(pwd):$MOUNTED_DIR" + + export BRANCH=$(echo $BUILDKITE_BRANCH | sed 's/\//\_/') + export CONTRACTS_BUILDER_TAG="eosio/ci-contracts-builder:base-ubuntu-18.04" + export ARGS="--name ci-contracts-builder-$BUILDKITE_COMMIT -v $(pwd):$MOUNTED_DIR" docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD + $CICD_DIR/build.sh - docker commit eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG - docker commit eos-binaries-$BUILDKITE_COMMIT $EOS_BINARIES_TAG-$BUILDKITE_COMMIT - docker push $EOS_BINARIES_TAG - docker push $EOS_BINARIES_TAG-$BUILDKITE_COMMIT - docker stop eos-binaries-$BUILDKITE_COMMIT && docker rm eos-binaries-$BUILDKITE_COMMIT + + docker commit ci-contracts-builder-$BUILDKITE_COMMIT $CONTRACTS_BUILDER_TAG-latest + docker commit ci-contracts-builder-$BUILDKITE_COMMIT $CONTRACTS_BUILDER_TAG-$BRANCH + docker commit ci-contracts-builder-$BUILDKITE_COMMIT $CONTRACTS_BUILDER_TAG-$BRANCH-$BUILDKITE_COMMIT + docker push $CONTRACTS_BUILDER_TAG-latest + docker push $CONTRACTS_BUILDER_TAG-$BRANCH + docker push $CONTRACTS_BUILDER_TAG-$BRANCH-$BUILDKITE_COMMIT + + docker stop ci-contracts-builder-$BUILDKITE_COMMIT && docker rm ci-contracts-builder-$BUILDKITE_COMMIT + else - echo "This pipeline will only generate images against master, develop, and release branches. Exiting..." + + echo "This pipeline will only generate images against master, develop, and release branches. Set FORCE_BINARIES_BUILD=true to force a build on another branch. Exiting..." exit 0 + fi From b38961368df8e2f08d8502a13f91f0fdc771e2b7 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 10:16:00 -0400 Subject: [PATCH 256/528] Removed function to determine EOS version. --- .cicd/helpers/general.sh | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/.cicd/helpers/general.sh b/.cicd/helpers/general.sh index 1ba5c8eed9c..ffcc8142ac5 100644 --- a/.cicd/helpers/general.sh +++ b/.cicd/helpers/general.sh @@ -2,11 +2,4 @@ export ROOT_DIR=$( dirname "${BASH_SOURCE[0]}" )/../.. export BUILD_DIR=$ROOT_DIR/build export CICD_DIR=$ROOT_DIR/.cicd export HELPERS_DIR=$CICD_DIR/helpers -export JOBS=${JOBS:-"$(getconf _NPROCESSORS_ONLN)"} - -function determine_eos_version() { - export EOSIO_VERSION_MAJOR=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_MAJOR" | tail -1 | sed 's/.*VERSION_MAJOR //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) - export EOSIO_VERSION_MINOR=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_MINOR" | tail -1 | sed 's/.*VERSION_MINOR //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) - export EOSIO_VERSION_PATCH=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_PATCH" | tail -1 | sed 's/.*VERSION_PATCH //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) - export EOSIO_VERSION_SUFFIX=$(cat ./CMakeLists.txt | grep -E "^[[:blank:]]*set[[:blank:]]*\([[:blank:]]*VERSION_SUFFIX" | tail -1 | sed 's/.*VERSION_SUFFIX //g' | sed 's/ //g' | sed 's/"//g' | cut -d\) -f1) -} +export JOBS=${JOBS:-"$(getconf _NPROCESSORS_ONLN)"} \ No newline at end of file From e6e3c80b1d779572f6e3925b5a678ed09f9c0ae5 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 10:16:17 -0400 Subject: [PATCH 257/528] Added step to build ci-contracts-builder image. --- .cicd/pipeline.yml | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 3df442237b0..0556751a326 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -274,25 +274,36 @@ steps: - wait: continue_on_failure: true - - command: | + - label: ":bar_chart: Test Metrics" + command: | echo '+++ :compression: Extracting Test Metrics Code' tar -zxf .cicd/metrics/test-metrics.tar.gz echo '+++ :javascript: Running test-metrics.js' node --max-old-space-size=32768 test-metrics.js - label: ":bar_chart: Test Metrics" agents: queue: "automation-eos-builder-fleet" timeout: 10 soft_fail: true - - wait + - label: ":ubuntu: Ubuntu 18.04 - Contract Builder" + command: + - "bash ./.cicd/helpers/installation-build.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 + + # - wait - - trigger: "eosio-dot-contracts-base-images-beta" - label: ":docker: Ensure EOSIO Installation Base Image" - build: - commit: "${BUILDKITE_COMMIT}" - branch: "${BUILDKITE_BRANCH}" - async: true + # - trigger: "eosio-dot-contracts-base-images-beta" + # label: ":docker: Ensure EOSIO Installation Base Image" + # build: + # commit: "${BUILDKITE_COMMIT}" + # branch: "${BUILDKITE_BRANCH}" + # async: true - wait From 498c6288de497b3fcecfa5ac6684ba267ec86ce0 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 10:19:20 -0400 Subject: [PATCH 258/528] Disabled part of the pipeline to test installation-build.sh. --- .cicd/pipeline.yml | 460 ++++++++++++++++++++++----------------------- 1 file changed, 230 insertions(+), 230 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 0556751a326..7524957040c 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,39 +1,39 @@ steps: - - label: ":aws: Amazon_Linux 2 - Build" - command: - - "bash ./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "amazonlinux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_AMAZON_LINUX_2 + # - label: ":aws: Amazon_Linux 2 - Build" + # command: + # - "bash ./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "amazonlinux-2" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_AMAZON_LINUX_2 - - label: ":centos: CentOS 7.6 - Build" - command: - - "bash ./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} + # - label: ":centos: CentOS 7.6 - Build" + # command: + # - "bash ./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "centos-7.6" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} - - label: ":ubuntu: Ubuntu 16.04 - Build" - command: - - "bash ./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_16 + # - label: ":ubuntu: Ubuntu 16.04 - Build" + # command: + # - "bash ./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "ubuntu-16.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_16 - label: ":ubuntu: Ubuntu 18.04 - Build" command: @@ -47,63 +47,63 @@ steps: timeout: ${TIMEOUT:-10} skip: $SKIP_UBUNTU_18 - - label: ":darwin: macOS 10.14 - Build" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && ./.cicd/build.sh" - - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - modify-cpu: 12 - modify-ram: 24 - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-large-node-fleet" + # - label: ":darwin: macOS 10.14 - Build" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && ./.cicd/build.sh" + # - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # modify-cpu: 12 + # modify-ram: 24 + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-large-node-fleet" - wait - - label: ":aws: Amazon_Linux 2 - Unit Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "amazonlinux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_AMAZON_LINUX_2 + # - label: ":aws: Amazon_Linux 2 - Unit Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "amazonlinux-2" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_AMAZON_LINUX_2 - - label: ":centos: CentOS 7.6 - Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_CENTOS_7 + # - label: ":centos: CentOS 7.6 - Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "centos-7.6" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_CENTOS_7 - - label: ":ubuntu: Ubuntu 16.04 - Unit Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_16 + # - label: ":ubuntu: Ubuntu 16.04 - Unit Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-16.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_16 - label: ":ubuntu: Ubuntu 18.04 - Unit Test" command: @@ -117,92 +117,92 @@ steps: timeout: ${TIMEOUT:-10} skip: $SKIP_UBUNTU_18 - - label: ":darwin: macOS 10.14 - Unit Test" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && bash ./.cicd/parallel-tests.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-node-fleet" - skip: $SKIP_MOJAVE + # - label: ":darwin: macOS 10.14 - Unit Test" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + # - "cd eos && bash ./.cicd/parallel-tests.sh" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-node-fleet" + # skip: $SKIP_MOJAVE - - label: ":aws: Amazon_Linux 2 - Serial Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/serial-tests.sh" - env: - IMAGE_TAG: "amazonlinux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_AMAZON_LINUX_2 + # - label: ":aws: Amazon_Linux 2 - Serial Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/serial-tests.sh" + # env: + # IMAGE_TAG: "amazonlinux-2" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_AMAZON_LINUX_2 - - label: ":centos: CentOS 7.6 - Serial Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/serial-tests.sh" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_CENTOS_7 + # - label: ":centos: CentOS 7.6 - Serial Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/serial-tests.sh" + # env: + # IMAGE_TAG: "centos-7.6" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_CENTOS_7 - - label: ":ubuntu: Ubuntu 16.04 - Serial Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/serial-tests.sh" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_16 + # - label: ":ubuntu: Ubuntu 16.04 - Serial Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/serial-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-16.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_16 - - label: ":ubuntu: Ubuntu 18.04 - Serial Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/serial-tests.sh" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_18 + # - label: ":ubuntu: Ubuntu 18.04 - Serial Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/serial-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-18.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_18 - - label: ":darwin: macOS 10.14 - Serial Test" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && bash ./.cicd/serial-tests.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-node-fleet" - skip: $SKIP_MOJAVE + # - label: ":darwin: macOS 10.14 - Serial Test" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + # - "cd eos && bash ./.cicd/serial-tests.sh" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-node-fleet" + # skip: $SKIP_MOJAVE # - label: ":aws: Amazon_Linux 2 - Long-Running Tests" @@ -271,19 +271,19 @@ steps: # agents: # - "queue=mac-anka-node-fleet" - - wait: - continue_on_failure: true + # - wait: + # continue_on_failure: true - - label: ":bar_chart: Test Metrics" - command: | - echo '+++ :compression: Extracting Test Metrics Code' - tar -zxf .cicd/metrics/test-metrics.tar.gz - echo '+++ :javascript: Running test-metrics.js' - node --max-old-space-size=32768 test-metrics.js - agents: - queue: "automation-eos-builder-fleet" - timeout: 10 - soft_fail: true + # - label: ":bar_chart: Test Metrics" + # command: | + # echo '+++ :compression: Extracting Test Metrics Code' + # tar -zxf .cicd/metrics/test-metrics.tar.gz + # echo '+++ :javascript: Running test-metrics.js' + # node --max-old-space-size=32768 test-metrics.js + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: 10 + # soft_fail: true - label: ":ubuntu: Ubuntu 18.04 - Contract Builder" command: @@ -305,62 +305,62 @@ steps: # branch: "${BUILDKITE_BRANCH}" # async: true - - wait + # - wait - - label: ":centos: Centos 7.6 - Package Builder" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package-builder.sh" - env: - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_CENTOS_7 + # - label: ":centos: Centos 7.6 - Package Builder" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + # - "./.cicd/package-builder.sh" + # env: + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_CENTOS_7 - - label: ":ubuntu: Ubuntu 16.04 - Package Builder" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package-builder.sh" - env: - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_16 + # - label: ":ubuntu: Ubuntu 16.04 - Package Builder" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + # - "./.cicd/package-builder.sh" + # env: + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_16 - - label: ":ubuntu: Ubuntu 18.04 - Package Builder" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package-builder.sh" - env: - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_18 + # - label: ":ubuntu: Ubuntu 18.04 - Package Builder" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + # - "./.cicd/package-builder.sh" + # env: + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_18 - - label: ":darwin: Mojave - Package Builder" - command: - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build & Test' && tar -xzf build.tar.gz" - - "cd eos && ./.cicd/package-builder.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-node-fleet" - timeout: 10 + # - label: ":darwin: Mojave - Package Builder" + # command: + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" + # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build & Test' && tar -xzf build.tar.gz" + # - "cd eos && ./.cicd/package-builder.sh" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-node-fleet" + # timeout: 10 - - label: ":git: Git Submodule Regression Check" - command: - - "./.cicd/submodule-regression-checker.sh" - agents: - queue: "automation-basic-builder-fleet" - timeout: 5 \ No newline at end of file + # - label: ":git: Git Submodule Regression Check" + # command: + # - "./.cicd/submodule-regression-checker.sh" + # agents: + # queue: "automation-basic-builder-fleet" + # timeout: 5 \ No newline at end of file From b6034480446fffa496abf391f29e0cea31c36cfb Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 10:40:06 -0400 Subject: [PATCH 259/528] Move MOUNTED_DIR to general helper. --- .cicd/build.sh | 1 - .cicd/helpers/general.sh | 3 ++- .cicd/long-running-tests.sh | 1 - .cicd/parallel-tests.sh | 1 - .cicd/serial-tests.sh | 1 - 5 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index 62ed3174dae..291854979fe 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -14,7 +14,6 @@ if [[ $(uname) == 'Darwin' ]]; then else # Linux - MOUNTED_DIR='/workdir' ARGS=${ARGS:-"--rm -v $(pwd):$MOUNTED_DIR"} . $HELPERS_DIR/docker-hash.sh diff --git a/.cicd/helpers/general.sh b/.cicd/helpers/general.sh index ffcc8142ac5..42b041177a8 100644 --- a/.cicd/helpers/general.sh +++ b/.cicd/helpers/general.sh @@ -2,4 +2,5 @@ export ROOT_DIR=$( dirname "${BASH_SOURCE[0]}" )/../.. export BUILD_DIR=$ROOT_DIR/build export CICD_DIR=$ROOT_DIR/.cicd export HELPERS_DIR=$CICD_DIR/helpers -export JOBS=${JOBS:-"$(getconf _NPROCESSORS_ONLN)"} \ No newline at end of file +export JOBS=${JOBS:-"$(getconf _NPROCESSORS_ONLN)"} +export MOUNTED_DIR='/workdir' diff --git a/.cicd/long-running-tests.sh b/.cicd/long-running-tests.sh index ed5f653425c..9ac5996afda 100755 --- a/.cicd/long-running-tests.sh +++ b/.cicd/long-running-tests.sh @@ -12,7 +12,6 @@ if [[ $(uname) == 'Darwin' ]]; then else # Linux - MOUNTED_DIR='/workdir' ARGS=${ARGS:-"--rm -v $(pwd):$MOUNTED_DIR"} . $HELPERS_DIR/docker-hash.sh diff --git a/.cicd/parallel-tests.sh b/.cicd/parallel-tests.sh index 5ff2247f0c8..245f09227cf 100755 --- a/.cicd/parallel-tests.sh +++ b/.cicd/parallel-tests.sh @@ -12,7 +12,6 @@ if [[ $(uname) == 'Darwin' ]]; then else # Linux - MOUNTED_DIR='/workdir' ARGS=${ARGS:-"--rm -v $(pwd):$MOUNTED_DIR"} . $HELPERS_DIR/docker-hash.sh diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index ec8d2252d40..d57828318bd 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -12,7 +12,6 @@ if [[ $(uname) == 'Darwin' ]]; then else # Linux - MOUNTED_DIR='/workdir' ARGS=${ARGS:-"--rm -v $(pwd):$MOUNTED_DIR"} . $HELPERS_DIR/docker-hash.sh From fe7bc2696000dea1a24e28a7f1368c877b3f2b74 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 10:41:05 -0400 Subject: [PATCH 260/528] Disable more of pipeline. --- .cicd/pipeline.yml | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 7524957040c..396d73cfb3c 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -35,17 +35,17 @@ steps: # timeout: ${TIMEOUT:-10} # skip: $SKIP_UBUNTU_16 - - label: ":ubuntu: Ubuntu 18.04 - Build" - command: - - "bash ./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_18 + # - label: ":ubuntu: Ubuntu 18.04 - Build" + # command: + # - "bash ./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "ubuntu-18.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_18 # - label: ":darwin: macOS 10.14 - Build" # command: @@ -105,17 +105,17 @@ steps: # timeout: ${TIMEOUT:-10} # skip: $SKIP_UBUNTU_16 - - label: ":ubuntu: Ubuntu 18.04 - Unit Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_18 + # - label: ":ubuntu: Ubuntu 18.04 - Unit Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-18.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_18 # - label: ":darwin: macOS 10.14 - Unit Test" # command: From 519eb165a263836182f8719bf80a747b05ba75fb Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 10:57:00 -0400 Subject: [PATCH 261/528] Added one more tag to push. --- .cicd/helpers/installation-build.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.cicd/helpers/installation-build.sh b/.cicd/helpers/installation-build.sh index efd2900682e..115704d9d3b 100755 --- a/.cicd/helpers/installation-build.sh +++ b/.cicd/helpers/installation-build.sh @@ -14,9 +14,11 @@ if [[ $BUILDKITE_BRANCH =~ ^release/[0-9].[0-9]+.x$ || $BUILDKITE_BRANCH =~ ^mas $CICD_DIR/build.sh docker commit ci-contracts-builder-$BUILDKITE_COMMIT $CONTRACTS_BUILDER_TAG-latest + docker commit ci-contracts-builder-$BUILDKITE_COMMIT $CONTRACTS_BUILDER_TAG-$BUILDKITE_COMMIT docker commit ci-contracts-builder-$BUILDKITE_COMMIT $CONTRACTS_BUILDER_TAG-$BRANCH docker commit ci-contracts-builder-$BUILDKITE_COMMIT $CONTRACTS_BUILDER_TAG-$BRANCH-$BUILDKITE_COMMIT docker push $CONTRACTS_BUILDER_TAG-latest + docker push $CONTRACTS_BUILDER_TAG-$BUILDKITE_COMMIT docker push $CONTRACTS_BUILDER_TAG-$BRANCH docker push $CONTRACTS_BUILDER_TAG-$BRANCH-$BUILDKITE_COMMIT From 67fb63b04fe22147e8b82f8e5e346a00d8c86d87 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 10:57:16 -0400 Subject: [PATCH 262/528] Add wait before building contracts builder images. --- .cicd/pipeline.yml | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 396d73cfb3c..040be3ea90c 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -285,6 +285,8 @@ steps: # timeout: 10 # soft_fail: true + # - wait + - label: ":ubuntu: Ubuntu 18.04 - Contract Builder" command: - "bash ./.cicd/helpers/installation-build.sh" @@ -297,15 +299,6 @@ steps: skip: $SKIP_UBUNTU_18 # - wait - - # - trigger: "eosio-dot-contracts-base-images-beta" - # label: ":docker: Ensure EOSIO Installation Base Image" - # build: - # commit: "${BUILDKITE_COMMIT}" - # branch: "${BUILDKITE_BRANCH}" - # async: true - - # - wait # - label: ":centos: Centos 7.6 - Package Builder" # command: From a08e812624f046149fdc1779c75496b6677b411e Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 11:12:19 -0400 Subject: [PATCH 263/528] Re-enabled full pipeline. --- .cicd/pipeline.yml | 683 ++++++++++++++++++++++----------------------- 1 file changed, 341 insertions(+), 342 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 040be3ea90c..64878e68292 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,291 +1,290 @@ steps: - # - label: ":aws: Amazon_Linux 2 - Build" - # command: - # - "bash ./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "amazonlinux-2" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_AMAZON_LINUX_2 - - # - label: ":centos: CentOS 7.6 - Build" - # command: - # - "bash ./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "centos-7.6" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - - # - label: ":ubuntu: Ubuntu 16.04 - Build" - # command: - # - "bash ./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_16 - - # - label: ":ubuntu: Ubuntu 18.04 - Build" - # command: - # - "bash ./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_18 - - # - label: ":darwin: macOS 10.14 - Build" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && ./.cicd/build.sh" - # - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # modify-cpu: 12 - # modify-ram: 24 - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-large-node-fleet" + - label: ":aws: Amazon_Linux 2 - Build" + command: + - "bash ./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "amazonlinux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_AMAZON_LINUX_2 + + - label: ":centos: CentOS 7.6 - Build" + command: + - "bash ./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + + - label: ":ubuntu: Ubuntu 16.04 - Build" + command: + - "bash ./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 + + - label: ":ubuntu: Ubuntu 18.04 - Build" + command: + - "bash ./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 + + - label: ":darwin: macOS 10.14 - Build" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && ./.cicd/build.sh" + - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + modify-cpu: 12 + modify-ram: 24 + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-large-node-fleet" - wait - # - label: ":aws: Amazon_Linux 2 - Unit Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "amazonlinux-2" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_AMAZON_LINUX_2 - - # - label: ":centos: CentOS 7.6 - Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "centos-7.6" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_CENTOS_7 - - # - label: ":ubuntu: Ubuntu 16.04 - Unit Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_16 - - # - label: ":ubuntu: Ubuntu 18.04 - Unit Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_18 - - # - label: ":darwin: macOS 10.14 - Unit Test" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - # - "cd eos && bash ./.cicd/parallel-tests.sh" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-node-fleet" - # skip: $SKIP_MOJAVE - - - # - label: ":aws: Amazon_Linux 2 - Serial Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/serial-tests.sh" - # env: - # IMAGE_TAG: "amazonlinux-2" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_AMAZON_LINUX_2 - - # - label: ":centos: CentOS 7.6 - Serial Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/serial-tests.sh" - # env: - # IMAGE_TAG: "centos-7.6" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_CENTOS_7 - - # - label: ":ubuntu: Ubuntu 16.04 - Serial Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/serial-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_16 - - # - label: ":ubuntu: Ubuntu 18.04 - Serial Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/serial-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_18 - - # - label: ":darwin: macOS 10.14 - Serial Test" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - # - "cd eos && bash ./.cicd/serial-tests.sh" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-node-fleet" - # skip: $SKIP_MOJAVE - - - # - label: ":aws: Amazon_Linux 2 - Long-Running Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/long-running-tests.sh" - # env: - # IMAGE_TAG: "amazonlinux-2" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_AMAZON_LINUX_2 - - # - label: ":centos: CentOS 7.6 - Long-Running Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/long-running-tests.sh" - # env: - # IMAGE_TAG: "centos-7.6" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_CENTOS_7 - - # - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_16 - - # - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_18 - - # - label: ":darwin: macOS 10.14 - Long-Running Tests" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - # - "cd eos && bash ./.cicd/parallel-tests.sh" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-node-fleet" - - # - wait: - # continue_on_failure: true - - # - label: ":bar_chart: Test Metrics" - # command: | - # echo '+++ :compression: Extracting Test Metrics Code' - # tar -zxf .cicd/metrics/test-metrics.tar.gz - # echo '+++ :javascript: Running test-metrics.js' - # node --max-old-space-size=32768 test-metrics.js - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: 10 - # soft_fail: true - - # - wait + - label: ":aws: Amazon_Linux 2 - Unit Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "amazonlinux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_AMAZON_LINUX_2 + + - label: ":centos: CentOS 7.6 - Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_CENTOS_7 + + - label: ":ubuntu: Ubuntu 16.04 - Unit Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 + + - label: ":ubuntu: Ubuntu 18.04 - Unit Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 + + - label: ":darwin: macOS 10.14 - Unit Test" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && bash ./.cicd/parallel-tests.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-node-fleet" + skip: $SKIP_MOJAVE + + - label: ":aws: Amazon_Linux 2 - Serial Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/serial-tests.sh" + env: + IMAGE_TAG: "amazonlinux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_AMAZON_LINUX_2 + + - label: ":centos: CentOS 7.6 - Serial Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/serial-tests.sh" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_CENTOS_7 + + - label: ":ubuntu: Ubuntu 16.04 - Serial Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/serial-tests.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 + + - label: ":ubuntu: Ubuntu 18.04 - Serial Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/serial-tests.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 + + - label: ":darwin: macOS 10.14 - Serial Test" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && bash ./.cicd/serial-tests.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-node-fleet" + skip: $SKIP_MOJAVE + + + - label: ":aws: Amazon_Linux 2 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "amazonlinux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_AMAZON_LINUX_2 + + - label: ":centos: CentOS 7.6 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_CENTOS_7 + + - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 + + - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 + + - label: ":darwin: macOS 10.14 - Long-Running Tests" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && bash ./.cicd/parallel-tests.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-node-fleet" + + - wait: + continue_on_failure: true + + - label: ":bar_chart: Test Metrics" + command: | + echo '+++ :compression: Extracting Test Metrics Code' + tar -zxf .cicd/metrics/test-metrics.tar.gz + echo '+++ :javascript: Running test-metrics.js' + node --max-old-space-size=32768 test-metrics.js + agents: + queue: "automation-eos-builder-fleet" + timeout: 10 + soft_fail: true + + - wait - label: ":ubuntu: Ubuntu 18.04 - Contract Builder" command: @@ -298,62 +297,62 @@ steps: timeout: ${TIMEOUT:-10} skip: $SKIP_UBUNTU_18 - # - wait - - # - label: ":centos: Centos 7.6 - Package Builder" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - # - "./.cicd/package-builder.sh" - # env: - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_CENTOS_7 - - # - label: ":ubuntu: Ubuntu 16.04 - Package Builder" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - # - "./.cicd/package-builder.sh" - # env: - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_16 - - # - label: ":ubuntu: Ubuntu 18.04 - Package Builder" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - # - "./.cicd/package-builder.sh" - # env: - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_18 - - # - label: ":darwin: Mojave - Package Builder" - # command: - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" - # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build & Test' && tar -xzf build.tar.gz" - # - "cd eos && ./.cicd/package-builder.sh" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-node-fleet" - # timeout: 10 - - # - label: ":git: Git Submodule Regression Check" - # command: - # - "./.cicd/submodule-regression-checker.sh" - # agents: - # queue: "automation-basic-builder-fleet" - # timeout: 5 \ No newline at end of file + - wait + + - label: ":centos: Centos 7.6 - Package Builder" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "./.cicd/package-builder.sh" + env: + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_CENTOS_7 + + - label: ":ubuntu: Ubuntu 16.04 - Package Builder" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "./.cicd/package-builder.sh" + env: + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 + + - label: ":ubuntu: Ubuntu 18.04 - Package Builder" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "./.cicd/package-builder.sh" + env: + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 + + - label: ":darwin: Mojave - Package Builder" + command: + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build & Test' && tar -xzf build.tar.gz" + - "cd eos && ./.cicd/package-builder.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-node-fleet" + timeout: 10 + + - label: ":git: Git Submodule Regression Check" + command: + - "./.cicd/submodule-regression-checker.sh" + agents: + queue: "automation-basic-builder-fleet" + timeout: 5 \ No newline at end of file From 30151839d77616736a3affa75233f8b5f5aa7e4e Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 11:25:26 -0400 Subject: [PATCH 264/528] Mistakenly enabled LRTs. Disabled again. --- .cicd/pipeline.yml | 131 ++++++++++++++++++++++----------------------- 1 file changed, 65 insertions(+), 66 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 64878e68292..1b88c394fa5 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -203,72 +203,71 @@ steps: - "queue=mac-anka-node-fleet" skip: $SKIP_MOJAVE - - - label: ":aws: Amazon_Linux 2 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/long-running-tests.sh" - env: - IMAGE_TAG: "amazonlinux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_AMAZON_LINUX_2 - - - label: ":centos: CentOS 7.6 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/long-running-tests.sh" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_CENTOS_7 - - - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_16 - - - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_18 - - - label: ":darwin: macOS 10.14 - Long-Running Tests" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && bash ./.cicd/parallel-tests.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-node-fleet" + # - label: ":aws: Amazon_Linux 2 - Long-Running Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/long-running-tests.sh" + # env: + # IMAGE_TAG: "amazonlinux-2" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_AMAZON_LINUX_2 + + # - label: ":centos: CentOS 7.6 - Long-Running Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/long-running-tests.sh" + # env: + # IMAGE_TAG: "centos-7.6" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_CENTOS_7 + + # - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-16.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_16 + + # - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-18.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_18 + + # - label: ":darwin: macOS 10.14 - Long-Running Tests" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + # - "cd eos && bash ./.cicd/parallel-tests.sh" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-node-fleet" - wait: continue_on_failure: true From 25363518e0fa03c300ea5fca6af7d2d09e17af18 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 11:30:05 -0400 Subject: [PATCH 265/528] Fixed typo on test commands. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 8bf6fc31cac..c048fa36265 100644 --- a/.travis.yml +++ b/.travis.yml @@ -49,7 +49,7 @@ matrix: - mongodb env: - PATH="/usr/local/opt/ccache/libexec:$PATH" -script: "./.cicd/build.sh && ./.cicd/parallel_tests.sh && ./.cicd/serial_tests.sh" +script: "./.cicd/build.sh && ./.cicd/parallel-tests.sh && ./.cicd/serial_-ests.sh" notifications: webhooks: secure: gmqODqoFAil2cR7v++ibqRNECBOSD/VJX+2qPa7XptkVWmVMzbII5CNgBQAscjFsp9arHPMXCCzkBi847PCSiHdsnYFQ4T273FLRWr3cDbLjfmR+BJ7dGKvQnlpSi2Ze2TtAPJyRl+iv+cxDj7cWE5zw2c4xbgh1a/cNO+/ayUfFkyMEIfVWRsHkdkra4gOLywou0XRLHr4CX1V60uU7uuqATnIMMi7gQYwiKKtZqjkbf8wcBvZirDhjQ6lDPN5tnZo6L4QHmqjtzNJg/UrD4h+zES53dLVI4uxlXRAwwpw+mJOFA3QE/3FT+bMQjLCffUz4gZaWcdgebPYzrwSWUbJoFdWAOwcTqivQY0FIQzcz/r6uGWcwWTavzkPEbg68BVM2BZId/0110J6feeTkpJ3MPV+UsIoGTvbg50vi/I06icftuZ/cLqDj3+Emifm7Jlr1sRTSdqtYAJj/2ImUfsb46cwgjAVhFOTvc+KuPgJQgvOXV7bZkxEr5qDWo8Al2sV8BWb83j1rMlZ4LfERokImDVqxu2kkcunchzvhtYFTesSpmwegVpwceCtOtO0rEUgATnfTEHzk2rm8nuz4UtidsQnluUKqmKD0QCqHXFfn+3ZRJsDqr+iCYdxv1BAeAVc9q1L7bgrKDMGiJgkxuhZ2v3J2SflWLvjZjFDduuc= From 813cf019259b82d103476635d54c9745a6a6f2d8 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 11:30:23 -0400 Subject: [PATCH 266/528] Fixed typo on test commands. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c048fa36265..40e480a1513 100644 --- a/.travis.yml +++ b/.travis.yml @@ -49,7 +49,7 @@ matrix: - mongodb env: - PATH="/usr/local/opt/ccache/libexec:$PATH" -script: "./.cicd/build.sh && ./.cicd/parallel-tests.sh && ./.cicd/serial_-ests.sh" +script: "./.cicd/build.sh && ./.cicd/parallel-tests.sh && ./.cicd/serial-tests.sh" notifications: webhooks: secure: gmqODqoFAil2cR7v++ibqRNECBOSD/VJX+2qPa7XptkVWmVMzbII5CNgBQAscjFsp9arHPMXCCzkBi847PCSiHdsnYFQ4T273FLRWr3cDbLjfmR+BJ7dGKvQnlpSi2Ze2TtAPJyRl+iv+cxDj7cWE5zw2c4xbgh1a/cNO+/ayUfFkyMEIfVWRsHkdkra4gOLywou0XRLHr4CX1V60uU7uuqATnIMMi7gQYwiKKtZqjkbf8wcBvZirDhjQ6lDPN5tnZo6L4QHmqjtzNJg/UrD4h+zES53dLVI4uxlXRAwwpw+mJOFA3QE/3FT+bMQjLCffUz4gZaWcdgebPYzrwSWUbJoFdWAOwcTqivQY0FIQzcz/r6uGWcwWTavzkPEbg68BVM2BZId/0110J6feeTkpJ3MPV+UsIoGTvbg50vi/I06icftuZ/cLqDj3+Emifm7Jlr1sRTSdqtYAJj/2ImUfsb46cwgjAVhFOTvc+KuPgJQgvOXV7bZkxEr5qDWo8Al2sV8BWb83j1rMlZ4LfERokImDVqxu2kkcunchzvhtYFTesSpmwegVpwceCtOtO0rEUgATnfTEHzk2rm8nuz4UtidsQnluUKqmKD0QCqHXFfn+3ZRJsDqr+iCYdxv1BAeAVc9q1L7bgrKDMGiJgkxuhZ2v3J2SflWLvjZjFDduuc= From 975d5659ffe246dcdf649c87a649872fb163640e Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 14:21:47 -0400 Subject: [PATCH 267/528] Test failing build. Removed ccache from path. --- .cicd/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index 291854979fe..b0aca272c12 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -22,7 +22,7 @@ else # Linux # PRE_COMMANDS: Executed pre-cmake # CMAKE_EXTRAS: Executed within and right before the cmake path (cmake CMAKE_EXTRAS ..) if [[ $IMAGE_TAG == 'ubuntu-18.04' ]]; then - PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" + PRE_COMMANDS="$PRE_COMMANDS" CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" elif [[ $IMAGE_TAG == 'ubuntu-16.04' ]]; then PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" From efaf80a17ab896b3c30ca36ab15008951b440471 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 14:55:45 -0400 Subject: [PATCH 268/528] Re-enable ccache on path. --- .cicd/build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index b0aca272c12..afb934ec1b8 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -22,7 +22,7 @@ else # Linux # PRE_COMMANDS: Executed pre-cmake # CMAKE_EXTRAS: Executed within and right before the cmake path (cmake CMAKE_EXTRAS ..) if [[ $IMAGE_TAG == 'ubuntu-18.04' ]]; then - PRE_COMMANDS="$PRE_COMMANDS" + PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" elif [[ $IMAGE_TAG == 'ubuntu-16.04' ]]; then PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" @@ -58,6 +58,6 @@ else # Linux done < "$BUILDKITE_ENV_FILE" fi - eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" + eval docker run $ARGS $evars eosio/producer:eos-ubuntu-18.04-7f7907879240c857f2a7952115157003f8281f32 bash -c \"$COMMANDS\" fi \ No newline at end of file From 35126320de29135c5d017b1d252f4fed084a1846 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 14:55:57 -0400 Subject: [PATCH 269/528] Disabled parts of pipeline for testing. --- .cicd/pipeline.yml | 328 ++++++++++++++++++++++----------------------- 1 file changed, 164 insertions(+), 164 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 1b88c394fa5..48b3a88d998 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,39 +1,39 @@ steps: - - label: ":aws: Amazon_Linux 2 - Build" - command: - - "bash ./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "amazonlinux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_AMAZON_LINUX_2 + # - label: ":aws: Amazon_Linux 2 - Build" + # command: + # - "bash ./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "amazonlinux-2" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_AMAZON_LINUX_2 - - label: ":centos: CentOS 7.6 - Build" - command: - - "bash ./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} + # - label: ":centos: CentOS 7.6 - Build" + # command: + # - "bash ./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "centos-7.6" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} - - label: ":ubuntu: Ubuntu 16.04 - Build" - command: - - "bash ./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_16 + # - label: ":ubuntu: Ubuntu 16.04 - Build" + # command: + # - "bash ./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "ubuntu-16.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_16 - label: ":ubuntu: Ubuntu 18.04 - Build" command: @@ -47,130 +47,130 @@ steps: timeout: ${TIMEOUT:-10} skip: $SKIP_UBUNTU_18 - - label: ":darwin: macOS 10.14 - Build" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && ./.cicd/build.sh" - - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - modify-cpu: 12 - modify-ram: 24 - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-large-node-fleet" + # - label: ":darwin: macOS 10.14 - Build" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && ./.cicd/build.sh" + # - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # modify-cpu: 12 + # modify-ram: 24 + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-large-node-fleet" - wait - - label: ":aws: Amazon_Linux 2 - Unit Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "amazonlinux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_AMAZON_LINUX_2 + # - label: ":aws: Amazon_Linux 2 - Unit Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "amazonlinux-2" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_AMAZON_LINUX_2 - - label: ":centos: CentOS 7.6 - Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_CENTOS_7 + # - label: ":centos: CentOS 7.6 - Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "centos-7.6" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_CENTOS_7 - - label: ":ubuntu: Ubuntu 16.04 - Unit Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_16 + # - label: ":ubuntu: Ubuntu 16.04 - Unit Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-16.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_16 - - label: ":ubuntu: Ubuntu 18.04 - Unit Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_18 + # - label: ":ubuntu: Ubuntu 18.04 - Unit Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-18.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_18 - - label: ":darwin: macOS 10.14 - Unit Test" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && bash ./.cicd/parallel-tests.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-node-fleet" - skip: $SKIP_MOJAVE + # - label: ":darwin: macOS 10.14 - Unit Test" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + # - "cd eos && bash ./.cicd/parallel-tests.sh" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-node-fleet" + # skip: $SKIP_MOJAVE - - label: ":aws: Amazon_Linux 2 - Serial Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/serial-tests.sh" - env: - IMAGE_TAG: "amazonlinux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_AMAZON_LINUX_2 + # - label: ":aws: Amazon_Linux 2 - Serial Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/serial-tests.sh" + # env: + # IMAGE_TAG: "amazonlinux-2" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_AMAZON_LINUX_2 - - label: ":centos: CentOS 7.6 - Serial Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/serial-tests.sh" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_CENTOS_7 + # - label: ":centos: CentOS 7.6 - Serial Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/serial-tests.sh" + # env: + # IMAGE_TAG: "centos-7.6" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_CENTOS_7 - - label: ":ubuntu: Ubuntu 16.04 - Serial Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/serial-tests.sh" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_16 + # - label: ":ubuntu: Ubuntu 16.04 - Serial Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/serial-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-16.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_16 - label: ":ubuntu: Ubuntu 18.04 - Serial Test" command: @@ -184,24 +184,24 @@ steps: timeout: ${TIMEOUT:-10} skip: $SKIP_UBUNTU_18 - - label: ":darwin: macOS 10.14 - Serial Test" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && bash ./.cicd/serial-tests.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-node-fleet" - skip: $SKIP_MOJAVE + # - label: ":darwin: macOS 10.14 - Serial Test" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + # - "cd eos && bash ./.cicd/serial-tests.sh" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-node-fleet" + # skip: $SKIP_MOJAVE # - label: ":aws: Amazon_Linux 2 - Long-Running Tests" # command: From f563e240b7d9ac5a7953099c3b45135b3335f8ff Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 14:56:09 -0400 Subject: [PATCH 270/528] Run specific test that is failing. --- .cicd/serial-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index d57828318bd..0aa1a0bf08f 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -2,7 +2,7 @@ set -eo pipefail . ./.cicd/helpers/general.sh -TEST="mkdir -p ./mongodb && mongod --dbpath ./mongodb --fork --logpath mongod.log && ctest -L nonparallelizable_tests --output-on-failure -T Test" +TEST="mkdir -p ./mongodb && mongod --dbpath ./mongodb --fork --logpath mongod.log && ctest -R ^nodeos_protocol_feature_test$ --output-on-failure -T Test" if [[ $(uname) == 'Darwin' ]]; then From e68e30a0a158fbe566cd8fae4d7de7e3f95b8fb4 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 15:08:06 -0400 Subject: [PATCH 271/528] Use specific image on test. --- .cicd/serial-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index 0aa1a0bf08f..bd86f12b5a7 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -29,6 +29,6 @@ else # Linux done < "$BUILDKITE_ENV_FILE" fi - eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" + docker run $ARGS $evars eosio/producer:eos-ubuntu-18.04-7f7907879240c857f2a7952115157003f8281f32 bash -c \"$COMMANDS\" fi \ No newline at end of file From 972285a1e328697b2060c744ed357fd29a94e8d0 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 15:08:25 -0400 Subject: [PATCH 272/528] Add build type to cmake. --- .cicd/build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index afb934ec1b8..8d58a0dc6dd 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -23,7 +23,7 @@ else # Linux # CMAKE_EXTRAS: Executed within and right before the cmake path (cmake CMAKE_EXTRAS ..) if [[ $IMAGE_TAG == 'ubuntu-18.04' ]]; then PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" - CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" + CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' -DCMAKE_BUILD_TYPE='Release'" elif [[ $IMAGE_TAG == 'ubuntu-16.04' ]]; then PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$MOUNTED_DIR/.cicd/helpers/clang.make -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" @@ -58,6 +58,6 @@ else # Linux done < "$BUILDKITE_ENV_FILE" fi - eval docker run $ARGS $evars eosio/producer:eos-ubuntu-18.04-7f7907879240c857f2a7952115157003f8281f32 bash -c \"$COMMANDS\" + docker run $ARGS $evars eosio/producer:eos-ubuntu-18.04-7f7907879240c857f2a7952115157003f8281f32 bash -c \"$COMMANDS\" fi \ No newline at end of file From 3c49b77e6bb1449bfc45496b9f7e439bc6588525 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 15:11:59 -0400 Subject: [PATCH 273/528] Add build type to cmake. --- .cicd/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index 8d58a0dc6dd..aee90b35f77 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -58,6 +58,6 @@ else # Linux done < "$BUILDKITE_ENV_FILE" fi - docker run $ARGS $evars eosio/producer:eos-ubuntu-18.04-7f7907879240c857f2a7952115157003f8281f32 bash -c \"$COMMANDS\" + docker run $ARGS $evars eosio/producer:eos-ubuntu-18.04-7f7907879240c857f2a7952115157003f8281f32 bash -c $COMMANDS fi \ No newline at end of file From a45654aae0699ab52f96172b3362e4cc82f432a8 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 15:14:55 -0400 Subject: [PATCH 274/528] Add build type to cmake. --- .cicd/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index aee90b35f77..bc47b134d49 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -58,6 +58,6 @@ else # Linux done < "$BUILDKITE_ENV_FILE" fi - docker run $ARGS $evars eosio/producer:eos-ubuntu-18.04-7f7907879240c857f2a7952115157003f8281f32 bash -c $COMMANDS + docker run $ARGS $evars eosio/producer:eos-ubuntu-18.04-7f7907879240c857f2a7952115157003f8281f32 bash -c "$COMMANDS" fi \ No newline at end of file From ff1c8de494c3d4d01438ba43f90a75e3f9155e37 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 15:19:35 -0400 Subject: [PATCH 275/528] Add build type to cmake. --- .cicd/build.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index bc47b134d49..2917b9d63be 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -35,6 +35,7 @@ else # Linux fi BUILD_COMMANDS="cmake $CMAKE_EXTRAS .. && make -j$JOBS" + TEST="mkdir -p ./mongodb && mongod --dbpath ./mongodb --fork --logpath mongod.log && ctest -R ^nodeos_protocol_feature_test$ --output-on-failure -T Test" # Docker Commands if [[ $BUILDKITE == true ]]; then @@ -58,6 +59,7 @@ else # Linux done < "$BUILDKITE_ENV_FILE" fi - docker run $ARGS $evars eosio/producer:eos-ubuntu-18.04-7f7907879240c857f2a7952115157003f8281f32 bash -c "$COMMANDS" + echo "docker run $ARGS $evars eosio/producer:eos-ubuntu-18.04-7f7907879240c857f2a7952115157003f8281f32 bash -c \"$COMMANDS\"" + docker run $ARGS $evars eosio/producer:eos-ubuntu-18.04-7f7907879240c857f2a7952115157003f8281f32 bash -c \\\"$COMMANDS\\\" fi \ No newline at end of file From 591c57978a819eb54092a3b4ba6337211ed2a238 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 15:22:09 -0400 Subject: [PATCH 276/528] Add build type to cmake. --- .cicd/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index 2917b9d63be..baab39c24cf 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -60,6 +60,6 @@ else # Linux fi echo "docker run $ARGS $evars eosio/producer:eos-ubuntu-18.04-7f7907879240c857f2a7952115157003f8281f32 bash -c \"$COMMANDS\"" - docker run $ARGS $evars eosio/producer:eos-ubuntu-18.04-7f7907879240c857f2a7952115157003f8281f32 bash -c \\\"$COMMANDS\\\" + eval docker run $ARGS $evars eosio/producer:eos-ubuntu-18.04-7f7907879240c857f2a7952115157003f8281f32 bash -c \"$COMMANDS\" fi \ No newline at end of file From 202628e6a947ce787a826b957516b3521f3f2d01 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 13 Aug 2019 15:32:42 -0400 Subject: [PATCH 277/528] removed mongo log --- mongod.log.2019-08-12T13-03-22 | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 mongod.log.2019-08-12T13-03-22 diff --git a/mongod.log.2019-08-12T13-03-22 b/mongod.log.2019-08-12T13-03-22 deleted file mode 100644 index e49d6fe908e..00000000000 --- a/mongod.log.2019-08-12T13-03-22 +++ /dev/null @@ -1,14 +0,0 @@ -2019-08-12T13:03:00.430+0000 I CONTROL [initandlisten] MongoDB starting : pid=16 port=27017 dbpath=/workdir/./mongodb 64-bit host=322e0a8c3eed -2019-08-12T13:03:00.431+0000 I CONTROL [initandlisten] db version v3.6.3 -2019-08-12T13:03:00.432+0000 I CONTROL [initandlisten] git version: 9586e557d54ef70f9ca4b43c26892cd55257e1a5 -2019-08-12T13:03:00.433+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.0-fips 29 Mar 2010 -2019-08-12T13:03:00.434+0000 I CONTROL [initandlisten] allocator: tcmalloc -2019-08-12T13:03:00.435+0000 I CONTROL [initandlisten] modules: none -2019-08-12T13:03:00.436+0000 I CONTROL [initandlisten] build environment: -2019-08-12T13:03:00.438+0000 I CONTROL [initandlisten] distmod: amazon -2019-08-12T13:03:00.439+0000 I CONTROL [initandlisten] distarch: x86_64 -2019-08-12T13:03:00.440+0000 I CONTROL [initandlisten] target_arch: x86_64 -2019-08-12T13:03:00.441+0000 I CONTROL [initandlisten] options: { processManagement: { fork: true }, storage: { dbPath: "./mongodb" }, systemLog: { destination: "file", path: "mongod.log" } } -2019-08-12T13:03:00.443+0000 I STORAGE [initandlisten] exception in initAndListen: NonExistentPath: Data directory /workdir/./mongodb not found., terminating -2019-08-12T13:03:00.444+0000 I CONTROL [initandlisten] now exiting -2019-08-12T13:03:00.445+0000 I CONTROL [initandlisten] shutting down with code:100 From 376fa676e4d4798c65e480b55f580131caa4bce5 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 13 Aug 2019 15:35:28 -0400 Subject: [PATCH 278/528] Added eval back to serial-tests. --- .cicd/serial-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index bd86f12b5a7..fa261f961fc 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -29,6 +29,6 @@ else # Linux done < "$BUILDKITE_ENV_FILE" fi - docker run $ARGS $evars eosio/producer:eos-ubuntu-18.04-7f7907879240c857f2a7952115157003f8281f32 bash -c \"$COMMANDS\" + eval docker run $ARGS $evars eosio/producer:eos-ubuntu-18.04-7f7907879240c857f2a7952115157003f8281f32 bash -c \"$COMMANDS\" fi \ No newline at end of file From 6695408e68186ca21d1d14e877310e2ca7aa4b72 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 14 Aug 2019 10:48:58 -0400 Subject: [PATCH 279/528] Run with full pipeline. --- .cicd/pipeline.yml | 328 ++++++++++++++++++++++----------------------- 1 file changed, 164 insertions(+), 164 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 48b3a88d998..1b88c394fa5 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,39 +1,39 @@ steps: - # - label: ":aws: Amazon_Linux 2 - Build" - # command: - # - "bash ./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "amazonlinux-2" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_AMAZON_LINUX_2 + - label: ":aws: Amazon_Linux 2 - Build" + command: + - "bash ./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "amazonlinux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_AMAZON_LINUX_2 - # - label: ":centos: CentOS 7.6 - Build" - # command: - # - "bash ./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "centos-7.6" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} + - label: ":centos: CentOS 7.6 - Build" + command: + - "bash ./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} - # - label: ":ubuntu: Ubuntu 16.04 - Build" - # command: - # - "bash ./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_16 + - label: ":ubuntu: Ubuntu 16.04 - Build" + command: + - "bash ./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 - label: ":ubuntu: Ubuntu 18.04 - Build" command: @@ -47,130 +47,130 @@ steps: timeout: ${TIMEOUT:-10} skip: $SKIP_UBUNTU_18 - # - label: ":darwin: macOS 10.14 - Build" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && ./.cicd/build.sh" - # - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # modify-cpu: 12 - # modify-ram: 24 - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-large-node-fleet" + - label: ":darwin: macOS 10.14 - Build" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && ./.cicd/build.sh" + - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + modify-cpu: 12 + modify-ram: 24 + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-large-node-fleet" - wait - # - label: ":aws: Amazon_Linux 2 - Unit Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "amazonlinux-2" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_AMAZON_LINUX_2 + - label: ":aws: Amazon_Linux 2 - Unit Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "amazonlinux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_AMAZON_LINUX_2 - # - label: ":centos: CentOS 7.6 - Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "centos-7.6" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_CENTOS_7 + - label: ":centos: CentOS 7.6 - Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_CENTOS_7 - # - label: ":ubuntu: Ubuntu 16.04 - Unit Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_16 + - label: ":ubuntu: Ubuntu 16.04 - Unit Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 - # - label: ":ubuntu: Ubuntu 18.04 - Unit Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_18 + - label: ":ubuntu: Ubuntu 18.04 - Unit Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 - # - label: ":darwin: macOS 10.14 - Unit Test" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - # - "cd eos && bash ./.cicd/parallel-tests.sh" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-node-fleet" - # skip: $SKIP_MOJAVE + - label: ":darwin: macOS 10.14 - Unit Test" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && bash ./.cicd/parallel-tests.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-node-fleet" + skip: $SKIP_MOJAVE - # - label: ":aws: Amazon_Linux 2 - Serial Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/serial-tests.sh" - # env: - # IMAGE_TAG: "amazonlinux-2" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_AMAZON_LINUX_2 + - label: ":aws: Amazon_Linux 2 - Serial Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/serial-tests.sh" + env: + IMAGE_TAG: "amazonlinux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_AMAZON_LINUX_2 - # - label: ":centos: CentOS 7.6 - Serial Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/serial-tests.sh" - # env: - # IMAGE_TAG: "centos-7.6" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_CENTOS_7 + - label: ":centos: CentOS 7.6 - Serial Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/serial-tests.sh" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_CENTOS_7 - # - label: ":ubuntu: Ubuntu 16.04 - Serial Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/serial-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_16 + - label: ":ubuntu: Ubuntu 16.04 - Serial Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/serial-tests.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 - label: ":ubuntu: Ubuntu 18.04 - Serial Test" command: @@ -184,24 +184,24 @@ steps: timeout: ${TIMEOUT:-10} skip: $SKIP_UBUNTU_18 - # - label: ":darwin: macOS 10.14 - Serial Test" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - # - "cd eos && bash ./.cicd/serial-tests.sh" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-node-fleet" - # skip: $SKIP_MOJAVE + - label: ":darwin: macOS 10.14 - Serial Test" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && bash ./.cicd/serial-tests.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-node-fleet" + skip: $SKIP_MOJAVE # - label: ":aws: Amazon_Linux 2 - Long-Running Tests" # command: From efd9e6b0b7a57cb1cbb94eab700e9d45d10414da Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 14 Aug 2019 10:57:57 -0400 Subject: [PATCH 280/528] Run with full pipeline. --- .cicd/build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index baab39c24cf..2e66bd5ae91 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -59,7 +59,7 @@ else # Linux done < "$BUILDKITE_ENV_FILE" fi - echo "docker run $ARGS $evars eosio/producer:eos-ubuntu-18.04-7f7907879240c857f2a7952115157003f8281f32 bash -c \"$COMMANDS\"" - eval docker run $ARGS $evars eosio/producer:eos-ubuntu-18.04-7f7907879240c857f2a7952115157003f8281f32 bash -c \"$COMMANDS\" + echo "docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\"" + eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" fi \ No newline at end of file From a7dd2fcae7ecd6a89400c9a93f60c44da57c4a45 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 14 Aug 2019 12:00:52 -0400 Subject: [PATCH 281/528] Run with full pipeline. --- .cicd/serial-tests.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index fa261f961fc..ad9e6163b1b 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -28,7 +28,7 @@ else # Linux evars="$evars --env ${var%%=*}" done < "$BUILDKITE_ENV_FILE" fi - - eval docker run $ARGS $evars eosio/producer:eos-ubuntu-18.04-7f7907879240c857f2a7952115157003f8281f32 bash -c \"$COMMANDS\" + echo "docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\"" + eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" fi \ No newline at end of file From 5606e06332bd689331ef3907934f49a6c01a374b Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 14 Aug 2019 12:26:58 -0400 Subject: [PATCH 282/528] Label fix for Centos unit tests. --- .cicd/pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 1b88c394fa5..f1e5f77dd3d 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -81,7 +81,7 @@ steps: timeout: ${TIMEOUT:-10} skip: $SKIP_AMAZON_LINUX_2 - - label: ":centos: CentOS 7.6 - Test" + - label: ":centos: CentOS 7.6 - Unit Test" command: - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - "bash ./.cicd/parallel-tests.sh" From a6e3c15a051537e7cb9fe48a550f7b1d7ef7304b Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 14 Aug 2019 12:45:12 -0400 Subject: [PATCH 283/528] Bash is being not fun on U18. --- .cicd/serial-tests.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index ad9e6163b1b..36674fc3818 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -28,7 +28,7 @@ else # Linux evars="$evars --env ${var%%=*}" done < "$BUILDKITE_ENV_FILE" fi - echo "docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\"" - eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" + echo "docker run $ARGS $evars $FULL_TAG sh -c \"$COMMANDS\"" + eval docker run $ARGS $evars $FULL_TAG sh -c \"$COMMANDS\" fi \ No newline at end of file From 78051350370e646f24cafba2314e6c2e7f47e7fb Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 14 Aug 2019 12:59:43 -0400 Subject: [PATCH 284/528] Re-enable all serial tests. --- .cicd/serial-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index 36674fc3818..bf961f9f6bf 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -2,7 +2,7 @@ set -eo pipefail . ./.cicd/helpers/general.sh -TEST="mkdir -p ./mongodb && mongod --dbpath ./mongodb --fork --logpath mongod.log && ctest -R ^nodeos_protocol_feature_test$ --output-on-failure -T Test" +TEST="mkdir -p ./mongodb && mongod --dbpath ./mongodb --fork --logpath mongod.log && ctest -L nonparallelizable_tests --output-on-failure -T Test" if [[ $(uname) == 'Darwin' ]]; then From 2cb8503fff700a5a0ea2cc1c9f28d35c91259f7d Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 14 Aug 2019 13:40:36 -0400 Subject: [PATCH 285/528] Fix for package builder steps. --- .cicd/pipeline.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index f1e5f77dd3d..9323f878ad8 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -300,7 +300,7 @@ steps: - label: ":centos: Centos 7.6 - Package Builder" command: - - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - "./.cicd/package-builder.sh" env: BUILDKITE_AGENT_ACCESS_TOKEN: @@ -311,7 +311,7 @@ steps: - label: ":ubuntu: Ubuntu 16.04 - Package Builder" command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - "./.cicd/package-builder.sh" env: BUILDKITE_AGENT_ACCESS_TOKEN: @@ -322,7 +322,7 @@ steps: - label: ":ubuntu: Ubuntu 18.04 - Package Builder" command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build & Test' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - "./.cicd/package-builder.sh" env: BUILDKITE_AGENT_ACCESS_TOKEN: @@ -334,7 +334,7 @@ steps: - label: ":darwin: Mojave - Package Builder" command: - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build & Test' && tar -xzf build.tar.gz" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - "cd eos && ./.cicd/package-builder.sh" plugins: - chef/anka#v0.5.1: From ebc84140600845eb61367d4a764483cac332b608 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 14 Aug 2019 14:12:32 -0400 Subject: [PATCH 286/528] Throw 'bash -c' in front of testing commands on Darwin. --- .cicd/long-running-tests.sh | 2 +- .cicd/parallel-tests.sh | 2 +- .cicd/serial-tests.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.cicd/long-running-tests.sh b/.cicd/long-running-tests.sh index 9ac5996afda..234faa2d659 100755 --- a/.cicd/long-running-tests.sh +++ b/.cicd/long-running-tests.sh @@ -8,7 +8,7 @@ if [[ $(uname) == 'Darwin' ]]; then # You can't use chained commands in execute cd $BUILD_DIR - $TEST + bash -c "$TEST" else # Linux diff --git a/.cicd/parallel-tests.sh b/.cicd/parallel-tests.sh index 245f09227cf..7f898b52cc4 100755 --- a/.cicd/parallel-tests.sh +++ b/.cicd/parallel-tests.sh @@ -8,7 +8,7 @@ if [[ $(uname) == 'Darwin' ]]; then # You can't use chained commands in execute cd $BUILD_DIR - $TEST + bash -c "$TEST" else # Linux diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index bf961f9f6bf..ff54f5b800f 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -8,7 +8,7 @@ if [[ $(uname) == 'Darwin' ]]; then # You can't use chained commands in execute cd $BUILD_DIR - $TEST + bash -c "$TEST" else # Linux From c51548427086353527642990ffbda35699517aa1 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 14 Aug 2019 14:15:40 -0400 Subject: [PATCH 287/528] Add --init in Docker args. --- .cicd/build.sh | 2 +- .cicd/helpers/installation-build.sh | 2 +- .cicd/long-running-tests.sh | 2 +- .cicd/parallel-tests.sh | 2 +- .cicd/serial-tests.sh | 6 +++--- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index 2e66bd5ae91..812d7b6602e 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -14,7 +14,7 @@ if [[ $(uname) == 'Darwin' ]]; then else # Linux - ARGS=${ARGS:-"--rm -v $(pwd):$MOUNTED_DIR"} + ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} . $HELPERS_DIR/docker-hash.sh diff --git a/.cicd/helpers/installation-build.sh b/.cicd/helpers/installation-build.sh index 115704d9d3b..b2dd1b8ac44 100755 --- a/.cicd/helpers/installation-build.sh +++ b/.cicd/helpers/installation-build.sh @@ -8,7 +8,7 @@ if [[ $BUILDKITE_BRANCH =~ ^release/[0-9].[0-9]+.x$ || $BUILDKITE_BRANCH =~ ^mas export BRANCH=$(echo $BUILDKITE_BRANCH | sed 's/\//\_/') export CONTRACTS_BUILDER_TAG="eosio/ci-contracts-builder:base-ubuntu-18.04" - export ARGS="--name ci-contracts-builder-$BUILDKITE_COMMIT -v $(pwd):$MOUNTED_DIR" + export ARGS="--name ci-contracts-builder-$BUILDKITE_COMMIT --init -v $(pwd):$MOUNTED_DIR" docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD $CICD_DIR/build.sh diff --git a/.cicd/long-running-tests.sh b/.cicd/long-running-tests.sh index 234faa2d659..cd776d188dd 100755 --- a/.cicd/long-running-tests.sh +++ b/.cicd/long-running-tests.sh @@ -12,7 +12,7 @@ if [[ $(uname) == 'Darwin' ]]; then else # Linux - ARGS=${ARGS:-"--rm -v $(pwd):$MOUNTED_DIR"} + ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} . $HELPERS_DIR/docker-hash.sh diff --git a/.cicd/parallel-tests.sh b/.cicd/parallel-tests.sh index 7f898b52cc4..888e7e6be27 100755 --- a/.cicd/parallel-tests.sh +++ b/.cicd/parallel-tests.sh @@ -12,7 +12,7 @@ if [[ $(uname) == 'Darwin' ]]; then else # Linux - ARGS=${ARGS:-"--rm -v $(pwd):$MOUNTED_DIR"} + ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} . $HELPERS_DIR/docker-hash.sh diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index ff54f5b800f..416e5a136b2 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -12,7 +12,7 @@ if [[ $(uname) == 'Darwin' ]]; then else # Linux - ARGS=${ARGS:-"--rm -v $(pwd):$MOUNTED_DIR"} + ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} . $HELPERS_DIR/docker-hash.sh @@ -28,7 +28,7 @@ else # Linux evars="$evars --env ${var%%=*}" done < "$BUILDKITE_ENV_FILE" fi - echo "docker run $ARGS $evars $FULL_TAG sh -c \"$COMMANDS\"" - eval docker run $ARGS $evars $FULL_TAG sh -c \"$COMMANDS\" + echo "docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\"" + eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" fi \ No newline at end of file From d121fda4c96ac1f713ae00e24c6ac042ac0ad364 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 14 Aug 2019 14:20:13 -0400 Subject: [PATCH 288/528] Initial wait step consistency. --- .cicd/pipeline.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 9323f878ad8..05cca3fbab9 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,5 +1,7 @@ steps: + - wait + - label: ":aws: Amazon_Linux 2 - Build" command: - "bash ./.cicd/build.sh" From faf0af98e743eb4f615df06cbbba3f4342e992ac Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 14 Aug 2019 14:22:58 -0400 Subject: [PATCH 289/528] Packages builds don't need to wait on the contracts-builder step. --- .cicd/pipeline.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 05cca3fbab9..03b316e6ba6 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -298,8 +298,6 @@ steps: timeout: ${TIMEOUT:-10} skip: $SKIP_UBUNTU_18 - - wait - - label: ":centos: Centos 7.6 - Package Builder" command: - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" From 7cbf499e07bee68ebeb347215bfa1adc3a1594a7 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 14 Aug 2019 15:26:07 -0400 Subject: [PATCH 290/528] skip steps added --- .cicd/pipeline.yml | 154 +++++++++++++++++++++++---------------------- 1 file changed, 79 insertions(+), 75 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 9323f878ad8..51a71206d17 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -22,6 +22,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} + skip: $SKIP_CENTOS_7 - label: ":ubuntu: Ubuntu 16.04 - Build" command: @@ -66,6 +67,7 @@ steps: wait-network: true agents: - "queue=mac-anka-large-node-fleet" + skip: $SKIP_MOJAVE - wait @@ -79,7 +81,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_AMAZON_LINUX_2 + skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} - label: ":centos: CentOS 7.6 - Unit Test" command: @@ -91,7 +93,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_CENTOS_7 + skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} - label: ":ubuntu: Ubuntu 16.04 - Unit Test" command: @@ -103,7 +105,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_16 + skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} - label: ":ubuntu: Ubuntu 18.04 - Unit Test" command: @@ -115,7 +117,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_18 + skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} - label: ":darwin: macOS 10.14 - Unit Test" command: @@ -134,7 +136,7 @@ steps: wait-network: true agents: - "queue=mac-anka-node-fleet" - skip: $SKIP_MOJAVE + skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} - label: ":aws: Amazon_Linux 2 - Serial Test" command: @@ -146,7 +148,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_AMAZON_LINUX_2 + skip: ${SKIP_AMAZON_LINUX_2}${SKIP_SERIAL_TESTS} - label: ":centos: CentOS 7.6 - Serial Test" command: @@ -158,7 +160,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_CENTOS_7 + skip: ${SKIP_CENTOS_7}${SKIP_SERIAL_TESTS} - label: ":ubuntu: Ubuntu 16.04 - Serial Test" command: @@ -170,7 +172,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_16 + skip: ${SKIP_UBUNTU_16}${SKIP_SERIAL_TESTS} - label: ":ubuntu: Ubuntu 18.04 - Serial Test" command: @@ -182,7 +184,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_18 + skip: ${SKIP_UBUNTU_18}${SKIP_SERIAL_TESTS} - label: ":darwin: macOS 10.14 - Serial Test" command: @@ -201,73 +203,74 @@ steps: wait-network: true agents: - "queue=mac-anka-node-fleet" - skip: $SKIP_MOJAVE + skip: ${SKIP_MOJAVE}${SKIP_SERIAL_TESTS} - # - label: ":aws: Amazon_Linux 2 - Long-Running Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/long-running-tests.sh" - # env: - # IMAGE_TAG: "amazonlinux-2" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_AMAZON_LINUX_2 + - label: ":aws: Amazon_Linux 2 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "amazonlinux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_AMAZON_LINUX_2}${SKIP_LONG_RUNNING_TESTS:-false} - # - label: ":centos: CentOS 7.6 - Long-Running Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/long-running-tests.sh" - # env: - # IMAGE_TAG: "centos-7.6" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_CENTOS_7 + - label: ":centos: CentOS 7.6 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_CENTOS_7}${SKIP_LONG_RUNNING_TESTS:-false} - # - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_16 + - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_16}${SKIP_LONG_RUNNING_TESTS:-false} - # - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_18 + - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_18}${SKIP_LONG_RUNNING_TESTS:-false} - # - label: ":darwin: macOS 10.14 - Long-Running Tests" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - # - "cd eos && bash ./.cicd/parallel-tests.sh" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-node-fleet" + - label: ":darwin: macOS 10.14 - Long-Running Tests" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && bash ./.cicd/parallel-tests.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-node-fleet" + skip: ${SKIP_MOJAVE}${SKIP_LONG_RUNNING_TESTS:-false} - wait: continue_on_failure: true @@ -294,7 +297,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_18 + skip: ${SKIP_UBUNTU_18}${SKIP_CONTRACT_BUILDER} - wait @@ -307,7 +310,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_CENTOS_7 + skip: ${SKIP_CENTOS_7}${SKIP_PACKAGE_BUILDER} - label: ":ubuntu: Ubuntu 16.04 - Package Builder" command: @@ -318,7 +321,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_16 + skip: ${SKIP_UBUNTU_16}${SKIP_PACKAGE_BUILDER} - label: ":ubuntu: Ubuntu 18.04 - Package Builder" command: @@ -329,7 +332,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_18 + skip: ${SKIP_UBUNTU_18}${SKIP_PACKAGE_BUILDER} - label: ":darwin: Mojave - Package Builder" command: @@ -348,6 +351,7 @@ steps: agents: - "queue=mac-anka-node-fleet" timeout: 10 + skip: ${SKIP_MOJAVE}${SKIP_PACKAGE_BUILDER} - label: ":git: Git Submodule Regression Check" command: From 5bbd368b58d8e9e205188674a3b63d1a4bcba966 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 14 Aug 2019 15:34:11 -0400 Subject: [PATCH 291/528] fix --- .cicd/pipeline.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 7aa758c0f90..8b4fda55085 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -217,7 +217,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: ${SKIP_AMAZON_LINUX_2}${SKIP_LONG_RUNNING_TESTS:-false} + skip: ${SKIP_AMAZON_LINUX_2}${SKIP_LONG_RUNNING_TESTS:-true} - label: ":centos: CentOS 7.6 - Long-Running Tests" command: @@ -229,7 +229,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: ${SKIP_CENTOS_7}${SKIP_LONG_RUNNING_TESTS:-false} + skip: ${SKIP_CENTOS_7}${SKIP_LONG_RUNNING_TESTS:-true} - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" command: @@ -241,7 +241,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_16}${SKIP_LONG_RUNNING_TESTS:-false} + skip: ${SKIP_UBUNTU_16}${SKIP_LONG_RUNNING_TESTS:-true} - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" command: @@ -253,7 +253,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_18}${SKIP_LONG_RUNNING_TESTS:-false} + skip: ${SKIP_UBUNTU_18}${SKIP_LONG_RUNNING_TESTS:-true} - label: ":darwin: macOS 10.14 - Long-Running Tests" command: @@ -272,7 +272,7 @@ steps: wait-network: true agents: - "queue=mac-anka-node-fleet" - skip: ${SKIP_MOJAVE}${SKIP_LONG_RUNNING_TESTS:-false} + skip: ${SKIP_MOJAVE}${SKIP_LONG_RUNNING_TESTS:-true} - wait: continue_on_failure: true From 81f82b8ed88be09e0224d98ba1c51fde5e562824 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 14 Aug 2019 16:39:17 -0400 Subject: [PATCH 292/528] 1G max-size --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 40e480a1513..c6c6bea82ca 100644 --- a/.travis.yml +++ b/.travis.yml @@ -49,7 +49,7 @@ matrix: - mongodb env: - PATH="/usr/local/opt/ccache/libexec:$PATH" -script: "./.cicd/build.sh && ./.cicd/parallel-tests.sh && ./.cicd/serial-tests.sh" +script: "ccache --max-size=1G && ./.cicd/build.sh && ./.cicd/parallel-tests.sh && ./.cicd/serial-tests.sh" notifications: webhooks: secure: gmqODqoFAil2cR7v++ibqRNECBOSD/VJX+2qPa7XptkVWmVMzbII5CNgBQAscjFsp9arHPMXCCzkBi847PCSiHdsnYFQ4T273FLRWr3cDbLjfmR+BJ7dGKvQnlpSi2Ze2TtAPJyRl+iv+cxDj7cWE5zw2c4xbgh1a/cNO+/ayUfFkyMEIfVWRsHkdkra4gOLywou0XRLHr4CX1V60uU7uuqATnIMMi7gQYwiKKtZqjkbf8wcBvZirDhjQ6lDPN5tnZo6L4QHmqjtzNJg/UrD4h+zES53dLVI4uxlXRAwwpw+mJOFA3QE/3FT+bMQjLCffUz4gZaWcdgebPYzrwSWUbJoFdWAOwcTqivQY0FIQzcz/r6uGWcwWTavzkPEbg68BVM2BZId/0110J6feeTkpJ3MPV+UsIoGTvbg50vi/I06icftuZ/cLqDj3+Emifm7Jlr1sRTSdqtYAJj/2ImUfsb46cwgjAVhFOTvc+KuPgJQgvOXV7bZkxEr5qDWo8Al2sV8BWb83j1rMlZ4LfERokImDVqxu2kkcunchzvhtYFTesSpmwegVpwceCtOtO0rEUgATnfTEHzk2rm8nuz4UtidsQnluUKqmKD0QCqHXFfn+3ZRJsDqr+iCYdxv1BAeAVc9q1L7bgrKDMGiJgkxuhZ2v3J2SflWLvjZjFDduuc= From 3f1a647fb3be8c87628c8f4947ebbd4d231c956f Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 14 Aug 2019 17:21:44 -0400 Subject: [PATCH 293/528] Removed old debug command. --- .cicd/build.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index 812d7b6602e..ef3d2b3bc9d 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -35,7 +35,6 @@ else # Linux fi BUILD_COMMANDS="cmake $CMAKE_EXTRAS .. && make -j$JOBS" - TEST="mkdir -p ./mongodb && mongod --dbpath ./mongodb --fork --logpath mongod.log && ctest -R ^nodeos_protocol_feature_test$ --output-on-failure -T Test" # Docker Commands if [[ $BUILDKITE == true ]]; then From 6ffe518765676321421aaa93c0f53c9ecd73c40a Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Thu, 15 Aug 2019 09:22:38 -0400 Subject: [PATCH 294/528] LRTs on Centos failing due to python3 not being enabled. --- .cicd/long-running-tests.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.cicd/long-running-tests.sh b/.cicd/long-running-tests.sh index cd776d188dd..bd77b98014d 100755 --- a/.cicd/long-running-tests.sh +++ b/.cicd/long-running-tests.sh @@ -16,8 +16,11 @@ else # Linux . $HELPERS_DIR/docker-hash.sh - COMMANDS="cd $MOUNTED_DIR/build && $TEST" + PRE_COMMANDS="cd $MOUNTED_DIR/build" + [[ $IMAGE_TAG == 'centos-7.6' ]] && PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:\\\$PATH" + COMMANDS="$PRE_COMMANDS && $TEST" + # Load BUILDKITE Environment Variables for use in docker run if [[ -f $BUILDKITE_ENV_FILE ]]; then evars="" From 6e6ccb9dbff5c1cb5903ff4f39ea1d6e01c988f3 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Thu, 15 Aug 2019 09:25:33 -0400 Subject: [PATCH 295/528] Ubuntus and Mac were not running LRTs. --- .cicd/pipeline.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 8b4fda55085..a35618525a1 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -234,7 +234,7 @@ steps: - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" command: - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/parallel-tests.sh" + - "bash ./.cicd/long-running-tests.sh" env: IMAGE_TAG: "ubuntu-16.04" BUILDKITE_AGENT_ACCESS_TOKEN: @@ -246,7 +246,7 @@ steps: - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" command: - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/parallel-tests.sh" + - "bash ./.cicd/long-running-tests.sh" env: IMAGE_TAG: "ubuntu-18.04" BUILDKITE_AGENT_ACCESS_TOKEN: @@ -260,7 +260,7 @@ steps: - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && bash ./.cicd/parallel-tests.sh" + - "cd eos && bash ./.cicd/long-running-tests.sh" plugins: - chef/anka#v0.5.1: no-volume: true From 3655e88fdf48218e6183afc69cc54616bcf99249 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 15 Aug 2019 10:53:25 -0400 Subject: [PATCH 296/528] 12 cores for LRTs --- .cicd/pipeline.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index a35618525a1..d7afd7f3f67 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -267,11 +267,13 @@ steps: inherit-environment-vars: true vm-name: 10.14.4_6C_14G_40G vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + modify-cpu: 12 + modify-ram: 24 always-pull: true debug: true wait-network: true agents: - - "queue=mac-anka-node-fleet" + - "queue=mac-anka-large-node-fleet" skip: ${SKIP_MOJAVE}${SKIP_LONG_RUNNING_TESTS:-true} - wait: From d189459bb3e96a9a6fc57ceea0fdb5255ece1108 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 15 Aug 2019 11:46:29 -0400 Subject: [PATCH 297/528] testing larger builder fleet --- .cicd/pipeline.yml | 462 ++++++++++++++++++++++----------------------- 1 file changed, 231 insertions(+), 231 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index d7afd7f3f67..099a767d8df 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -14,198 +14,198 @@ steps: timeout: ${TIMEOUT:-10} skip: $SKIP_AMAZON_LINUX_2 - - label: ":centos: CentOS 7.6 - Build" - command: - - "bash ./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_CENTOS_7 + # - label: ":centos: CentOS 7.6 - Build" + # command: + # - "bash ./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "centos-7.6" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_CENTOS_7 - - label: ":ubuntu: Ubuntu 16.04 - Build" - command: - - "bash ./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_16 + # - label: ":ubuntu: Ubuntu 16.04 - Build" + # command: + # - "bash ./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "ubuntu-16.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_16 - - label: ":ubuntu: Ubuntu 18.04 - Build" - command: - - "bash ./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_18 + # - label: ":ubuntu: Ubuntu 18.04 - Build" + # command: + # - "bash ./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "ubuntu-18.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_18 - - label: ":darwin: macOS 10.14 - Build" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && ./.cicd/build.sh" - - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - modify-cpu: 12 - modify-ram: 24 - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-large-node-fleet" - skip: $SKIP_MOJAVE + # - label: ":darwin: macOS 10.14 - Build" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && ./.cicd/build.sh" + # - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # modify-cpu: 12 + # modify-ram: 24 + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-large-node-fleet" + # skip: $SKIP_MOJAVE - wait - - label: ":aws: Amazon_Linux 2 - Unit Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "amazonlinux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} + # - label: ":aws: Amazon_Linux 2 - Unit Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "amazonlinux-2" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} - - label: ":centos: CentOS 7.6 - Unit Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} + # - label: ":centos: CentOS 7.6 - Unit Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "centos-7.6" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} - - label: ":ubuntu: Ubuntu 16.04 - Unit Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} + # - label: ":ubuntu: Ubuntu 16.04 - Unit Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-16.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} - - label: ":ubuntu: Ubuntu 18.04 - Unit Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} + # - label: ":ubuntu: Ubuntu 18.04 - Unit Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-18.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} - - label: ":darwin: macOS 10.14 - Unit Test" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && bash ./.cicd/parallel-tests.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-node-fleet" - skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} + # - label: ":darwin: macOS 10.14 - Unit Test" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + # - "cd eos && bash ./.cicd/parallel-tests.sh" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-node-fleet" + # skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} - - label: ":aws: Amazon_Linux 2 - Serial Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/serial-tests.sh" - env: - IMAGE_TAG: "amazonlinux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_AMAZON_LINUX_2}${SKIP_SERIAL_TESTS} + # - label: ":aws: Amazon_Linux 2 - Serial Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/serial-tests.sh" + # env: + # IMAGE_TAG: "amazonlinux-2" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_AMAZON_LINUX_2}${SKIP_SERIAL_TESTS} - - label: ":centos: CentOS 7.6 - Serial Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/serial-tests.sh" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_CENTOS_7}${SKIP_SERIAL_TESTS} + # - label: ":centos: CentOS 7.6 - Serial Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/serial-tests.sh" + # env: + # IMAGE_TAG: "centos-7.6" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_CENTOS_7}${SKIP_SERIAL_TESTS} - - label: ":ubuntu: Ubuntu 16.04 - Serial Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/serial-tests.sh" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_16}${SKIP_SERIAL_TESTS} + # - label: ":ubuntu: Ubuntu 16.04 - Serial Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/serial-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-16.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_UBUNTU_16}${SKIP_SERIAL_TESTS} - - label: ":ubuntu: Ubuntu 18.04 - Serial Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/serial-tests.sh" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_18}${SKIP_SERIAL_TESTS} + # - label: ":ubuntu: Ubuntu 18.04 - Serial Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/serial-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-18.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_UBUNTU_18}${SKIP_SERIAL_TESTS} - - label: ":darwin: macOS 10.14 - Serial Test" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && bash ./.cicd/serial-tests.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-node-fleet" - skip: ${SKIP_MOJAVE}${SKIP_SERIAL_TESTS} + # - label: ":darwin: macOS 10.14 - Serial Test" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + # - "cd eos && bash ./.cicd/serial-tests.sh" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-node-fleet" + # skip: ${SKIP_MOJAVE}${SKIP_SERIAL_TESTS} - label: ":aws: Amazon_Linux 2 - Long-Running Tests" command: @@ -215,66 +215,66 @@ steps: IMAGE_TAG: "amazonlinux-2" BUILDKITE_AGENT_ACCESS_TOKEN: agents: - queue: "automation-eos-builder-fleet" + queue: "automation-large-builder-fleet" timeout: ${TIMEOUT:-10} skip: ${SKIP_AMAZON_LINUX_2}${SKIP_LONG_RUNNING_TESTS:-true} - - label: ":centos: CentOS 7.6 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/long-running-tests.sh" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_CENTOS_7}${SKIP_LONG_RUNNING_TESTS:-true} + # - label: ":centos: CentOS 7.6 - Long-Running Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/long-running-tests.sh" + # env: + # IMAGE_TAG: "centos-7.6" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_CENTOS_7}${SKIP_LONG_RUNNING_TESTS:-true} - - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/long-running-tests.sh" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_16}${SKIP_LONG_RUNNING_TESTS:-true} + # - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/long-running-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-16.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_UBUNTU_16}${SKIP_LONG_RUNNING_TESTS:-true} - - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - - "bash ./.cicd/long-running-tests.sh" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_18}${SKIP_LONG_RUNNING_TESTS:-true} + # - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + # - "bash ./.cicd/long-running-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-18.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_UBUNTU_18}${SKIP_LONG_RUNNING_TESTS:-true} - - label: ":darwin: macOS 10.14 - Long-Running Tests" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && bash ./.cicd/long-running-tests.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - modify-cpu: 12 - modify-ram: 24 - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-large-node-fleet" - skip: ${SKIP_MOJAVE}${SKIP_LONG_RUNNING_TESTS:-true} + # - label: ":darwin: macOS 10.14 - Long-Running Tests" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + # - "cd eos && bash ./.cicd/long-running-tests.sh" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # modify-cpu: 12 + # modify-ram: 24 + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-large-node-fleet" + # skip: ${SKIP_MOJAVE}${SKIP_LONG_RUNNING_TESTS:-true} - wait: continue_on_failure: true From c96f4f78e474128903ed0da8089e3a52b270415d Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 15 Aug 2019 17:45:26 -0400 Subject: [PATCH 298/528] testing --- ...2.dockerfile => amazon_linux-2.dockerfile} | 0 .cicd/generate-serial-tests.sh | 41 +++ .cicd/helpers/general.sh | 5 + .cicd/pipeline.yml | 262 +----------------- .cicd/serial-tests.sh | 4 +- STEP_TEMPLATE | 0 tests/Testing/Temporary/LastTest.log | 3 + 7 files changed, 56 insertions(+), 259 deletions(-) rename .cicd/docker/{amazonlinux-2.dockerfile => amazon_linux-2.dockerfile} (100%) create mode 100755 .cicd/generate-serial-tests.sh create mode 100644 STEP_TEMPLATE create mode 100644 tests/Testing/Temporary/LastTest.log diff --git a/.cicd/docker/amazonlinux-2.dockerfile b/.cicd/docker/amazon_linux-2.dockerfile similarity index 100% rename from .cicd/docker/amazonlinux-2.dockerfile rename to .cicd/docker/amazon_linux-2.dockerfile diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh new file mode 100755 index 00000000000..57a233b8aaa --- /dev/null +++ b/.cicd/generate-serial-tests.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash +set -eo pipefail +. ./.cicd/helpers/general.sh + +rm -f /tmp/serial_tests + +# Use dockerfiles as source of truth for what platforms to use +echo "/# SERIAL TESTS/ {\n " +for DOCKERFILE in $(ls $CICD_DIR/docker); do + + DOCKERFILE_NAME=$(echo $DOCKERFILE | cut -d. -f1) + PLATFORM_NAME=$(echo $DOCKERFILE_NAME | cut -d- -f1) + PLATFORM_NAME_UPCASE=$(echo $PLATFORM_NAME | tr a-z A-Z) + VERSION=$(echo $DOCKERFILE_NAME | cut -d- -f2) + OLDIFS=$IFS;IFS="_";set $PLATFORM_NAME;IFS=$OLDIFS + PLATFORM_NAME_FULL="$(capitalize $1)$( [[ ! -z $2 ]] && echo "_$(capitalize $2)" || true ) $VERSION" + [[ $PLATFORM_NAME =~ 'amazon' ]] && ICON=':aws:' + [[ $PLATFORM_NAME =~ 'ubuntu' ]] && ICON=':ubuntu:' + [[ $PLATFORM_NAME =~ 'centos' ]] && ICON=':centos:' + + for TEST_NAME in $(cat tests/CMakeLists.txt | grep nonparallelizable_tests | awk -F" " '{ print $2 }'); do + +cat < Date: Thu, 15 Aug 2019 17:48:33 -0400 Subject: [PATCH 299/528] quick fixes --- .cicd/generate-serial-tests.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index 57a233b8aaa..24e5d6a5d92 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -2,10 +2,7 @@ set -eo pipefail . ./.cicd/helpers/general.sh -rm -f /tmp/serial_tests - # Use dockerfiles as source of truth for what platforms to use -echo "/# SERIAL TESTS/ {\n " for DOCKERFILE in $(ls $CICD_DIR/docker); do DOCKERFILE_NAME=$(echo $DOCKERFILE | cut -d. -f1) From c3842d9c25654420867a5a0d1e641bf7f28f72d4 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 15 Aug 2019 17:48:56 -0400 Subject: [PATCH 300/528] quick fixes --- .cicd/generate-serial-tests.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index 24e5d6a5d92..f590d4d9e87 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -30,9 +30,5 @@ cat < Date: Thu, 15 Aug 2019 17:50:49 -0400 Subject: [PATCH 301/528] quick fixes --- .cicd/base-images.yml | 2 +- .cicd/build.sh | 2 +- .cicd/pipeline.yml | 2 +- .travis.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.cicd/base-images.yml b/.cicd/base-images.yml index 7b534b762c2..a45e4c20913 100644 --- a/.cicd/base-images.yml +++ b/.cicd/base-images.yml @@ -7,7 +7,7 @@ steps: - label: ":aws: Amazon_Linux 2 - Build" command: - - ".cicd/generate-base-images.sh amazonlinux-2" + - ".cicd/generate-base-images.sh amazon_linux-2" agents: queue: "automation-eos-dockerhub-image-builder-fleet" timeout: $BUILD_TIMEOUT diff --git a/.cicd/build.sh b/.cicd/build.sh index ef3d2b3bc9d..2951f83fdeb 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -29,7 +29,7 @@ else # Linux CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$MOUNTED_DIR/.cicd/helpers/clang.make -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" elif [[ $IMAGE_TAG == 'centos-7.6' ]]; then PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:\\\$PATH" - elif [[ $IMAGE_TAG == 'amazonlinux-2' ]]; then + elif [[ $IMAGE_TAG == 'amazon_linux-2' ]]; then PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib64/ccache:\\\$PATH" CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" fi diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index cdfa0f9314a..a3143816665 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -6,7 +6,7 @@ steps: - "bash ./.cicd/build.sh" - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" env: - IMAGE_TAG: "amazonlinux-2" + IMAGE_TAG: "amazon_linux-2" BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" diff --git a/.travis.yml b/.travis.yml index c6c6bea82ca..4b60e7ad63a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,7 +22,7 @@ matrix: dist: xenial services: docker env: - - IMAGE_TAG='amazonlinux-2' + - IMAGE_TAG='amazon_linux-2' - os: linux dist: xenial services: docker From 0ab6cbb22e3d767e92b021a9e39452b7d28d80eb Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 15 Aug 2019 17:53:33 -0400 Subject: [PATCH 302/528] quick fixes --- .cicd/pipeline.yml | 57 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index a3143816665..9da7d34d952 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -12,6 +12,63 @@ steps: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} skip: $SKIP_AMAZON_LINUX_2 + + - label: ":centos: CentOS 7.6 - Build" + command: + - "bash ./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_CENTOS_7 + + - label: ":ubuntu: Ubuntu 16.04 - Build" + command: + - "bash ./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 + + - label: ":ubuntu: Ubuntu 18.04 - Build" + command: + - "bash ./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 + + - label: ":darwin: macOS 10.14 - Build" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && ./.cicd/build.sh" + - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + modify-cpu: 12 + modify-ram: 24 + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-large-node-fleet" + skip: $SKIP_MOJAVE - wait From d3812a1d2b5e80a07fe47f8701e800ab013e3b0f Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 16 Aug 2019 09:28:50 -0400 Subject: [PATCH 303/528] quick fixes --- .cicd/generate-serial-tests.sh | 2 -- .cicd/helpers/general.sh | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index f590d4d9e87..7f2294863fb 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -14,9 +14,7 @@ for DOCKERFILE in $(ls $CICD_DIR/docker); do [[ $PLATFORM_NAME =~ 'amazon' ]] && ICON=':aws:' [[ $PLATFORM_NAME =~ 'ubuntu' ]] && ICON=':ubuntu:' [[ $PLATFORM_NAME =~ 'centos' ]] && ICON=':centos:' - for TEST_NAME in $(cat tests/CMakeLists.txt | grep nonparallelizable_tests | awk -F" " '{ print $2 }'); do - cat < Date: Fri, 16 Aug 2019 09:29:06 -0400 Subject: [PATCH 304/528] quick fixes --- .cicd/helpers/general.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.cicd/helpers/general.sh b/.cicd/helpers/general.sh index 6b210e72ab6..41f0b38fc0f 100644 --- a/.cicd/helpers/general.sh +++ b/.cicd/helpers/general.sh @@ -5,7 +5,6 @@ export HELPERS_DIR=$CICD_DIR/helpers export JOBS=${JOBS:-"$(getconf _NPROCESSORS_ONLN)"} export MOUNTED_DIR='/workdir' - function capitalize() { echo $1 | awk '{$1=toupper(substr($1,1,1))substr($1,2)}1' } \ No newline at end of file From 172861f3407c64092c29047b44f3690c2cb0b518 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 16 Aug 2019 10:07:43 -0400 Subject: [PATCH 305/528] mac --- .cicd/generate-serial-tests.sh | 37 +++++++-- .cicd/pipeline.yml | 132 ++++++++++++++++----------------- 2 files changed, 98 insertions(+), 71 deletions(-) diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index 7f2294863fb..259d8f8de85 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -2,19 +2,21 @@ set -eo pipefail . ./.cicd/helpers/general.sh +SERIAL_TESTS=$(cat tests/CMakeLists.txt | grep nonparallelizable_tests | awk -F" " '{ print $2 }') + # Use dockerfiles as source of truth for what platforms to use +## Linux for DOCKERFILE in $(ls $CICD_DIR/docker); do - - DOCKERFILE_NAME=$(echo $DOCKERFILE | cut -d. -f1) + DOCKERFILE_NAME=$(echo $DOCKERFILE | awk -F'.dockerfile' '{ print $1 }') PLATFORM_NAME=$(echo $DOCKERFILE_NAME | cut -d- -f1) PLATFORM_NAME_UPCASE=$(echo $PLATFORM_NAME | tr a-z A-Z) - VERSION=$(echo $DOCKERFILE_NAME | cut -d- -f2) + VERSION=$(echo $DOCKERFILE_NAME | cut -d- -f2 | cut -d. -f1) OLDIFS=$IFS;IFS="_";set $PLATFORM_NAME;IFS=$OLDIFS PLATFORM_NAME_FULL="$(capitalize $1)$( [[ ! -z $2 ]] && echo "_$(capitalize $2)" || true ) $VERSION" [[ $PLATFORM_NAME =~ 'amazon' ]] && ICON=':aws:' [[ $PLATFORM_NAME =~ 'ubuntu' ]] && ICON=':ubuntu:' [[ $PLATFORM_NAME =~ 'centos' ]] && ICON=':centos:' - for TEST_NAME in $(cat tests/CMakeLists.txt | grep nonparallelizable_tests | awk -F" " '{ print $2 }'); do + for TEST_NAME in $SERIAL_TESTS; do cat < Date: Fri, 16 Aug 2019 10:11:39 -0400 Subject: [PATCH 306/528] quick fixes --- .cicd/generate-serial-tests.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index 259d8f8de85..b3da0afdd2d 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -10,9 +10,10 @@ for DOCKERFILE in $(ls $CICD_DIR/docker); do DOCKERFILE_NAME=$(echo $DOCKERFILE | awk -F'.dockerfile' '{ print $1 }') PLATFORM_NAME=$(echo $DOCKERFILE_NAME | cut -d- -f1) PLATFORM_NAME_UPCASE=$(echo $PLATFORM_NAME | tr a-z A-Z) - VERSION=$(echo $DOCKERFILE_NAME | cut -d- -f2 | cut -d. -f1) + VERSION_MAJOR=$(echo $DOCKERFILE_NAME | cut -d- -f2 | cut -d. -f1) + VERSION_FULL=$(echo $DOCKERFILE_NAME | cut -d- -f2) OLDIFS=$IFS;IFS="_";set $PLATFORM_NAME;IFS=$OLDIFS - PLATFORM_NAME_FULL="$(capitalize $1)$( [[ ! -z $2 ]] && echo "_$(capitalize $2)" || true ) $VERSION" + PLATFORM_NAME_FULL="$(capitalize $1)$( [[ ! -z $2 ]] && echo "_$(capitalize $2)" || true ) $VERSION_FULL" [[ $PLATFORM_NAME =~ 'amazon' ]] && ICON=':aws:' [[ $PLATFORM_NAME =~ 'ubuntu' ]] && ICON=':ubuntu:' [[ $PLATFORM_NAME =~ 'centos' ]] && ICON=':centos:' @@ -28,7 +29,7 @@ cat < Date: Fri, 16 Aug 2019 10:13:38 -0400 Subject: [PATCH 307/528] quick fixes --- .cicd/pipeline.yml | 140 ++++++++++++++++++++++----------------------- 1 file changed, 70 insertions(+), 70 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 544451cfa13..28b24bd9358 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,76 +1,76 @@ steps: - wait - # - label: ":aws: Amazon_Linux 2 - Build" - # command: - # - "bash ./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "amazon_linux-2" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_AMAZON_LINUX_2 - - # - label: ":centos: CentOS 7.6 - Build" - # command: - # - "bash ./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "centos-7.6" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_CENTOS_7 - - # - label: ":ubuntu: Ubuntu 16.04 - Build" - # command: - # - "bash ./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_16 - - # - label: ":ubuntu: Ubuntu 18.04 - Build" - # command: - # - "bash ./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_18 - - # - label: ":darwin: macOS 10.14 - Build" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && ./.cicd/build.sh" - # - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # modify-cpu: 12 - # modify-ram: 24 - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-large-node-fleet" - # skip: $SKIP_MOJAVE - - # - wait + - label: ":aws: Amazon_Linux 2 - Build" + command: + - "bash ./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "amazon_linux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_AMAZON_LINUX_2 + + - label: ":centos: CentOS 7.6 - Build" + command: + - "bash ./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_CENTOS_7 + + - label: ":ubuntu: Ubuntu 16.04 - Build" + command: + - "bash ./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 + + - label: ":ubuntu: Ubuntu 18.04 - Build" + command: + - "bash ./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 + + - label: ":darwin: macOS 10.14 - Build" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && ./.cicd/build.sh" + - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + modify-cpu: 12 + modify-ram: 24 + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-large-node-fleet" + skip: $SKIP_MOJAVE + + - wait - label: ":pipeline: Generate Serial Test Steps" command: "./.cicd/generate-serial-tests.sh | buildkite-agent pipeline upload" From 94cc7af542c5dd18986d677e4f71e6a2715138e7 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Fri, 16 Aug 2019 10:22:01 -0400 Subject: [PATCH 308/528] Reset pipeline file. Debugging in other branch. --- .cicd/pipeline.yml | 460 ++++++++++++++++++++++----------------------- 1 file changed, 230 insertions(+), 230 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 099a767d8df..37d198a48e7 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -14,198 +14,198 @@ steps: timeout: ${TIMEOUT:-10} skip: $SKIP_AMAZON_LINUX_2 - # - label: ":centos: CentOS 7.6 - Build" - # command: - # - "bash ./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "centos-7.6" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_CENTOS_7 + - label: ":centos: CentOS 7.6 - Build" + command: + - "bash ./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_CENTOS_7 - # - label: ":ubuntu: Ubuntu 16.04 - Build" - # command: - # - "bash ./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_16 + - label: ":ubuntu: Ubuntu 16.04 - Build" + command: + - "bash ./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 - # - label: ":ubuntu: Ubuntu 18.04 - Build" - # command: - # - "bash ./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_18 + - label: ":ubuntu: Ubuntu 18.04 - Build" + command: + - "bash ./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 - # - label: ":darwin: macOS 10.14 - Build" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && ./.cicd/build.sh" - # - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # modify-cpu: 12 - # modify-ram: 24 - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-large-node-fleet" - # skip: $SKIP_MOJAVE + - label: ":darwin: macOS 10.14 - Build" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && ./.cicd/build.sh" + - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + modify-cpu: 12 + modify-ram: 24 + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-large-node-fleet" + skip: $SKIP_MOJAVE - wait - # - label: ":aws: Amazon_Linux 2 - Unit Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "amazonlinux-2" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} + - label: ":aws: Amazon_Linux 2 - Unit Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "amazonlinux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} - # - label: ":centos: CentOS 7.6 - Unit Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "centos-7.6" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} + - label: ":centos: CentOS 7.6 - Unit Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} - # - label: ":ubuntu: Ubuntu 16.04 - Unit Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} + - label: ":ubuntu: Ubuntu 16.04 - Unit Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} - # - label: ":ubuntu: Ubuntu 18.04 - Unit Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} + - label: ":ubuntu: Ubuntu 18.04 - Unit Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} - # - label: ":darwin: macOS 10.14 - Unit Test" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - # - "cd eos && bash ./.cicd/parallel-tests.sh" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-node-fleet" - # skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} + - label: ":darwin: macOS 10.14 - Unit Test" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && bash ./.cicd/parallel-tests.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-node-fleet" + skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} - # - label: ":aws: Amazon_Linux 2 - Serial Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/serial-tests.sh" - # env: - # IMAGE_TAG: "amazonlinux-2" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_AMAZON_LINUX_2}${SKIP_SERIAL_TESTS} + - label: ":aws: Amazon_Linux 2 - Serial Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/serial-tests.sh" + env: + IMAGE_TAG: "amazonlinux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_AMAZON_LINUX_2}${SKIP_SERIAL_TESTS} - # - label: ":centos: CentOS 7.6 - Serial Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/serial-tests.sh" - # env: - # IMAGE_TAG: "centos-7.6" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_CENTOS_7}${SKIP_SERIAL_TESTS} + - label: ":centos: CentOS 7.6 - Serial Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/serial-tests.sh" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_CENTOS_7}${SKIP_SERIAL_TESTS} - # - label: ":ubuntu: Ubuntu 16.04 - Serial Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/serial-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_UBUNTU_16}${SKIP_SERIAL_TESTS} + - label: ":ubuntu: Ubuntu 16.04 - Serial Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/serial-tests.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_16}${SKIP_SERIAL_TESTS} - # - label: ":ubuntu: Ubuntu 18.04 - Serial Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/serial-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_UBUNTU_18}${SKIP_SERIAL_TESTS} + - label: ":ubuntu: Ubuntu 18.04 - Serial Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/serial-tests.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_18}${SKIP_SERIAL_TESTS} - # - label: ":darwin: macOS 10.14 - Serial Test" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - # - "cd eos && bash ./.cicd/serial-tests.sh" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-node-fleet" - # skip: ${SKIP_MOJAVE}${SKIP_SERIAL_TESTS} + - label: ":darwin: macOS 10.14 - Serial Test" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && bash ./.cicd/serial-tests.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-node-fleet" + skip: ${SKIP_MOJAVE}${SKIP_SERIAL_TESTS} - label: ":aws: Amazon_Linux 2 - Long-Running Tests" command: @@ -219,62 +219,62 @@ steps: timeout: ${TIMEOUT:-10} skip: ${SKIP_AMAZON_LINUX_2}${SKIP_LONG_RUNNING_TESTS:-true} - # - label: ":centos: CentOS 7.6 - Long-Running Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/long-running-tests.sh" - # env: - # IMAGE_TAG: "centos-7.6" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_CENTOS_7}${SKIP_LONG_RUNNING_TESTS:-true} + - label: ":centos: CentOS 7.6 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_CENTOS_7}${SKIP_LONG_RUNNING_TESTS:-true} - # - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/long-running-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_UBUNTU_16}${SKIP_LONG_RUNNING_TESTS:-true} + - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_16}${SKIP_LONG_RUNNING_TESTS:-true} - # - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/long-running-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_UBUNTU_18}${SKIP_LONG_RUNNING_TESTS:-true} + - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_18}${SKIP_LONG_RUNNING_TESTS:-true} - # - label: ":darwin: macOS 10.14 - Long-Running Tests" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - # - "cd eos && bash ./.cicd/long-running-tests.sh" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # modify-cpu: 12 - # modify-ram: 24 - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-large-node-fleet" - # skip: ${SKIP_MOJAVE}${SKIP_LONG_RUNNING_TESTS:-true} + - label: ":darwin: macOS 10.14 - Long-Running Tests" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && bash ./.cicd/long-running-tests.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + modify-cpu: 12 + modify-ram: 24 + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-large-node-fleet" + skip: ${SKIP_MOJAVE}${SKIP_LONG_RUNNING_TESTS:-true} - wait: continue_on_failure: true From 28906450c3a247161a40248a8dfae0d98fee857a Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 16 Aug 2019 10:33:40 -0400 Subject: [PATCH 309/528] quick fixes --- .cicd/pipeline.yml | 67 +++++++++++++++++++++++++++++++++++++++++++ .cicd/serial-tests.sh | 5 +++- 2 files changed, 71 insertions(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 28b24bd9358..434a07879ea 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -72,6 +72,73 @@ steps: - wait + - label: ":aws: Amazon_Linux 2 - Unit Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "amazonlinux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} + + - label: ":centos: CentOS 7.6 - Unit Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} + + - label: ":ubuntu: Ubuntu 16.04 - Unit Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} + + - label: ":ubuntu: Ubuntu 18.04 - Unit Test" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + - "bash ./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} + + - label: ":darwin: macOS 10.14 - Unit Test" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && bash ./.cicd/parallel-tests.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-node-fleet" + skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} + - label: ":pipeline: Generate Serial Test Steps" command: "./.cicd/generate-serial-tests.sh | buildkite-agent pipeline upload" agents: diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index 770a0670d43..67c62049872 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -4,7 +4,10 @@ set -eo pipefail [[ -z $1 ]] && TEST_NAME="-L nonparallelizable_tests" || TEST_NAME="-R ^$1$" -TEST="mkdir -p ./mongodb && mongod --dbpath ./mongodb --fork --logpath mongod.log && ctest $TEST_NAME --output-on-failure -T Test" +TEST="mkdir -p ./mongodb && mongod --dbpath ./mongodb --fork --logpath mongod.log && \ + ctest $TEST_NAME --output-on-failure -T Test && \ + mv $(pwd)/Testing/$(ls $(pwd)/Testing/ | sort | tail -n 1)/Test.xml test-results.xml && \ + buildkite-agent artifact upload test-results.xml" if [[ $(uname) == 'Darwin' ]]; then From bc06ce4d5f9b23d64857fb298067e85ee2926839 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 16 Aug 2019 10:34:54 -0400 Subject: [PATCH 310/528] quick fixes --- .cicd/generate-serial-tests.sh | 3 +- .cicd/pipeline.yml | 132 ++++++++++++++++----------------- 2 files changed, 68 insertions(+), 67 deletions(-) diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index b3da0afdd2d..657c1a383dc 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -23,6 +23,7 @@ cat < Date: Fri, 16 Aug 2019 10:36:33 -0400 Subject: [PATCH 311/528] quick fixes --- .cicd/generate-serial-tests.sh | 2 +- .cicd/pipeline.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index 657c1a383dc..0936d961c63 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -39,7 +39,7 @@ for TEST_NAME in $SERIAL_TESTS; do cat < Date: Fri, 16 Aug 2019 10:42:49 -0400 Subject: [PATCH 312/528] quick fixes --- .cicd/generate-serial-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index 0936d961c63..c5517ced61f 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -8,7 +8,7 @@ SERIAL_TESTS=$(cat tests/CMakeLists.txt | grep nonparallelizable_tests | awk -F" ## Linux for DOCKERFILE in $(ls $CICD_DIR/docker); do DOCKERFILE_NAME=$(echo $DOCKERFILE | awk -F'.dockerfile' '{ print $1 }') - PLATFORM_NAME=$(echo $DOCKERFILE_NAME | cut -d- -f1) + PLATFORM_NAME=$(echo $DOCKERFILE_NAME | cut -d- -f1 | sed 's/os/OS/g') PLATFORM_NAME_UPCASE=$(echo $PLATFORM_NAME | tr a-z A-Z) VERSION_MAJOR=$(echo $DOCKERFILE_NAME | cut -d- -f2 | cut -d. -f1) VERSION_FULL=$(echo $DOCKERFILE_NAME | cut -d- -f2) From 61d8b4a749d02ea48dbcc0412fccfc32eff94b87 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 16 Aug 2019 10:44:37 -0400 Subject: [PATCH 313/528] quick fixes --- .cicd/pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index e1b2733a9ed..044bcf4a66f 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -173,7 +173,7 @@ steps: timeout: ${TIMEOUT:-10} skip: ${SKIP_UBUNTU_18}${SKIP_CONTRACT_BUILDER} - - label: ":centos: Centos 7.6 - Package Builder" + - label: ":centos: CentOS 7.6 - Package Builder" command: - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - "./.cicd/package-builder.sh" From 81518700bb15a6955e7ce853962f43396965f68b Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 16 Aug 2019 11:02:59 -0400 Subject: [PATCH 314/528] quick fixes --- .cicd/generate-serial-tests.sh | 2 +- .cicd/serial-tests.sh | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index c5517ced61f..6866920e90d 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -23,7 +23,7 @@ cat < Date: Fri, 16 Aug 2019 11:07:14 -0400 Subject: [PATCH 315/528] quick fixes --- .cicd/generate-serial-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index 6866920e90d..dcc5562726a 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -23,7 +23,7 @@ cat < Date: Fri, 16 Aug 2019 11:24:24 -0400 Subject: [PATCH 316/528] quick fixes --- .cicd/build.sh | 2 +- .cicd/generate-serial-tests.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index 2951f83fdeb..c895c4fcd49 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -34,7 +34,7 @@ else # Linux CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" fi - BUILD_COMMANDS="cmake $CMAKE_EXTRAS .. && make -j$JOBS" + BUILD_COMMANDS="cmake $CMAKE_EXTRAS -DBUILD_MONGO_DB_PLUGIN=true .. && make -j$JOBS" # Docker Commands if [[ $BUILDKITE == true ]]; then diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index dcc5562726a..b2654052fa7 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -23,7 +23,7 @@ cat < Date: Fri, 16 Aug 2019 11:38:22 -0400 Subject: [PATCH 317/528] quick fixes --- .cicd/generate-serial-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index b2654052fa7..93b83e3ac1c 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -23,7 +23,7 @@ cat < Date: Fri, 16 Aug 2019 11:39:12 -0400 Subject: [PATCH 318/528] quick fixes --- .cicd/generate-serial-tests.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index 93b83e3ac1c..dbdc9b72e3e 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -43,6 +43,7 @@ cat < Date: Fri, 16 Aug 2019 11:51:53 -0400 Subject: [PATCH 319/528] quick fixes --- .cicd/generate-serial-tests.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index dbdc9b72e3e..d14e4e74164 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -23,7 +23,7 @@ cat < Date: Fri, 16 Aug 2019 12:27:33 -0400 Subject: [PATCH 320/528] quick fixes --- .cicd/generate-serial-tests.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index d14e4e74164..d8d507874ea 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -14,9 +14,9 @@ for DOCKERFILE in $(ls $CICD_DIR/docker); do VERSION_FULL=$(echo $DOCKERFILE_NAME | cut -d- -f2) OLDIFS=$IFS;IFS="_";set $PLATFORM_NAME;IFS=$OLDIFS PLATFORM_NAME_FULL="$(capitalize $1)$( [[ ! -z $2 ]] && echo "_$(capitalize $2)" || true ) $VERSION_FULL" - [[ $PLATFORM_NAME =~ 'amazon' ]] && ICON=':aws:' - [[ $PLATFORM_NAME =~ 'ubuntu' ]] && ICON=':ubuntu:' - [[ $PLATFORM_NAME =~ 'centos' ]] && ICON=':centos:' + [[ $DOCKERFILE_NAME =~ 'amazon' ]] && ICON=':aws:' + [[ $DOCKERFILE_NAME =~ 'ubuntu' ]] && ICON=':ubuntu:' + [[ $DOCKERFILE_NAME =~ 'centos' ]] && ICON=':centos:' for TEST_NAME in $SERIAL_TESTS; do cat < Date: Fri, 16 Aug 2019 13:01:42 -0400 Subject: [PATCH 321/528] split serial tests --- STEP_TEMPLATE | 0 tests/Testing/Temporary/LastTest.log | 3 --- 2 files changed, 3 deletions(-) delete mode 100644 STEP_TEMPLATE delete mode 100644 tests/Testing/Temporary/LastTest.log diff --git a/STEP_TEMPLATE b/STEP_TEMPLATE deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tests/Testing/Temporary/LastTest.log b/tests/Testing/Temporary/LastTest.log deleted file mode 100644 index 8d9d6c07e7e..00000000000 --- a/tests/Testing/Temporary/LastTest.log +++ /dev/null @@ -1,3 +0,0 @@ -Start testing: Aug 15 16:48 EDT ----------------------------------------------------------- -End testing: Aug 15 16:48 EDT From d44f5815335cd534d0c2fc29dcd4c4625ae70ca2 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 16 Aug 2019 13:21:11 -0400 Subject: [PATCH 322/528] quick fix --- .cicd/pipeline.yml | 71 ++-------------------------------------------- 1 file changed, 2 insertions(+), 69 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index cd267f075a4..41f3b696926 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -77,7 +77,7 @@ steps: - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - "bash ./.cicd/parallel-tests.sh" env: - IMAGE_TAG: "amazonlinux-2" + IMAGE_TAG: "amazon_linux-2" BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" @@ -146,80 +146,13 @@ steps: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} skip: $SKIP_GENERATE_SERIAL_TESTS - - # - label: ":aws: Amazon_Linux 2 - Serial Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/serial-tests.sh" - # env: - # IMAGE_TAG: "amazonlinux-2" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_AMAZON_LINUX_2}${SKIP_SERIAL_TESTS} - - # - label: ":centos: CentOS 7.6 - Serial Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/serial-tests.sh" - # env: - # IMAGE_TAG: "centos-7.6" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_CENTOS_7}${SKIP_SERIAL_TESTS} - - # - label: ":ubuntu: Ubuntu 16.04 - Serial Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/serial-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_UBUNTU_16}${SKIP_SERIAL_TESTS} - - # - label: ":ubuntu: Ubuntu 18.04 - Serial Test" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - # - "bash ./.cicd/serial-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_UBUNTU_18}${SKIP_SERIAL_TESTS} - - # - label: ":darwin: macOS 10.14 - Serial Test" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - # - "cd eos && bash ./.cicd/serial-tests.sh" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-node-fleet" - # skip: ${SKIP_MOJAVE}${SKIP_SERIAL_TESTS} - label: ":aws: Amazon_Linux 2 - Long-Running Tests" command: - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - "bash ./.cicd/long-running-tests.sh" env: - IMAGE_TAG: "amazonlinux-2" + IMAGE_TAG: "amazon_linux-2" BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" From 593bcc150745d468966b112bba4321fde2239cdc Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Fri, 16 Aug 2019 13:59:51 -0400 Subject: [PATCH 323/528] Standardize dockerfiles. --- .cicd/docker/amazon_linux-2.dockerfile | 139 ++++++++++---------- .cicd/docker/centos-7.6.dockerfile | 166 +++++++++++------------- .cicd/docker/ubuntu-16.04.dockerfile | 173 +++++++++++++------------ .cicd/docker/ubuntu-18.04.dockerfile | 118 ++++++++--------- 4 files changed, 288 insertions(+), 308 deletions(-) diff --git a/.cicd/docker/amazon_linux-2.dockerfile b/.cicd/docker/amazon_linux-2.dockerfile index 733e0c839bf..3fb16f9b541 100644 --- a/.cicd/docker/amazon_linux-2.dockerfile +++ b/.cicd/docker/amazon_linux-2.dockerfile @@ -1,77 +1,68 @@ FROM amazonlinux:2.0.20190508 - -# YUM dependencies. -RUN yum update -y \ - && yum install -y which git sudo procps-ng util-linux autoconf automake \ - libtool make bzip2 bzip2-devel openssl-devel gmp-devel libstdc++ libcurl-devel \ - libusbx-devel python3 python3-devel python-devel libedit-devel doxygen \ - graphviz clang patch - -# Build appropriate version of CMake. -RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz \ - && tar -xzf cmake-3.13.2.tar.gz \ - && cd cmake-3.13.2 \ - && ./bootstrap --prefix=/usr/local \ - && make -j$(nproc) \ - && make install \ - && cd .. \ - && rm -f cmake-3.13.2.tar.gz - -# Build appropriate version of LLVM. -RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm \ - && cd llvm \ - && mkdir build \ - && cd build \ - && cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. \ - && make -j$(nproc) \ - && make install \ - && cd / - -# Build appropriate version of Boost. -RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 \ - && tar -xjf boost_1_70_0.tar.bz2 \ - && cd boost_1_70_0 \ - && ./bootstrap.sh --prefix=/usr/local \ - && ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install \ - && cd .. \ - && rm -f boost_1_70_0.tar.bz2 - -# Build appropriate version of MongoDB. -RUN curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz \ - && tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz \ - && rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz - -# Build appropriate version of MongoDB C Driver. -RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz \ - && tar -xzf mongo-c-driver-1.13.0.tar.gz \ - && cd mongo-c-driver-1.13.0 \ - && mkdir -p build \ - && cd build \ - && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. \ - && make -j$(nproc) \ - && make install \ - && cd / \ - && rm -rf mongo-c-driver-1.13.0.tar.gz - -# Build appropriate version of MongoDB C++ driver. -RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz \ - && tar -xzf mongo-cxx-driver-r3.4.0.tar.gz \ - && cd mongo-cxx-driver-r3.4.0 \ - && sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp \ - && sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt \ - && cd build \ - && cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. \ - && make -j$(nproc) \ - && make install \ - && cd / \ - && rm -f mongo-cxx-driver-r3.4.0.tar.gz - +# install dependencies. +RUN yum update -y && \ + yum install -y which git sudo procps-ng util-linux autoconf automake \ + libtool make bzip2 bzip2-devel openssl-devel gmp-devel libstdc++ libcurl-devel \ + libusbx-devel python3 python3-devel python-devel libedit-devel doxygen \ + graphviz clang patch +# build cmake. +RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ + tar -xzf cmake-3.13.2.tar.gz && \ + cd cmake-3.13.2 && \ + ./bootstrap --prefix=/usr/local && \ + make -j$(nproc) && \ + make install && \ + cd .. && \ + rm -f cmake-3.13.2.tar.gz +# build llvm +RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ + cd llvm && \ + mkdir build && \ + cd build && \ + cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + make -j$(nproc) && \ + make install && \ + cd / +# build boost +RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ + tar -xjf boost_1_70_0.tar.bz2 && \ + cd boost_1_70_0 && \ + ./bootstrap.sh --prefix=/usr/local && \ + ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ + cd .. && \ + rm -f boost_1_70_0.tar.bz2 +# build mongodb +RUN curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz && \ + tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz && \ + rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz +# build mongodb c driver +RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ + tar -xzf mongo-c-driver-1.13.0.tar.gz && \ + cd mongo-c-driver-1.13.0 && \ + mkdir -p build && \ + cd build && \ + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. && \ + make -j$(nproc) && \ + make install && \ + cd / && \ + rm -rf mongo-c-driver-1.13.0.tar.gz +# build mongodb cxx driver +RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ + tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ + cd mongo-cxx-driver-r3.4.0 && \ + sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ + sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ + cd build && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + make -j$(nproc) && \ + make install && \ + cd / && \ + rm -f mongo-cxx-driver-r3.4.0.tar.gz +# add mongodb to path ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin - -# CCACHE -RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm \ - && yum install -y ccache-3.3.4-1.el7.x86_64.rpm - -# Install Buildkite Agent +# install ccache +RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm && \ + yum install -y ccache-3.3.4-1.el7.x86_64.rpm +# install buildkite agent RUN echo -e "[buildkite-agent]\nname = Buildkite Pty Ltd\nbaseurl = https://yum.buildkite.com/buildkite-agent/stable/x86_64/\nenabled=1\ngpgcheck=0\npriority=1" > /etc/yum.repos.d/buildkite-agent.repo && \ - yum -y install buildkite-agent + yum -y install buildkite-agent diff --git a/.cicd/docker/centos-7.6.dockerfile b/.cicd/docker/centos-7.6.dockerfile index 3fc53792f98..7793a785ac3 100644 --- a/.cicd/docker/centos-7.6.dockerfile +++ b/.cicd/docker/centos-7.6.dockerfile @@ -1,93 +1,83 @@ FROM centos:7.6.1810 - -# YUM dependencies. -RUN yum update -y \ - && yum --enablerepo=extras install -y centos-release-scl \ - && yum --enablerepo=extras install -y devtoolset-8 \ - && yum --enablerepo=extras install -y which git autoconf automake libtool make bzip2 doxygen \ - graphviz bzip2-devel openssl-devel gmp-devel ocaml libicu-devel \ - python python-devel rh-python36 gettext-devel file libusbx-devel \ - libcurl-devel patch - -# Build appropriate version of CMake. -RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz \ - && source /opt/rh/devtoolset-8/enable \ - && source /opt/rh/rh-python36/enable \ - && tar -xzf cmake-3.13.2.tar.gz \ - && cd cmake-3.13.2 \ - && ./bootstrap --prefix=/usr/local \ - && make -j$(nproc) \ - && make install \ - && cd .. \ - && rm -f cmake-3.13.2.tar.gz - -# Build appropriate version of LLVM. -RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm \ - && source /opt/rh/devtoolset-8/enable \ - && source /opt/rh/rh-python36/enable \ - && cd llvm \ - && mkdir build \ - && cd build \ - && cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. \ - && make -j$(nproc) \ - && make install \ - && cd / - -# Build appropriate version of Boost. -RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 \ - && source /opt/rh/devtoolset-8/enable \ - && source /opt/rh/rh-python36/enable \ - && tar -xjf boost_1_70_0.tar.bz2 \ - && cd boost_1_70_0 \ - && ./bootstrap.sh --prefix=/usr/local \ - && ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install \ - && cd .. \ - && rm -f boost_1_70_0.tar.bz2 - -# Build appropriate version of MongoDB. -RUN curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz \ - && tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz \ - && rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz - -# Build appropriate version of MongoDB C Driver. -RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz \ - && source /opt/rh/devtoolset-8/enable \ - && source /opt/rh/rh-python36/enable \ - && tar -xzf mongo-c-driver-1.13.0.tar.gz \ - && cd mongo-c-driver-1.13.0 \ - && mkdir -p build \ - && cd build \ - && cmake --DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. \ - && make -j$(nproc) \ - && make install \ - && cd / \ - && rm -rf mongo-c-driver-1.13.0.tar.gz - -# Build appropriate version of MongoDB C++ driver. -RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz \ - && source /opt/rh/devtoolset-8/enable \ - && source /opt/rh/rh-python36/enable \ - && tar -xzf mongo-cxx-driver-r3.4.0.tar.gz \ - && cd mongo-cxx-driver-r3.4.0 \ - && sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp \ - && sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt \ - && cd build \ - && cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. \ - && make -j$(nproc) \ - && make install \ - && cd / \ - && rm -f mongo-cxx-driver-r3.4.0.tar.gz - +# install dependencies. +RUN yum update -y && \ + yum --enablerepo=extras install -y centos-release-scl && \ + yum --enablerepo=extras install -y devtoolset-8 && \ + yum --enablerepo=extras install -y which git autoconf automake libtool make bzip2 doxygen \ + graphviz bzip2-devel openssl-devel gmp-devel ocaml libicu-devel \ + python python-devel rh-python36 gettext-devel file libusbx-devel \ + libcurl-devel patch +# build cmake. +RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/enable && \ + tar -xzf cmake-3.13.2.tar.gz && \ + cd cmake-3.13.2 && \ + ./bootstrap --prefix=/usr/local && \ + make -j$(nproc) && \ + make install && \ + cd .. && \ + rm -f cmake-3.13.2.tar.gz +# build llvm +RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/enable && \ + cd llvm && \ + mkdir build && \ + cd build && \ + cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + make -j$(nproc) && \ + make install && \ + cd / +# build boost +RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/enable && \ + tar -xjf boost_1_70_0.tar.bz2 && \ + cd boost_1_70_0 && \ + ./bootstrap.sh --prefix=/usr/local && \ + ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ + cd .. && \ + rm -f boost_1_70_0.tar.bz2 +# build mongodb +RUN curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz && \ + tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz && \ + rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz +# build mongodb c driver +RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/enable && \ + tar -xzf mongo-c-driver-1.13.0.tar.gz && \ + cd mongo-c-driver-1.13.0 && \ + mkdir -p build && \ + cd build && \ + cmake --DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. && \ + make -j$(nproc) && \ + make install && \ + cd / && \ + rm -rf mongo-c-driver-1.13.0.tar.gz +# build mongodb cxx driver +RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/enable && \ + tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ + cd mongo-cxx-driver-r3.4.0 && \ + sed -i 's/\"maxAwaitTimeMS\", ount/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ + sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ + cd build && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + make -j$(nproc) && \ + make install && \ + cd / && \ + rm -f mongo-cxx-driver-r3.4.0.tar.gz\ +# add mongodb to path ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin - -# CCACHE -RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm \ - && yum install -y ccache-3.3.4-1.el7.x86_64.rpm -## Needed as devtoolset uses c++ and it's not in ccache by default +# install ccache +RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm && \ + yum install -y ccache-3.3.4-1.el7.x86_64.rpm +# fix ccache for centos RUN cd /usr/lib64/ccache && ln -s ../../bin/ccache c++ -## We need to tell ccache to actually use devtoolset-8 instead of the default system one (ccache resets anything set in PATH when it launches) ENV CCACHE_PATH="/opt/rh/devtoolset-8/root/usr/bin" - -# Install Buildkite Agent +# install buildkite agent RUN echo -e "[buildkite-agent]\nname = Buildkite Pty Ltd\nbaseurl = https://yum.buildkite.com/buildkite-agent/stable/x86_64/\nenabled=1\ngpgcheck=0\npriority=1" > /etc/yum.repos.d/buildkite-agent.repo && \ - yum -y install buildkite-agent \ No newline at end of file + yum -y install buildkite-agent \ No newline at end of file diff --git a/.cicd/docker/ubuntu-16.04.dockerfile b/.cicd/docker/ubuntu-16.04.dockerfile index 559d75bf9d2..2b6922f2452 100644 --- a/.cicd/docker/ubuntu-16.04.dockerfile +++ b/.cicd/docker/ubuntu-16.04.dockerfile @@ -1,87 +1,92 @@ FROM ubuntu:16.04 - -# APT-GET dependencies. -RUN apt-get update && apt-get upgrade -y \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential git automake \ - libbz2-dev libssl-dev doxygen graphviz libgmp3-dev autotools-dev libicu-dev \ - python2.7 python2.7-dev python3 python3-dev autoconf libtool curl zlib1g-dev \ - sudo ruby libusb-1.0-0-dev libcurl4-gnutls-dev pkg-config apt-transport-https - -# Build appropriate version of CMake. -RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz \ - && tar -xzf cmake-3.13.2.tar.gz \ - && cd cmake-3.13.2 \ - && ./bootstrap --prefix=/usr/local \ - && make -j$(nproc) \ - && make install \ - && cd .. \ - && rm -f cmake-3.13.2.tar.gz - -# Build appropriate version of Clang. -RUN mkdir -p /root/tmp && cd /root/tmp && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && cd .. && cd ../../../../projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && cd ../ && cd /root/tmp/clang8 && mkdir build && cd build && cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=all -DCMAKE_BUILD_TYPE=Release .. && make -j$(nproc) && make install \ - && cd / && rm -rf /root/tmp/clang8 +# install dependencies. +RUN apt-get update && apt-get upgrade -y && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential git automake \ + libbz2-dev libssl-dev doxygen graphviz libgmp3-dev autotools-dev libicu-dev \ + python2.7 python2.7-dev python3 python3-dev autoconf libtool curl zlib1g-dev \ + sudo ruby libusb-1.0-0-dev libcurl4-gnutls-dev pkg-config apt-transport-https +# build cmake. +RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ + tar -xzf cmake-3.13.2.tar.gz && \ + cd cmake-3.13.2 && \ + ./bootstrap --prefix=/usr/local && \ + make -j$(nproc) && \ + make install && \ + cd .. && \ + rm -f cmake-3.13.2.tar.gz +# build clang +RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ + cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ + cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ + cd /clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ + mkdir /clang8/build && cd /clang8/build && \ + cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ + make -j $(nproc) && \ + make install && \ + cd / && \ + rm -rf /clang8 COPY ./.cicd/helpers/clang.make /tmp/clang.cmake - -# Build appropriate version of LLVM. -RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm \ - && cd llvm \ - && mkdir build \ - && cd build \ - && cmake -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. \ - && make -j$(nproc) \ - && make install \ - && cd / - -# Build appropriate version of Boost. -RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 \ - && tar -xjf boost_1_70_0.tar.bz2 \ - && cd boost_1_70_0 \ - && ./bootstrap.sh --with-toolset=clang --prefix=/usr/local \ - && ./b2 toolset=clang cxxflags='-stdlib=libc++ -D__STRICT_ANSI__ -nostdinc++ -I/usr/local/include/c++/v1' linkflags='-stdlib=libc++' link=static threading=multi --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install \ - && cd .. \ - && rm -f boost_1_70_0.tar.bz2 - -# Build appropriate version of MongoDB. -RUN curl -LO http://downloads.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz \ - && tar -xzf mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz \ - && rm -f mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz - -# Build appropriate version of MongoDB C Driver. -RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz \ - && tar -xzf mongo-c-driver-1.13.0.tar.gz \ - && cd mongo-c-driver-1.13.0 \ - && mkdir -p build \ - && cd build \ - && cmake --DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. \ - && make -j$(nproc) \ - && make install \ - && cd / \ - && rm -rf mongo-c-driver-1.13.0.tar.gz - -# Build appropriate version of MongoDB C++ driver. -RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz \ - && tar -xzf mongo-cxx-driver-r3.4.0.tar.gz \ - && cd mongo-cxx-driver-r3.4.0 \ - && sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp \ - && sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt \ - && cd build \ - && cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. \ - && make -j$(nproc) \ - && make install \ - && cd / \ - && rm -f mongo-cxx-driver-r3.4.0.tar.gz - +# build llvm +RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ + cd llvm && \ + mkdir build && \ + cd build && \ + cmake -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ + make -j$(nproc) && \ + make install && \ + cd / +# build boost +RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ + tar -xjf boost_1_70_0.tar.bz2 && \ + cd boost_1_70_0 && \ + ./bootstrap.sh --with-toolset=clang --prefix=/usr/local && \ + ./b2 toolset=clang cxxflags='-stdlib=libc++ -D__STRICT_ANSI__ -nostdinc++ -I/usr/local/include/c++/v1' linkflags='-stdlib=libc++' link=static threading=multi --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ + cd .. && \ + rm -f boost_1_70_0.tar.bz2 +# build mongodb +RUN curl -LO http://downloads.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz && \ + tar -xzf mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz && \ + rm -f mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz +# build mongodb c driver +RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ + tar -xzf mongo-c-driver-1.13.0.tar.gz && \ + cd mongo-c-driver-1.13.0 && \ + mkdir -p build && \ + cd build && \ + cmake --DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ + make -j$(nproc) && \ + make install && \ + cd / && \ + rm -rf mongo-c-driver-1.13.0.tar.gz +# build mongodb cxx driver +RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ + tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ + cd mongo-cxx-driver-r3.4.0 && \ + sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ + sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ + cd build && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ + make -j$(nproc) && \ + make install && \ + cd / && \ + rm -f mongo-cxx-driver-r3.4.0.tar.gz +# add mongodb to path ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1604-3.6.3/bin - -# Build appropriate version of ccache. -RUN curl -LO https://github.com/ccache/ccache/releases/download/v3.4.1/ccache-3.4.1.tar.gz \ - && tar -xzf ccache-3.4.1.tar.gz \ - && cd ccache-3.4.1 \ - && ./configure \ - && make \ - && make install \ - && cd / && rm -rf ccache-3.4.1/ - -RUN echo "deb https://apt.buildkite.com/buildkite-agent stable main" > /etc/apt/sources.list.d/buildkite-agent.list \ - && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 32A37959C2FA5C3C99EFBC32A79206696452D198 \ - && apt-get update && apt-get install -y buildkite-agent \ No newline at end of file +# install ccache +RUN curl -LO https://github.com/ccache/ccache/releases/download/v3.4.1/ccache-3.4.1.tar.gz && \ + tar -xzf ccache-3.4.1.tar.gz && \ + cd ccache-3.4.1 && \ + ./configure && \ + make && \ + make install && \ + cd / && \ + rm -rf ccache-3.4.1/ +# install buildkite agent +RUN echo "deb https://apt.buildkite.com/buildkite-agent stable main" > /etc/apt/sources.list.d/buildkite-agent.list && \ + apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 32A37959C2FA5C3C99EFBC32A79206696452D198 && \ + apt-get update && apt-get install -y buildkite-agent \ No newline at end of file diff --git a/.cicd/docker/ubuntu-18.04.dockerfile b/.cicd/docker/ubuntu-18.04.dockerfile index 2f94be6990b..1d7fe241a53 100644 --- a/.cicd/docker/ubuntu-18.04.dockerfile +++ b/.cicd/docker/ubuntu-18.04.dockerfile @@ -1,64 +1,58 @@ FROM ubuntu:18.04 - -# APT-GET dependencies. -RUN apt-get update && apt-get upgrade -y \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y git make \ - bzip2 automake libbz2-dev libssl-dev doxygen graphviz libgmp3-dev \ - autotools-dev libicu-dev python2.7 python2.7-dev python3 python3-dev \ - autoconf libtool g++ gcc curl zlib1g-dev sudo ruby libusb-1.0-0-dev \ - libcurl4-gnutls-dev pkg-config patch llvm-4.0 clang ccache - -# Build appropriate version of CMake. -RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz \ - && tar -xzf cmake-3.13.2.tar.gz \ - && cd cmake-3.13.2 \ - && ./bootstrap --prefix=/usr/local \ - && make -j$(nproc) \ - && make install \ - && cd .. \ - && rm -f cmake-3.13.2.tar.gz - -# Build appropriate version of Boost. -RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 \ - && tar -xjf boost_1_70_0.tar.bz2 \ - && cd boost_1_70_0 \ - && ./bootstrap.sh --prefix=/usr/local \ - && ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -j$(nproc) install \ - && cd .. \ - && rm -f boost_1_70_0.tar.bz2 - -# Build appropriate version of MongoDB. -RUN curl -LO http://downloads.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz \ - && tar -xzf mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz \ - && rm -f mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz - -# Build appropriate version of MongoDB C Driver. -RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz \ - && tar -xzf mongo-c-driver-1.13.0.tar.gz \ - && cd mongo-c-driver-1.13.0 \ - && mkdir -p build \ - && cd build \ - && cmake --DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON .. \ - && make -j$(nproc) \ - && make install \ - && cd / \ - && rm -rf mongo-c-driver-1.13.0.tar.gz - -# Build appropriate version of MongoDB C++ driver. -RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz \ - && tar -xzf mongo-cxx-driver-r3.4.0.tar.gz \ - && cd mongo-cxx-driver-r3.4.0 \ - && sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp \ - && sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt \ - && cd build \ - && cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. \ - && make -j$(nproc) \ - && make install \ - && cd / \ - && rm -f mongo-cxx-driver-r3.4.0.tar.gz - +# install dependencies. +RUN apt-get update && apt-get upgrade -y && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y git make \ + bzip2 automake libbz2-dev libssl-dev doxygen graphviz libgmp3-dev \ + autotools-dev libicu-dev python2.7 python2.7-dev python3 python3-dev \ + autoconf libtool g++ gcc curl zlib1g-dev sudo ruby libusb-1.0-0-dev \ + libcurl4-gnutls-dev pkg-config patch llvm-4.0 clang ccache +# build cmake. +RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ + tar -xzf cmake-3.13.2.tar.gz && \ + cd cmake-3.13.2 && \ + ./bootstrap --prefix=/usr/local && \ + make -j$(nproc) && \ + make install && \ + cd .. && \ + rm -f cmake-3.13.2.tar.gz +# build boost +RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ + tar -xjf boost_1_70_0.tar.bz2 && \ + cd boost_1_70_0 && \ + ./bootstrap.sh --prefix=/usr/local && \ + ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -j$(nproc) install && \ + cd .. && \ + rm -f boost_1_70_0.tar.bz2 +# build mongodb +RUN curl -LO http://downloads.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz && \ + tar -xzf mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz && \ + rm -f mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz +# build mongodb c driver +RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ + tar -xzf mongo-c-driver-1.13.0.tar.gz && \ + cd mongo-c-driver-1.13.0 && \ + mkdir -p build && \ + cd build && \ + cmake --DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON .. && \ + make -j$(nproc) && \ + make install && \ + cd / && \ + rm -rf mongo-c-driver-1.13.0.tar.gz +# build mongodb cxx driver +RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ + tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ + cd mongo-cxx-driver-r3.4.0 && \ + sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ + sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ + cd build && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + make -j$(nproc) && \ + make install && \ + cd / && \ + rm -f mongo-cxx-driver-r3.4.0.tar.gz +# add mongodb to path ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin - -RUN echo "deb https://apt.buildkite.com/buildkite-agent stable main" > /etc/apt/sources.list.d/buildkite-agent.list \ - && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 32A37959C2FA5C3C99EFBC32A79206696452D198 \ - && apt-get update && apt-get install -y apt-transport-https && apt-get install -y buildkite-agent \ No newline at end of file +# install buildkite agent +RUN echo "deb https://apt.buildkite.com/buildkite-agent stable main" > /etc/apt/sources.list.d/buildkite-agent.list && \ + apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 32A37959C2FA5C3C99EFBC32A79206696452D198 && \ + apt-get update && apt-get install -y apt-transport-https && apt-get install -y buildkite-agent \ No newline at end of file From 00c0cd4b1aac9c917dc8d8a09eff6e2348ece9f5 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 16 Aug 2019 15:46:50 -0400 Subject: [PATCH 324/528] removed useless bash --- .cicd/generate-serial-tests.sh | 4 ++-- .cicd/pipeline.yml | 30 +++++++++++++++--------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index d8d507874ea..f0ef5eb649d 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -22,7 +22,7 @@ cat < Date: Fri, 16 Aug 2019 15:49:11 -0400 Subject: [PATCH 325/528] test --- .cicd/pipeline.yml | 208 ++++++++++++++++++++++----------------------- 1 file changed, 104 insertions(+), 104 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 9d636a60f7c..638b5a3915a 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,17 +1,17 @@ steps: - wait - - label: ":aws: Amazon_Linux 2 - Build" - command: - - "./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "amazon_linux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_AMAZON_LINUX_2 + # - label: ":aws: Amazon_Linux 2 - Build" + # command: + # - "./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "amazon_linux-2" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_AMAZON_LINUX_2 - label: ":centos: CentOS 7.6 - Build" command: @@ -25,64 +25,64 @@ steps: timeout: ${TIMEOUT:-10} skip: $SKIP_CENTOS_7 - - label: ":ubuntu: Ubuntu 16.04 - Build" - command: - - "./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_16 + # - label: ":ubuntu: Ubuntu 16.04 - Build" + # command: + # - "./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "ubuntu-16.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_16 - - label: ":ubuntu: Ubuntu 18.04 - Build" - command: - - "./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_18 + # - label: ":ubuntu: Ubuntu 18.04 - Build" + # command: + # - "./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "ubuntu-18.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_18 - - label: ":darwin: macOS 10.14 - Build" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && ./.cicd/build.sh" - - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - modify-cpu: 12 - modify-ram: 24 - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-large-node-fleet" - skip: $SKIP_MOJAVE + # - label: ":darwin: macOS 10.14 - Build" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && ./.cicd/build.sh" + # - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # modify-cpu: 12 + # modify-ram: 24 + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-large-node-fleet" + # skip: $SKIP_MOJAVE - wait - - label: ":aws: Amazon_Linux 2 - Unit Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - - "./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "amazon_linux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} + # - label: ":aws: Amazon_Linux 2 - Unit Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + # - "./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "amazon_linux-2" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} - label: ":centos: CentOS 7.6 - Unit Test" command: @@ -96,48 +96,48 @@ steps: timeout: ${TIMEOUT:-10} skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} - - label: ":ubuntu: Ubuntu 16.04 - Unit Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - - "./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} + # - label: ":ubuntu: Ubuntu 16.04 - Unit Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + # - "./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-16.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} - - label: ":ubuntu: Ubuntu 18.04 - Unit Test" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - - "./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} + # - label: ":ubuntu: Ubuntu 18.04 - Unit Test" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + # - "./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-18.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} - - label: ":darwin: macOS 10.14 - Unit Test" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && ./.cicd/parallel-tests.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-node-fleet" - skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} + # - label: ":darwin: macOS 10.14 - Unit Test" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + # - "cd eos && ./.cicd/parallel-tests.sh" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-node-fleet" + # skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} - label: ":pipeline: Generate Serial Test Steps" From 096e7a32e8d9dfcece8e3d92e1145a7e9f523f54 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 16 Aug 2019 15:50:38 -0400 Subject: [PATCH 326/528] unit tests --- .cicd/pipeline.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 638b5a3915a..68bda97dcce 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -72,7 +72,7 @@ steps: - wait - # - label: ":aws: Amazon_Linux 2 - Unit Test" + # - label: ":aws: Amazon_Linux 2 - Unit Tests" # command: # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" # - "./.cicd/parallel-tests.sh" @@ -84,7 +84,7 @@ steps: # timeout: ${TIMEOUT:-10} # skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} - - label: ":centos: CentOS 7.6 - Unit Test" + - label: ":centos: CentOS 7.6 - Unit Tests" command: - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - "./.cicd/parallel-tests.sh" @@ -96,7 +96,7 @@ steps: timeout: ${TIMEOUT:-10} skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} - # - label: ":ubuntu: Ubuntu 16.04 - Unit Test" + # - label: ":ubuntu: Ubuntu 16.04 - Unit Tests" # command: # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" # - "./.cicd/parallel-tests.sh" @@ -108,7 +108,7 @@ steps: # timeout: ${TIMEOUT:-10} # skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} - # - label: ":ubuntu: Ubuntu 18.04 - Unit Test" + # - label: ":ubuntu: Ubuntu 18.04 - Unit Tests" # command: # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" # - "./.cicd/parallel-tests.sh" @@ -120,7 +120,7 @@ steps: # timeout: ${TIMEOUT:-10} # skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} - # - label: ":darwin: macOS 10.14 - Unit Test" + # - label: ":darwin: macOS 10.14 - Unit Tests" # command: # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" From d0cd6f39c997dcef87a3d4837d90eee15b4800d5 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 16 Aug 2019 15:52:05 -0400 Subject: [PATCH 327/528] added it all back --- .cicd/pipeline.yml | 209 ++++++++++++++++++++++----------------------- 1 file changed, 104 insertions(+), 105 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 68bda97dcce..bc83741dcb8 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,17 +1,17 @@ steps: - wait - # - label: ":aws: Amazon_Linux 2 - Build" - # command: - # - "./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "amazon_linux-2" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_AMAZON_LINUX_2 + - label: ":aws: Amazon_Linux 2 - Build" + command: + - "./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "amazon_linux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_AMAZON_LINUX_2 - label: ":centos: CentOS 7.6 - Build" command: @@ -25,64 +25,64 @@ steps: timeout: ${TIMEOUT:-10} skip: $SKIP_CENTOS_7 - # - label: ":ubuntu: Ubuntu 16.04 - Build" - # command: - # - "./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_16 + - label: ":ubuntu: Ubuntu 16.04 - Build" + command: + - "./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 - # - label: ":ubuntu: Ubuntu 18.04 - Build" - # command: - # - "./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_18 + - label: ":ubuntu: Ubuntu 18.04 - Build" + command: + - "./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 - # - label: ":darwin: macOS 10.14 - Build" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && ./.cicd/build.sh" - # - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # modify-cpu: 12 - # modify-ram: 24 - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-large-node-fleet" - # skip: $SKIP_MOJAVE + - label: ":darwin: macOS 10.14 - Build" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && ./.cicd/build.sh" + - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + modify-cpu: 12 + modify-ram: 24 + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-large-node-fleet" + skip: $SKIP_MOJAVE - wait - # - label: ":aws: Amazon_Linux 2 - Unit Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - # - "./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "amazon_linux-2" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} + - label: ":aws: Amazon_Linux 2 - Unit Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + - "./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "amazon_linux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} - label: ":centos: CentOS 7.6 - Unit Tests" command: @@ -96,49 +96,48 @@ steps: timeout: ${TIMEOUT:-10} skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} - # - label: ":ubuntu: Ubuntu 16.04 - Unit Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - # - "./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} - - # - label: ":ubuntu: Ubuntu 18.04 - Unit Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - # - "./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} + - label: ":ubuntu: Ubuntu 16.04 - Unit Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} - # - label: ":darwin: macOS 10.14 - Unit Tests" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - # - "cd eos && ./.cicd/parallel-tests.sh" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-node-fleet" - # skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} + - label: ":ubuntu: Ubuntu 18.04 - Unit Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + - "./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} + - label: ":darwin: macOS 10.14 - Unit Tests" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && ./.cicd/parallel-tests.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-node-fleet" + skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} - label: ":pipeline: Generate Serial Test Steps" command: "./.cicd/generate-serial-tests.sh | buildkite-agent pipeline upload" From b31bbad48e3a04337b9714b66f443680c33d1fa6 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Fri, 16 Aug 2019 15:54:52 -0400 Subject: [PATCH 328/528] Removed buildkite agent. Fixed centos. --- .cicd/docker/amazon_linux-2.dockerfile | 5 +---- .cicd/docker/centos-7.6.dockerfile | 7 ++----- .cicd/docker/ubuntu-16.04.dockerfile | 6 +----- .cicd/docker/ubuntu-18.04.dockerfile | 6 +----- 4 files changed, 5 insertions(+), 19 deletions(-) diff --git a/.cicd/docker/amazon_linux-2.dockerfile b/.cicd/docker/amazon_linux-2.dockerfile index 3fb16f9b541..ab7c5a726be 100644 --- a/.cicd/docker/amazon_linux-2.dockerfile +++ b/.cicd/docker/amazon_linux-2.dockerfile @@ -62,7 +62,4 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin # install ccache RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm && \ - yum install -y ccache-3.3.4-1.el7.x86_64.rpm -# install buildkite agent -RUN echo -e "[buildkite-agent]\nname = Buildkite Pty Ltd\nbaseurl = https://yum.buildkite.com/buildkite-agent/stable/x86_64/\nenabled=1\ngpgcheck=0\npriority=1" > /etc/yum.repos.d/buildkite-agent.repo && \ - yum -y install buildkite-agent + yum install -y ccache-3.3.4-1.el7.x86_64.rpm \ No newline at end of file diff --git a/.cicd/docker/centos-7.6.dockerfile b/.cicd/docker/centos-7.6.dockerfile index 7793a785ac3..bf932e10889 100644 --- a/.cicd/docker/centos-7.6.dockerfile +++ b/.cicd/docker/centos-7.6.dockerfile @@ -69,7 +69,7 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o make -j$(nproc) && \ make install && \ cd / && \ - rm -f mongo-cxx-driver-r3.4.0.tar.gz\ + rm -f mongo-cxx-driver-r3.4.0.tar.gz # add mongodb to path ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin # install ccache @@ -77,7 +77,4 @@ RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c yum install -y ccache-3.3.4-1.el7.x86_64.rpm # fix ccache for centos RUN cd /usr/lib64/ccache && ln -s ../../bin/ccache c++ -ENV CCACHE_PATH="/opt/rh/devtoolset-8/root/usr/bin" -# install buildkite agent -RUN echo -e "[buildkite-agent]\nname = Buildkite Pty Ltd\nbaseurl = https://yum.buildkite.com/buildkite-agent/stable/x86_64/\nenabled=1\ngpgcheck=0\npriority=1" > /etc/yum.repos.d/buildkite-agent.repo && \ - yum -y install buildkite-agent \ No newline at end of file +ENV CCACHE_PATH="/opt/rh/devtoolset-8/root/usr/bin" \ No newline at end of file diff --git a/.cicd/docker/ubuntu-16.04.dockerfile b/.cicd/docker/ubuntu-16.04.dockerfile index 2b6922f2452..3fd93304f65 100644 --- a/.cicd/docker/ubuntu-16.04.dockerfile +++ b/.cicd/docker/ubuntu-16.04.dockerfile @@ -85,8 +85,4 @@ RUN curl -LO https://github.com/ccache/ccache/releases/download/v3.4.1/ccache-3. make && \ make install && \ cd / && \ - rm -rf ccache-3.4.1/ -# install buildkite agent -RUN echo "deb https://apt.buildkite.com/buildkite-agent stable main" > /etc/apt/sources.list.d/buildkite-agent.list && \ - apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 32A37959C2FA5C3C99EFBC32A79206696452D198 && \ - apt-get update && apt-get install -y buildkite-agent \ No newline at end of file + rm -rf ccache-3.4.1/ \ No newline at end of file diff --git a/.cicd/docker/ubuntu-18.04.dockerfile b/.cicd/docker/ubuntu-18.04.dockerfile index 1d7fe241a53..aaee7a0c238 100644 --- a/.cicd/docker/ubuntu-18.04.dockerfile +++ b/.cicd/docker/ubuntu-18.04.dockerfile @@ -51,8 +51,4 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o cd / && \ rm -f mongo-cxx-driver-r3.4.0.tar.gz # add mongodb to path -ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin -# install buildkite agent -RUN echo "deb https://apt.buildkite.com/buildkite-agent stable main" > /etc/apt/sources.list.d/buildkite-agent.list && \ - apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 32A37959C2FA5C3C99EFBC32A79206696452D198 && \ - apt-get update && apt-get install -y apt-transport-https && apt-get install -y buildkite-agent \ No newline at end of file +ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin \ No newline at end of file From f68bdc65f781af72419bb4bbc565def21a9d3f0d Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Fri, 16 Aug 2019 16:52:56 -0400 Subject: [PATCH 329/528] Fixed spacing. --- .cicd/docker/ubuntu-16.04.dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/docker/ubuntu-16.04.dockerfile b/.cicd/docker/ubuntu-16.04.dockerfile index 3fd93304f65..0a1ab0cbcc9 100644 --- a/.cicd/docker/ubuntu-16.04.dockerfile +++ b/.cicd/docker/ubuntu-16.04.dockerfile @@ -85,4 +85,4 @@ RUN curl -LO https://github.com/ccache/ccache/releases/download/v3.4.1/ccache-3. make && \ make install && \ cd / && \ - rm -rf ccache-3.4.1/ \ No newline at end of file + rm -rf ccache-3.4.1/ \ No newline at end of file From 1272cdb701de27ce68a70afee7f1bbf50e9ea86c Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 19 Aug 2019 11:53:36 -0400 Subject: [PATCH 330/528] Zane's changes --- .cicd/base-images.yml | 38 ----------------------- .cicd/build.sh | 2 +- .cicd/eosio-installation-images.yml | 11 ------- .cicd/{helpers => }/installation-build.sh | 0 .cicd/pipeline.yml | 2 +- 5 files changed, 2 insertions(+), 51 deletions(-) delete mode 100644 .cicd/base-images.yml delete mode 100644 .cicd/eosio-installation-images.yml rename .cicd/{helpers => }/installation-build.sh (100%) diff --git a/.cicd/base-images.yml b/.cicd/base-images.yml deleted file mode 100644 index a45e4c20913..00000000000 --- a/.cicd/base-images.yml +++ /dev/null @@ -1,38 +0,0 @@ -env: - BUILD_TIMEOUT: 120 - TEST_TIMEOUT: 60 - TIMEOUT: 120 - -steps: - - - label: ":aws: Amazon_Linux 2 - Build" - command: - - ".cicd/generate-base-images.sh amazon_linux-2" - agents: - queue: "automation-eos-dockerhub-image-builder-fleet" - timeout: $BUILD_TIMEOUT - skip: $SKIP_AMAZON_LINUX_2 - - - label: ":centos: CentOS 7.6 - Build" - command: - - ".cicd/generate-base-images.sh centos-7.6" - agents: - queue: "automation-eos-dockerhub-image-builder-fleet" - timeout: $BUILD_TIMEOUT - skip: $SKIP_CENTOS_7 - - - label: ":ubuntu: Ubuntu 16.04 - Build" - command: - - ".cicd/generate-base-images.sh ubuntu-16.04" - agents: - queue: "automation-eos-dockerhub-image-builder-fleet" - timeout: $BUILD_TIMEOUT - skip: $SKIP_UBUNTU_16 - - - label: ":ubuntu: Ubuntu 18.04 - Build" - command: - - ".cicd/generate-base-images.sh ubuntu-18.04" - agents: - queue: "automation-eos-dockerhub-image-builder-fleet" - timeout: $BUILD_TIMEOUT - skip: $SKIP_UBUNTU_18 diff --git a/.cicd/build.sh b/.cicd/build.sh index c895c4fcd49..80c48d1a94a 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -40,7 +40,7 @@ else # Linux if [[ $BUILDKITE == true ]]; then # Generate Base Images $CICD_DIR/generate-base-images.sh - [[ $ENABLE_INSTALL == true ]] && COMMANDS="cp -r $MOUNTED_DIR ~/eosio && cd ~/eosio/build &&" + [[ $ENABLE_INSTALL == true ]] && COMMANDS="cp -r $MOUNTED_DIR /root/eosio && cd /root/eosio/build &&" COMMANDS="$COMMANDS $BUILD_COMMANDS" [[ $ENABLE_INSTALL == true ]] && COMMAND="$COMMAND && make install" elif [[ $TRAVIS == true ]]; then diff --git a/.cicd/eosio-installation-images.yml b/.cicd/eosio-installation-images.yml deleted file mode 100644 index 60670912d47..00000000000 --- a/.cicd/eosio-installation-images.yml +++ /dev/null @@ -1,11 +0,0 @@ -steps: - - - label: ":ubuntu: Ubuntu 18.04 - Build" - command: - - bash ./.cicd/installation-build.sh - env: - IMAGE_TAG: "ubuntu-18.04" - agents: - queue: "automation-eos-builder-fleet" - timeout: $BUILD_TIMEOUT - skip: $SKIP_UBUNTU_18 \ No newline at end of file diff --git a/.cicd/helpers/installation-build.sh b/.cicd/installation-build.sh similarity index 100% rename from .cicd/helpers/installation-build.sh rename to .cicd/installation-build.sh diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index bc83741dcb8..543780d5f6b 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -233,7 +233,7 @@ steps: - label: ":ubuntu: Ubuntu 18.04 - Contract Builder" command: - - "./.cicd/helpers/installation-build.sh" + - "./.cicd/installation-build.sh" env: IMAGE_TAG: "ubuntu-18.04" BUILDKITE_AGENT_ACCESS_TOKEN: From 25bd8d4d55248bde30be56edebe31c0bf3b9c0f5 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Mon, 19 Aug 2019 14:34:09 -0400 Subject: [PATCH 331/528] Changed typo from COMMAND to COMMANDS when ENABLE_INSTALL is set. --- .cicd/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index 80c48d1a94a..efc38a0b8bc 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -42,7 +42,7 @@ else # Linux $CICD_DIR/generate-base-images.sh [[ $ENABLE_INSTALL == true ]] && COMMANDS="cp -r $MOUNTED_DIR /root/eosio && cd /root/eosio/build &&" COMMANDS="$COMMANDS $BUILD_COMMANDS" - [[ $ENABLE_INSTALL == true ]] && COMMAND="$COMMAND && make install" + [[ $ENABLE_INSTALL == true ]] && COMMANDS="$COMMANDS && make install" elif [[ $TRAVIS == true ]]; then ARGS="$ARGS -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e JOBS -e TRAVIS -e CCACHE_DIR=/opt/.ccache" COMMANDS="ccache -s && $BUILD_COMMANDS" From a47295b4bc2947b63a1d2df927f1e552c774e682 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 20 Aug 2019 15:17:34 -0400 Subject: [PATCH 332/528] removed --- .cicd/generate-base-images.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index 10e7f81b8da..94abce495cf 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -9,7 +9,6 @@ TAG=$(echo $FULL_TAG | cut -d: -f2) EXISTS=$(curl -s -H "Authorization: Bearer $(curl -sSL "https://auth.docker.io/token?service=registry.docker.io&scope=repository:${ORG_REPO}:pull" | jq --raw-output .token)" "https://registry.hub.docker.com/v2/${ORG_REPO}/manifests/$TAG") # build, if neccessary if [[ $EXISTS =~ '404 page not found' || $EXISTS =~ 'manifest unknown' ]]; then # if we cannot pull the image, we build and push it first - docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD docker build -t $FULL_TAG -f $CICD_DIR/docker/${IMAGE_TAG}.dockerfile . docker push $FULL_TAG else From 049be2b372dba2f78b7caa13f305ec09f182ac65 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 20 Aug 2019 16:36:54 -0400 Subject: [PATCH 333/528] Quick fix for wrong packages? --- .cicd/package.sh | 32 ++++++++++++++++++++++++++++++++ .cicd/pipeline.yml | 8 ++++---- 2 files changed, 36 insertions(+), 4 deletions(-) create mode 100755 .cicd/package.sh diff --git a/.cicd/package.sh b/.cicd/package.sh new file mode 100755 index 00000000000..7eef127053c --- /dev/null +++ b/.cicd/package.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash +set -eo pipefail +. ./.cicd/helpers/general.sh + +mkdir -p $BUILD_DIR + +PRE_COMMANDS="cd $MOUNTED_DIR" +PACKAGE_COMMANDS=".cicd/package-builder.sh" +COMMANDS="$PRE_COMMANDS && $PACKAGE_COMMNADS" + +if [[ $(uname) == 'Darwin' ]]; then + + # You can't use chained commands in execute + bash -c "$PACKAGE_COMMANDS" + +else # Linux + + ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} + + . $HELPERS_DIR/docker-hash.sh + + # Load BUILDKITE Environment Variables for use in docker run + if [[ -f $BUILDKITE_ENV_FILE ]]; then + evars="" + while read -r var; do + evars="$evars --env ${var%%=*}" + done < "$BUILDKITE_ENV_FILE" + fi + + eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" + +fi \ No newline at end of file diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 543780d5f6b..faa8d459262 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -245,7 +245,7 @@ steps: - label: ":centos: CentOS 7.6 - Package Builder" command: - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package-builder.sh" + - "./.cicd/package.sh" env: BUILDKITE_AGENT_ACCESS_TOKEN: agents: @@ -256,7 +256,7 @@ steps: - label: ":ubuntu: Ubuntu 16.04 - Package Builder" command: - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package-builder.sh" + - "./.cicd/package.sh" env: BUILDKITE_AGENT_ACCESS_TOKEN: agents: @@ -267,7 +267,7 @@ steps: - label: ":ubuntu: Ubuntu 18.04 - Package Builder" command: - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package-builder.sh" + - "./.cicd/package.sh" env: BUILDKITE_AGENT_ACCESS_TOKEN: agents: @@ -279,7 +279,7 @@ steps: command: - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && ./.cicd/package-builder.sh" + - "cd eos && ./.cicd/package.sh" plugins: - chef/anka#v0.5.1: no-volume: true From 56e2ccbcd30f60e0ca5fb8a2b3f4c69a67a67b59 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 20 Aug 2019 17:02:40 -0400 Subject: [PATCH 334/528] Fix package builder pipeline steps. --- .cicd/pipeline.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index faa8d459262..41b6444fb49 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -247,6 +247,7 @@ steps: - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - "./.cicd/package.sh" env: + IMAGE_TAG: "centos-7.6" BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" @@ -258,6 +259,7 @@ steps: - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - "./.cicd/package.sh" env: + IMAGE_TAG: "ubuntu-16.04" BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" @@ -269,6 +271,7 @@ steps: - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - "./.cicd/package.sh" env: + IMAGE_TAG: "ubuntu-18.04" BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" From a94562f95feccfdfcd6d92791daab38e9d3a28e8 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 20 Aug 2019 17:51:30 -0400 Subject: [PATCH 335/528] Debugging. --- .cicd/package-builder.sh | 1 + .cicd/package.sh | 4 +- .cicd/pipeline.yml | 216 +++++++++++++++++++-------------------- 3 files changed, 111 insertions(+), 110 deletions(-) diff --git a/.cicd/package-builder.sh b/.cicd/package-builder.sh index 0d3d4652d81..d055d246057 100755 --- a/.cicd/package-builder.sh +++ b/.cicd/package-builder.sh @@ -1,5 +1,6 @@ #!/usr/bin/env bash set -eo pipefail +echo "Entered package-builder.sh" if [[ $(uname) == 'Darwin' ]]; then echo 'Darwin family detected, building for brew.' [[ -z $ARTIFACT ]] && ARTIFACT='*.rb;*.tar.gz' diff --git a/.cicd/package.sh b/.cicd/package.sh index 7eef127053c..dcf4f8d900a 100755 --- a/.cicd/package.sh +++ b/.cicd/package.sh @@ -5,7 +5,7 @@ set -eo pipefail mkdir -p $BUILD_DIR PRE_COMMANDS="cd $MOUNTED_DIR" -PACKAGE_COMMANDS=".cicd/package-builder.sh" +PACKAGE_COMMANDS="./.cicd/package-builder.sh" COMMANDS="$PRE_COMMANDS && $PACKAGE_COMMNADS" if [[ $(uname) == 'Darwin' ]]; then @@ -26,7 +26,7 @@ else # Linux evars="$evars --env ${var%%=*}" done < "$BUILDKITE_ENV_FILE" fi - + echo "docker run $ARGS $evars $FULL_TAG bash -c \\\"$COMMANDS\\\"" eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" fi \ No newline at end of file diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 41b6444fb49..cb7639119bd 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,17 +1,17 @@ steps: - wait - - label: ":aws: Amazon_Linux 2 - Build" - command: - - "./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "amazon_linux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_AMAZON_LINUX_2 + # - label: ":aws: Amazon_Linux 2 - Build" + # command: + # - "./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "amazon_linux-2" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_AMAZON_LINUX_2 - label: ":centos: CentOS 7.6 - Build" command: @@ -70,81 +70,81 @@ steps: - "queue=mac-anka-large-node-fleet" skip: $SKIP_MOJAVE - - wait + # - wait - - label: ":aws: Amazon_Linux 2 - Unit Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - - "./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "amazon_linux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} + # - label: ":aws: Amazon_Linux 2 - Unit Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + # - "./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "amazon_linux-2" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} - - label: ":centos: CentOS 7.6 - Unit Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - - "./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} + # - label: ":centos: CentOS 7.6 - Unit Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + # - "./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "centos-7.6" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} - - label: ":ubuntu: Ubuntu 16.04 - Unit Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - - "./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} + # - label: ":ubuntu: Ubuntu 16.04 - Unit Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + # - "./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-16.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} - - label: ":ubuntu: Ubuntu 18.04 - Unit Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - - "./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} + # - label: ":ubuntu: Ubuntu 18.04 - Unit Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + # - "./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-18.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} - - label: ":darwin: macOS 10.14 - Unit Tests" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && ./.cicd/parallel-tests.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-node-fleet" - skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} + # - label: ":darwin: macOS 10.14 - Unit Tests" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + # - "cd eos && ./.cicd/parallel-tests.sh" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-node-fleet" + # skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} - - label: ":pipeline: Generate Serial Test Steps" - command: "./.cicd/generate-serial-tests.sh | buildkite-agent pipeline upload" - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_GENERATE_SERIAL_TESTS + # - label: ":pipeline: Generate Serial Test Steps" + # command: "./.cicd/generate-serial-tests.sh | buildkite-agent pipeline upload" + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_GENERATE_SERIAL_TESTS - label: ":aws: Amazon_Linux 2 - Long-Running Tests" command: @@ -215,32 +215,32 @@ steps: - "queue=mac-anka-large-node-fleet" skip: ${SKIP_MOJAVE}${SKIP_LONG_RUNNING_TESTS:-true} - - wait: - continue_on_failure: true + # - wait: + # continue_on_failure: true - - label: ":bar_chart: Test Metrics" - command: | - echo '+++ :compression: Extracting Test Metrics Code' - tar -zxf .cicd/metrics/test-metrics.tar.gz - echo '+++ :javascript: Running test-metrics.js' - node --max-old-space-size=32768 test-metrics.js - agents: - queue: "automation-eos-builder-fleet" - timeout: 10 - soft_fail: true + # - label: ":bar_chart: Test Metrics" + # command: | + # echo '+++ :compression: Extracting Test Metrics Code' + # tar -zxf .cicd/metrics/test-metrics.tar.gz + # echo '+++ :javascript: Running test-metrics.js' + # node --max-old-space-size=32768 test-metrics.js + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: 10 + # soft_fail: true - wait - - label: ":ubuntu: Ubuntu 18.04 - Contract Builder" - command: - - "./.cicd/installation-build.sh" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_18}${SKIP_CONTRACT_BUILDER} + # - label: ":ubuntu: Ubuntu 18.04 - Contract Builder" + # command: + # - "./.cicd/installation-build.sh" + # env: + # IMAGE_TAG: "ubuntu-18.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_UBUNTU_18}${SKIP_CONTRACT_BUILDER} - label: ":centos: CentOS 7.6 - Package Builder" command: @@ -297,9 +297,9 @@ steps: timeout: 10 skip: ${SKIP_MOJAVE}${SKIP_PACKAGE_BUILDER} - - label: ":git: Git Submodule Regression Check" - command: - - "./.cicd/submodule-regression-checker.sh" - agents: - queue: "automation-basic-builder-fleet" - timeout: 5 \ No newline at end of file + # - label: ":git: Git Submodule Regression Check" + # command: + # - "./.cicd/submodule-regression-checker.sh" + # agents: + # queue: "automation-basic-builder-fleet" + # timeout: 5 \ No newline at end of file From dc6dab4085c2b77a76cad1b34a43a1b210561be3 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 21 Aug 2019 09:14:06 -0400 Subject: [PATCH 336/528] Debugging. --- .cicd/package-builder.sh | 2 +- .cicd/package.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.cicd/package-builder.sh b/.cicd/package-builder.sh index d055d246057..01c15d0c898 100755 --- a/.cicd/package-builder.sh +++ b/.cicd/package-builder.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash set -eo pipefail -echo "Entered package-builder.sh" + if [[ $(uname) == 'Darwin' ]]; then echo 'Darwin family detected, building for brew.' [[ -z $ARTIFACT ]] && ARTIFACT='*.rb;*.tar.gz' diff --git a/.cicd/package.sh b/.cicd/package.sh index dcf4f8d900a..2ce64570d96 100755 --- a/.cicd/package.sh +++ b/.cicd/package.sh @@ -6,7 +6,7 @@ mkdir -p $BUILD_DIR PRE_COMMANDS="cd $MOUNTED_DIR" PACKAGE_COMMANDS="./.cicd/package-builder.sh" -COMMANDS="$PRE_COMMANDS && $PACKAGE_COMMNADS" +COMMANDS="$PRE_COMMANDS && $PACKAGE_COMMANDS" if [[ $(uname) == 'Darwin' ]]; then @@ -26,7 +26,7 @@ else # Linux evars="$evars --env ${var%%=*}" done < "$BUILDKITE_ENV_FILE" fi - echo "docker run $ARGS $evars $FULL_TAG bash -c \\\"$COMMANDS\\\"" + eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" fi \ No newline at end of file From 7d2b6a7030640360cae65e7b5143f38aa74acf4f Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 21 Aug 2019 09:43:50 -0400 Subject: [PATCH 337/528] Debugging. --- .cicd/package-builder.sh | 12 +----------- .cicd/package.sh | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 12 deletions(-) diff --git a/.cicd/package-builder.sh b/.cicd/package-builder.sh index 01c15d0c898..dd26885e208 100755 --- a/.cicd/package-builder.sh +++ b/.cicd/package-builder.sh @@ -38,14 +38,4 @@ BASE_COMMIT="${BASE_COMMIT:2:42}" echo "Found build against $BASE_COMMIT." cd build/packages chmod 755 ./*.sh -./generate_package.sh $PACKAGE_TYPE -[[ -d x86_64 ]] && cd 'x86_64' # backwards-compatibility with release/1.6.x -buildkite-agent artifact upload "./$ARTIFACT" --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN -for A in $(echo $ARTIFACT | tr ';' ' '); do - if [[ $(ls $A | grep -c '') == 0 ]]; then - echo "+++ :no_entry: ERROR: Expected artifact \"$A\" not found!" - pwd - ls -la - exit 1 - fi -done \ No newline at end of file +./generate_package.sh $PACKAGE_TYPE \ No newline at end of file diff --git a/.cicd/package.sh b/.cicd/package.sh index 2ce64570d96..f4a6b98b0cd 100755 --- a/.cicd/package.sh +++ b/.cicd/package.sh @@ -12,7 +12,20 @@ if [[ $(uname) == 'Darwin' ]]; then # You can't use chained commands in execute bash -c "$PACKAGE_COMMANDS" - + + ARTIFACT='*.rb;*.tar.gz' + cd build/packages + [[ -d x86_64 ]] && cd 'x86_64' # backwards-compatibility with release/1.6.x + buildkite-agent artifact upload "./$ARTIFACT" --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN + for A in $(echo $ARTIFACT | tr ';' ' '); do + if [[ $(ls $A | grep -c '') == 0 ]]; then + echo "+++ :no_entry: ERROR: Expected artifact \"$A\" not found!" + pwd + ls -la + exit 1 + fi + done + else # Linux ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} @@ -29,4 +42,23 @@ else # Linux eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" + if [[ "$IMAGE_TAG" =~ "ubuntu" ]]; then + echo 'Uploading DEB.' + ARTIFACT='*.deb' + elif [[ "$IMAGE_TAG" =~ "centos" ]]; then + echo 'Uploading RPM' + ARTIFACT='*.rpm' + fi + cd build/packages + [[ -d x86_64 ]] && cd 'x86_64' # backwards-compatibility with release/1.6.x + buildkite-agent artifact upload "./$ARTIFACT" --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN + for A in $(echo $ARTIFACT | tr ';' ' '); do + if [[ $(ls $A | grep -c '') == 0 ]]; then + echo "+++ :no_entry: ERROR: Expected artifact \"$A\" not found!" + pwd + ls -la + exit 1 + fi + done + fi \ No newline at end of file From 57a27463383c3728517c65392bbc91c8bc52c189 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 21 Aug 2019 09:58:58 -0400 Subject: [PATCH 338/528] Re-enable pipeline. --- .cicd/pipeline.yml | 216 ++++++++++++++++++++++----------------------- 1 file changed, 108 insertions(+), 108 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index cb7639119bd..41b6444fb49 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,17 +1,17 @@ steps: - wait - # - label: ":aws: Amazon_Linux 2 - Build" - # command: - # - "./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "amazon_linux-2" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_AMAZON_LINUX_2 + - label: ":aws: Amazon_Linux 2 - Build" + command: + - "./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "amazon_linux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_AMAZON_LINUX_2 - label: ":centos: CentOS 7.6 - Build" command: @@ -70,81 +70,81 @@ steps: - "queue=mac-anka-large-node-fleet" skip: $SKIP_MOJAVE - # - wait + - wait - # - label: ":aws: Amazon_Linux 2 - Unit Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - # - "./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "amazon_linux-2" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} + - label: ":aws: Amazon_Linux 2 - Unit Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + - "./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "amazon_linux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} - # - label: ":centos: CentOS 7.6 - Unit Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - # - "./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "centos-7.6" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} + - label: ":centos: CentOS 7.6 - Unit Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + - "./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} - # - label: ":ubuntu: Ubuntu 16.04 - Unit Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - # - "./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} + - label: ":ubuntu: Ubuntu 16.04 - Unit Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} - # - label: ":ubuntu: Ubuntu 18.04 - Unit Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - # - "./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} + - label: ":ubuntu: Ubuntu 18.04 - Unit Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + - "./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} - # - label: ":darwin: macOS 10.14 - Unit Tests" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - # - "cd eos && ./.cicd/parallel-tests.sh" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-node-fleet" - # skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} + - label: ":darwin: macOS 10.14 - Unit Tests" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && ./.cicd/parallel-tests.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-node-fleet" + skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} - # - label: ":pipeline: Generate Serial Test Steps" - # command: "./.cicd/generate-serial-tests.sh | buildkite-agent pipeline upload" - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_GENERATE_SERIAL_TESTS + - label: ":pipeline: Generate Serial Test Steps" + command: "./.cicd/generate-serial-tests.sh | buildkite-agent pipeline upload" + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_GENERATE_SERIAL_TESTS - label: ":aws: Amazon_Linux 2 - Long-Running Tests" command: @@ -215,32 +215,32 @@ steps: - "queue=mac-anka-large-node-fleet" skip: ${SKIP_MOJAVE}${SKIP_LONG_RUNNING_TESTS:-true} - # - wait: - # continue_on_failure: true + - wait: + continue_on_failure: true - # - label: ":bar_chart: Test Metrics" - # command: | - # echo '+++ :compression: Extracting Test Metrics Code' - # tar -zxf .cicd/metrics/test-metrics.tar.gz - # echo '+++ :javascript: Running test-metrics.js' - # node --max-old-space-size=32768 test-metrics.js - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: 10 - # soft_fail: true + - label: ":bar_chart: Test Metrics" + command: | + echo '+++ :compression: Extracting Test Metrics Code' + tar -zxf .cicd/metrics/test-metrics.tar.gz + echo '+++ :javascript: Running test-metrics.js' + node --max-old-space-size=32768 test-metrics.js + agents: + queue: "automation-eos-builder-fleet" + timeout: 10 + soft_fail: true - wait - # - label: ":ubuntu: Ubuntu 18.04 - Contract Builder" - # command: - # - "./.cicd/installation-build.sh" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_UBUNTU_18}${SKIP_CONTRACT_BUILDER} + - label: ":ubuntu: Ubuntu 18.04 - Contract Builder" + command: + - "./.cicd/installation-build.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_18}${SKIP_CONTRACT_BUILDER} - label: ":centos: CentOS 7.6 - Package Builder" command: @@ -297,9 +297,9 @@ steps: timeout: 10 skip: ${SKIP_MOJAVE}${SKIP_PACKAGE_BUILDER} - # - label: ":git: Git Submodule Regression Check" - # command: - # - "./.cicd/submodule-regression-checker.sh" - # agents: - # queue: "automation-basic-builder-fleet" - # timeout: 5 \ No newline at end of file + - label: ":git: Git Submodule Regression Check" + command: + - "./.cicd/submodule-regression-checker.sh" + agents: + queue: "automation-basic-builder-fleet" + timeout: 5 \ No newline at end of file From 2c844fb514614c6b492e5edb36cd0e84f98d00a4 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 21 Aug 2019 12:43:35 -0400 Subject: [PATCH 339/528] Test full fix for package building. --- .cicd/package.sh | 27 ++-- .cicd/pipeline.yml | 312 ++++++++++++++++++++++----------------------- 2 files changed, 171 insertions(+), 168 deletions(-) diff --git a/.cicd/package.sh b/.cicd/package.sh index f4a6b98b0cd..a45be05a12f 100755 --- a/.cicd/package.sh +++ b/.cicd/package.sh @@ -4,14 +4,11 @@ set -eo pipefail mkdir -p $BUILD_DIR -PRE_COMMANDS="cd $MOUNTED_DIR" -PACKAGE_COMMANDS="./.cicd/package-builder.sh" -COMMANDS="$PRE_COMMANDS && $PACKAGE_COMMANDS" +PRE_COMMANDS="cd $MOUNTED_DIR/build/packages && chmod 755 ./*.sh" if [[ $(uname) == 'Darwin' ]]; then - # You can't use chained commands in execute - bash -c "$PACKAGE_COMMANDS" + bash -c "$PRE_COMMANDS && ./generate_package.sh brew" ARTIFACT='*.rb;*.tar.gz' cd build/packages @@ -32,6 +29,19 @@ else # Linux . $HELPERS_DIR/docker-hash.sh + PACKAGE_COMMANDS="./generate_package.sh $PACKAGE_TYPE" + + if [[ "$IMAGE_TAG" =~ "ubuntu" ]]; then + ARTIFACT='*.deb' + PACKAGE_TYPE='deb' + elif [[ "$IMAGE_TAG" =~ "centos" ]]; then + ARTIFACT='*.rpm' + PACKAGE_TYPE='rpm' + 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 && $PACKAGE_COMMANDS" + fi + + COMMANDS="$PRE_COMMANDS && $PACKAGE_COMMANDS" + # Load BUILDKITE Environment Variables for use in docker run if [[ -f $BUILDKITE_ENV_FILE ]]; then evars="" @@ -42,13 +52,6 @@ else # Linux eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" - if [[ "$IMAGE_TAG" =~ "ubuntu" ]]; then - echo 'Uploading DEB.' - ARTIFACT='*.deb' - elif [[ "$IMAGE_TAG" =~ "centos" ]]; then - echo 'Uploading RPM' - ARTIFACT='*.rpm' - fi cd build/packages [[ -d x86_64 ]] && cd 'x86_64' # backwards-compatibility with release/1.6.x buildkite-agent artifact upload "./$ARTIFACT" --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 41b6444fb49..c90bca43428 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -70,177 +70,177 @@ steps: - "queue=mac-anka-large-node-fleet" skip: $SKIP_MOJAVE - - wait + # - wait - - label: ":aws: Amazon_Linux 2 - Unit Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - - "./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "amazon_linux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} + # - label: ":aws: Amazon_Linux 2 - Unit Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + # - "./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "amazon_linux-2" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} - - label: ":centos: CentOS 7.6 - Unit Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - - "./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} + # - label: ":centos: CentOS 7.6 - Unit Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + # - "./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "centos-7.6" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} - - label: ":ubuntu: Ubuntu 16.04 - Unit Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - - "./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} + # - label: ":ubuntu: Ubuntu 16.04 - Unit Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + # - "./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-16.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} - - label: ":ubuntu: Ubuntu 18.04 - Unit Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - - "./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} + # - label: ":ubuntu: Ubuntu 18.04 - Unit Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + # - "./.cicd/parallel-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-18.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} - - label: ":darwin: macOS 10.14 - Unit Tests" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && ./.cicd/parallel-tests.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-node-fleet" - skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} + # - label: ":darwin: macOS 10.14 - Unit Tests" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + # - "cd eos && ./.cicd/parallel-tests.sh" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-node-fleet" + # skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} - - label: ":pipeline: Generate Serial Test Steps" - command: "./.cicd/generate-serial-tests.sh | buildkite-agent pipeline upload" - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_GENERATE_SERIAL_TESTS + # - label: ":pipeline: Generate Serial Test Steps" + # command: "./.cicd/generate-serial-tests.sh | buildkite-agent pipeline upload" + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_GENERATE_SERIAL_TESTS - - label: ":aws: Amazon_Linux 2 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - - "./.cicd/long-running-tests.sh" - env: - IMAGE_TAG: "amazon_linux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_AMAZON_LINUX_2}${SKIP_LONG_RUNNING_TESTS:-true} + # - label: ":aws: Amazon_Linux 2 - Long-Running Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + # - "./.cicd/long-running-tests.sh" + # env: + # IMAGE_TAG: "amazon_linux-2" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_AMAZON_LINUX_2}${SKIP_LONG_RUNNING_TESTS:-true} - - label: ":centos: CentOS 7.6 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - - "./.cicd/long-running-tests.sh" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_CENTOS_7}${SKIP_LONG_RUNNING_TESTS:-true} + # - label: ":centos: CentOS 7.6 - Long-Running Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + # - "./.cicd/long-running-tests.sh" + # env: + # IMAGE_TAG: "centos-7.6" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_CENTOS_7}${SKIP_LONG_RUNNING_TESTS:-true} - - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - - "./.cicd/long-running-tests.sh" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_16}${SKIP_LONG_RUNNING_TESTS:-true} + # - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + # - "./.cicd/long-running-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-16.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_UBUNTU_16}${SKIP_LONG_RUNNING_TESTS:-true} - - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - - "./.cicd/long-running-tests.sh" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_18}${SKIP_LONG_RUNNING_TESTS:-true} + # - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" + # command: + # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + # - "./.cicd/long-running-tests.sh" + # env: + # IMAGE_TAG: "ubuntu-18.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_UBUNTU_18}${SKIP_LONG_RUNNING_TESTS:-true} - - label: ":darwin: macOS 10.14 - Long-Running Tests" - command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && ./.cicd/long-running-tests.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - modify-cpu: 12 - modify-ram: 24 - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-large-node-fleet" - skip: ${SKIP_MOJAVE}${SKIP_LONG_RUNNING_TESTS:-true} + # - label: ":darwin: macOS 10.14 - Long-Running Tests" + # command: + # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + # - "cd eos && ./.cicd/long-running-tests.sh" + # plugins: + # - chef/anka#v0.5.1: + # no-volume: true + # inherit-environment-vars: true + # vm-name: 10.14.4_6C_14G_40G + # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + # modify-cpu: 12 + # modify-ram: 24 + # always-pull: true + # debug: true + # wait-network: true + # agents: + # - "queue=mac-anka-large-node-fleet" + # skip: ${SKIP_MOJAVE}${SKIP_LONG_RUNNING_TESTS:-true} - - wait: - continue_on_failure: true + # - wait: + # continue_on_failure: true - - label: ":bar_chart: Test Metrics" - command: | - echo '+++ :compression: Extracting Test Metrics Code' - tar -zxf .cicd/metrics/test-metrics.tar.gz - echo '+++ :javascript: Running test-metrics.js' - node --max-old-space-size=32768 test-metrics.js - agents: - queue: "automation-eos-builder-fleet" - timeout: 10 - soft_fail: true + # - label: ":bar_chart: Test Metrics" + # command: | + # echo '+++ :compression: Extracting Test Metrics Code' + # tar -zxf .cicd/metrics/test-metrics.tar.gz + # echo '+++ :javascript: Running test-metrics.js' + # node --max-old-space-size=32768 test-metrics.js + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: 10 + # soft_fail: true - - wait + # - wait - - label: ":ubuntu: Ubuntu 18.04 - Contract Builder" - command: - - "./.cicd/installation-build.sh" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_18}${SKIP_CONTRACT_BUILDER} + # - label: ":ubuntu: Ubuntu 18.04 - Contract Builder" + # command: + # - "./.cicd/installation-build.sh" + # env: + # IMAGE_TAG: "ubuntu-18.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_UBUNTU_18}${SKIP_CONTRACT_BUILDER} - label: ":centos: CentOS 7.6 - Package Builder" command: From 29cedd45cded4b492adeb74050ebd64e064d3349 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 21 Aug 2019 13:04:15 -0400 Subject: [PATCH 340/528] Debugging. --- .cicd/package.sh | 4 ++-- .cicd/pipeline.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.cicd/package.sh b/.cicd/package.sh index a45be05a12f..5cc836fdb85 100755 --- a/.cicd/package.sh +++ b/.cicd/package.sh @@ -29,15 +29,15 @@ else # Linux . $HELPERS_DIR/docker-hash.sh - PACKAGE_COMMANDS="./generate_package.sh $PACKAGE_TYPE" if [[ "$IMAGE_TAG" =~ "ubuntu" ]]; then ARTIFACT='*.deb' PACKAGE_TYPE='deb' + PACKAGE_COMMANDS="./generate_package.sh $PACKAGE_TYPE" elif [[ "$IMAGE_TAG" =~ "centos" ]]; then ARTIFACT='*.rpm' PACKAGE_TYPE='rpm' - 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 && $PACKAGE_COMMANDS" + 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" fi COMMANDS="$PRE_COMMANDS && $PACKAGE_COMMANDS" diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index c90bca43428..33a6d94bd87 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -229,7 +229,7 @@ steps: # timeout: 10 # soft_fail: true - # - wait + - wait # - label: ":ubuntu: Ubuntu 18.04 - Contract Builder" # command: From 87fe9ab56453b0f720f1f7e8b48845713c0ae647 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 21 Aug 2019 13:18:55 -0400 Subject: [PATCH 341/528] Fix Mac issue. Enable pipeline. --- .cicd/package-builder.sh | 41 ------ .cicd/package.sh | 5 +- .cicd/pipeline.yml | 310 +++++++++++++++++++-------------------- 3 files changed, 157 insertions(+), 199 deletions(-) delete mode 100755 .cicd/package-builder.sh diff --git a/.cicd/package-builder.sh b/.cicd/package-builder.sh deleted file mode 100755 index dd26885e208..00000000000 --- a/.cicd/package-builder.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail - -if [[ $(uname) == 'Darwin' ]]; then - echo 'Darwin family detected, building for brew.' - [[ -z $ARTIFACT ]] && ARTIFACT='*.rb;*.tar.gz' - PACKAGE_TYPE='brew' -else - . /etc/os-release - if [[ "$ID_LIKE" == 'debian' || "$ID" == 'debian' ]]; then - echo 'Debian family detected, building for dpkg.' - [[ -z $ARTIFACT ]] && ARTIFACT='*.deb' - PACKAGE_TYPE='deb' - elif [[ "$ID_LIKE" == 'rhel fedora' || "$ID" == 'fedora' ]]; then - echo 'Fedora family detected, building for RPM.' - [[ -z $ARTIFACT ]] && ARTIFACT='*.rpm' - PACKAGE_TYPE='rpm' - 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 - elif [[ $ID == 'amzn' ]]; then - echo "SKIPPED: We do not generate $NAME packages since they use rpms created from Centos." - exit 0 - else - echo 'ERROR: Could not determine which operating system this script is running on!' - uname - echo "ID_LIKE=\"$ID_LIKE\"" - cat /etc/os-release - exit 1 - fi -fi -BASE_COMMIT=$(cat build/programs/nodeos/config.hpp | grep 'version' | awk '{print $5}' | tr -d ';') -BASE_COMMIT="${BASE_COMMIT:2:42}" -echo "Found build against $BASE_COMMIT." -cd build/packages -chmod 755 ./*.sh -./generate_package.sh $PACKAGE_TYPE \ No newline at end of file diff --git a/.cicd/package.sh b/.cicd/package.sh index 5cc836fdb85..f1b4e6d23c6 100755 --- a/.cicd/package.sh +++ b/.cicd/package.sh @@ -4,11 +4,9 @@ set -eo pipefail mkdir -p $BUILD_DIR -PRE_COMMANDS="cd $MOUNTED_DIR/build/packages && chmod 755 ./*.sh" - if [[ $(uname) == 'Darwin' ]]; then - bash -c "$PRE_COMMANDS && ./generate_package.sh brew" + bash -c "cd build/packages && chmod 755 ./*.sh && ./generate_package.sh brew" ARTIFACT='*.rb;*.tar.gz' cd build/packages @@ -29,6 +27,7 @@ else # Linux . $HELPERS_DIR/docker-hash.sh + PRE_COMMANDS="cd $MOUNTED_DIR/build/packages && chmod 755 ./*.sh" if [[ "$IMAGE_TAG" =~ "ubuntu" ]]; then ARTIFACT='*.deb' diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 33a6d94bd87..41b6444fb49 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -70,177 +70,177 @@ steps: - "queue=mac-anka-large-node-fleet" skip: $SKIP_MOJAVE - # - wait + - wait - # - label: ":aws: Amazon_Linux 2 - Unit Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - # - "./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "amazon_linux-2" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} + - label: ":aws: Amazon_Linux 2 - Unit Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + - "./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "amazon_linux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} - # - label: ":centos: CentOS 7.6 - Unit Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - # - "./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "centos-7.6" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} + - label: ":centos: CentOS 7.6 - Unit Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + - "./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} - # - label: ":ubuntu: Ubuntu 16.04 - Unit Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - # - "./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} + - label: ":ubuntu: Ubuntu 16.04 - Unit Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} - # - label: ":ubuntu: Ubuntu 18.04 - Unit Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - # - "./.cicd/parallel-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} + - label: ":ubuntu: Ubuntu 18.04 - Unit Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + - "./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} - # - label: ":darwin: macOS 10.14 - Unit Tests" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - # - "cd eos && ./.cicd/parallel-tests.sh" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-node-fleet" - # skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} + - label: ":darwin: macOS 10.14 - Unit Tests" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && ./.cicd/parallel-tests.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-node-fleet" + skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} - # - label: ":pipeline: Generate Serial Test Steps" - # command: "./.cicd/generate-serial-tests.sh | buildkite-agent pipeline upload" - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_GENERATE_SERIAL_TESTS + - label: ":pipeline: Generate Serial Test Steps" + command: "./.cicd/generate-serial-tests.sh | buildkite-agent pipeline upload" + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_GENERATE_SERIAL_TESTS - # - label: ":aws: Amazon_Linux 2 - Long-Running Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - # - "./.cicd/long-running-tests.sh" - # env: - # IMAGE_TAG: "amazon_linux-2" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_AMAZON_LINUX_2}${SKIP_LONG_RUNNING_TESTS:-true} + - label: ":aws: Amazon_Linux 2 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + - "./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "amazon_linux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_AMAZON_LINUX_2}${SKIP_LONG_RUNNING_TESTS:-true} - # - label: ":centos: CentOS 7.6 - Long-Running Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - # - "./.cicd/long-running-tests.sh" - # env: - # IMAGE_TAG: "centos-7.6" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_CENTOS_7}${SKIP_LONG_RUNNING_TESTS:-true} + - label: ":centos: CentOS 7.6 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + - "./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_CENTOS_7}${SKIP_LONG_RUNNING_TESTS:-true} - # - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - # - "./.cicd/long-running-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_UBUNTU_16}${SKIP_LONG_RUNNING_TESTS:-true} + - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_16}${SKIP_LONG_RUNNING_TESTS:-true} - # - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" - # command: - # - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - # - "./.cicd/long-running-tests.sh" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_UBUNTU_18}${SKIP_LONG_RUNNING_TESTS:-true} + - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + - "./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_18}${SKIP_LONG_RUNNING_TESTS:-true} - # - label: ":darwin: macOS 10.14 - Long-Running Tests" - # command: - # - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - # - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - # - "cd eos && ./.cicd/long-running-tests.sh" - # plugins: - # - chef/anka#v0.5.1: - # no-volume: true - # inherit-environment-vars: true - # vm-name: 10.14.4_6C_14G_40G - # vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - # modify-cpu: 12 - # modify-ram: 24 - # always-pull: true - # debug: true - # wait-network: true - # agents: - # - "queue=mac-anka-large-node-fleet" - # skip: ${SKIP_MOJAVE}${SKIP_LONG_RUNNING_TESTS:-true} + - label: ":darwin: macOS 10.14 - Long-Running Tests" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && ./.cicd/long-running-tests.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + modify-cpu: 12 + modify-ram: 24 + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-large-node-fleet" + skip: ${SKIP_MOJAVE}${SKIP_LONG_RUNNING_TESTS:-true} - # - wait: - # continue_on_failure: true + - wait: + continue_on_failure: true - # - label: ":bar_chart: Test Metrics" - # command: | - # echo '+++ :compression: Extracting Test Metrics Code' - # tar -zxf .cicd/metrics/test-metrics.tar.gz - # echo '+++ :javascript: Running test-metrics.js' - # node --max-old-space-size=32768 test-metrics.js - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: 10 - # soft_fail: true + - label: ":bar_chart: Test Metrics" + command: | + echo '+++ :compression: Extracting Test Metrics Code' + tar -zxf .cicd/metrics/test-metrics.tar.gz + echo '+++ :javascript: Running test-metrics.js' + node --max-old-space-size=32768 test-metrics.js + agents: + queue: "automation-eos-builder-fleet" + timeout: 10 + soft_fail: true - wait - # - label: ":ubuntu: Ubuntu 18.04 - Contract Builder" - # command: - # - "./.cicd/installation-build.sh" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_UBUNTU_18}${SKIP_CONTRACT_BUILDER} + - label: ":ubuntu: Ubuntu 18.04 - Contract Builder" + command: + - "./.cicd/installation-build.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_18}${SKIP_CONTRACT_BUILDER} - label: ":centos: CentOS 7.6 - Package Builder" command: From 45e5d98e47fcb1b9c381dc387c439cb88025bac7 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Fri, 23 Aug 2019 14:19:22 -0400 Subject: [PATCH 342/528] Add missing ENVs for lambdas. --- .cicd/pipeline.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 41b6444fb49..d3a4d8835d5 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -249,6 +249,8 @@ steps: env: IMAGE_TAG: "centos-7.6" BUILDKITE_AGENT_ACCESS_TOKEN: + OS: "el7" # OS and PKGTYPE required for lambdas + PKGTYPE: "rpm" agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} @@ -261,6 +263,8 @@ steps: env: IMAGE_TAG: "ubuntu-16.04" BUILDKITE_AGENT_ACCESS_TOKEN: + OS: "ubuntu-16.04" # OS and PKGTYPE required for lambdas + PKGTYPE: "deb" agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} @@ -273,6 +277,8 @@ steps: env: IMAGE_TAG: "ubuntu-18.04" BUILDKITE_AGENT_ACCESS_TOKEN: + OS: "ubuntu-18.04" # OS and PKGTYPE required for lambdas + PKGTYPE: "deb" agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} From 645f648d5ede30e2c16e324f53387d206b580fee Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 26 Aug 2019 09:38:33 -0400 Subject: [PATCH 343/528] started pinned dockerfiles --- .cicd/docker/amazon_linux-2-pinned.dockerfile | 66 +++++++++++++++ .cicd/docker/centos-7.6-pinned.dockerfile | 80 +++++++++++++++++++ .cicd/docker/ubuntu-18.04-pinned.dockerfile | 54 +++++++++++++ 3 files changed, 200 insertions(+) create mode 100644 .cicd/docker/amazon_linux-2-pinned.dockerfile create mode 100644 .cicd/docker/centos-7.6-pinned.dockerfile create mode 100644 .cicd/docker/ubuntu-18.04-pinned.dockerfile diff --git a/.cicd/docker/amazon_linux-2-pinned.dockerfile b/.cicd/docker/amazon_linux-2-pinned.dockerfile new file mode 100644 index 00000000000..e6851364942 --- /dev/null +++ b/.cicd/docker/amazon_linux-2-pinned.dockerfile @@ -0,0 +1,66 @@ +FROM amazonlinux:2.0.20190508 +# install dependencies. +RUN yum update -y && \ + yum install -y which git sudo procps-ng util-linux autoconf automake \ + libtool make bzip2 bzip2-devel openssl-devel gmp-devel libstdc++ libcurl-devel \ + libusbx-devel python3 python3-devel python-devel libedit-devel doxygen \ + graphviz clang patch +# build cmake. +RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ + tar -xzf cmake-3.13.2.tar.gz && \ + cd cmake-3.13.2 && \ + ./bootstrap --prefix=/usr/local && \ + make -j$(nproc) && \ + make install && \ + cd .. && \ + rm -f cmake-3.13.2.tar.gz +RUN cd /root/tmp && rm -rf clang8 && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && cd .. && cd ../../../../projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && cd ../ && cd /root/tmp/clang8 && mkdir build && cd build && cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=all -DCMAKE_BUILD_TYPE=Release .. && make -j16 && make install && rm -rf /root/tmp/clang8 +# build llvm +RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ + cd llvm && \ + mkdir build && \ + cd build && \ + cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + make -j$(nproc) && \ + make install && \ + cd / +# build boost +RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ + tar -xjf boost_1_70_0.tar.bz2 && \ + cd boost_1_70_0 && \ + ./bootstrap.sh --prefix=/usr/local && \ + ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ + cd .. && \ + rm -f boost_1_70_0.tar.bz2 +# build mongodb +RUN curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz && \ + tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz && \ + rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz +# build mongodb c driver +RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ + tar -xzf mongo-c-driver-1.13.0.tar.gz && \ + cd mongo-c-driver-1.13.0 && \ + mkdir -p build && \ + cd build && \ + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. && \ + make -j$(nproc) && \ + make install && \ + cd / && \ + rm -rf mongo-c-driver-1.13.0.tar.gz +# build mongodb cxx driver +RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ + tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ + cd mongo-cxx-driver-r3.4.0 && \ + sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ + sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ + cd build && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + make -j$(nproc) && \ + make install && \ + cd / && \ + rm -f mongo-cxx-driver-r3.4.0.tar.gz +# add mongodb to path +ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin +# install ccache +RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm && \ + yum install -y ccache-3.3.4-1.el7.x86_64.rpm \ No newline at end of file diff --git a/.cicd/docker/centos-7.6-pinned.dockerfile b/.cicd/docker/centos-7.6-pinned.dockerfile new file mode 100644 index 00000000000..bf932e10889 --- /dev/null +++ b/.cicd/docker/centos-7.6-pinned.dockerfile @@ -0,0 +1,80 @@ +FROM centos:7.6.1810 +# install dependencies. +RUN yum update -y && \ + yum --enablerepo=extras install -y centos-release-scl && \ + yum --enablerepo=extras install -y devtoolset-8 && \ + yum --enablerepo=extras install -y which git autoconf automake libtool make bzip2 doxygen \ + graphviz bzip2-devel openssl-devel gmp-devel ocaml libicu-devel \ + python python-devel rh-python36 gettext-devel file libusbx-devel \ + libcurl-devel patch +# build cmake. +RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/enable && \ + tar -xzf cmake-3.13.2.tar.gz && \ + cd cmake-3.13.2 && \ + ./bootstrap --prefix=/usr/local && \ + make -j$(nproc) && \ + make install && \ + cd .. && \ + rm -f cmake-3.13.2.tar.gz +# build llvm +RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/enable && \ + cd llvm && \ + mkdir build && \ + cd build && \ + cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + make -j$(nproc) && \ + make install && \ + cd / +# build boost +RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/enable && \ + tar -xjf boost_1_70_0.tar.bz2 && \ + cd boost_1_70_0 && \ + ./bootstrap.sh --prefix=/usr/local && \ + ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ + cd .. && \ + rm -f boost_1_70_0.tar.bz2 +# build mongodb +RUN curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz && \ + tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz && \ + rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz +# build mongodb c driver +RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/enable && \ + tar -xzf mongo-c-driver-1.13.0.tar.gz && \ + cd mongo-c-driver-1.13.0 && \ + mkdir -p build && \ + cd build && \ + cmake --DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. && \ + make -j$(nproc) && \ + make install && \ + cd / && \ + rm -rf mongo-c-driver-1.13.0.tar.gz +# build mongodb cxx driver +RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/enable && \ + tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ + cd mongo-cxx-driver-r3.4.0 && \ + sed -i 's/\"maxAwaitTimeMS\", ount/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ + sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ + cd build && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + make -j$(nproc) && \ + make install && \ + cd / && \ + rm -f mongo-cxx-driver-r3.4.0.tar.gz +# add mongodb to path +ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin +# install ccache +RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm && \ + yum install -y ccache-3.3.4-1.el7.x86_64.rpm +# fix ccache for centos +RUN cd /usr/lib64/ccache && ln -s ../../bin/ccache c++ +ENV CCACHE_PATH="/opt/rh/devtoolset-8/root/usr/bin" \ No newline at end of file diff --git a/.cicd/docker/ubuntu-18.04-pinned.dockerfile b/.cicd/docker/ubuntu-18.04-pinned.dockerfile new file mode 100644 index 00000000000..aaee7a0c238 --- /dev/null +++ b/.cicd/docker/ubuntu-18.04-pinned.dockerfile @@ -0,0 +1,54 @@ +FROM ubuntu:18.04 +# install dependencies. +RUN apt-get update && apt-get upgrade -y && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y git make \ + bzip2 automake libbz2-dev libssl-dev doxygen graphviz libgmp3-dev \ + autotools-dev libicu-dev python2.7 python2.7-dev python3 python3-dev \ + autoconf libtool g++ gcc curl zlib1g-dev sudo ruby libusb-1.0-0-dev \ + libcurl4-gnutls-dev pkg-config patch llvm-4.0 clang ccache +# build cmake. +RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ + tar -xzf cmake-3.13.2.tar.gz && \ + cd cmake-3.13.2 && \ + ./bootstrap --prefix=/usr/local && \ + make -j$(nproc) && \ + make install && \ + cd .. && \ + rm -f cmake-3.13.2.tar.gz +# build boost +RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ + tar -xjf boost_1_70_0.tar.bz2 && \ + cd boost_1_70_0 && \ + ./bootstrap.sh --prefix=/usr/local && \ + ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -j$(nproc) install && \ + cd .. && \ + rm -f boost_1_70_0.tar.bz2 +# build mongodb +RUN curl -LO http://downloads.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz && \ + tar -xzf mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz && \ + rm -f mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz +# build mongodb c driver +RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ + tar -xzf mongo-c-driver-1.13.0.tar.gz && \ + cd mongo-c-driver-1.13.0 && \ + mkdir -p build && \ + cd build && \ + cmake --DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON .. && \ + make -j$(nproc) && \ + make install && \ + cd / && \ + rm -rf mongo-c-driver-1.13.0.tar.gz +# build mongodb cxx driver +RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ + tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ + cd mongo-cxx-driver-r3.4.0 && \ + sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ + sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ + cd build && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + make -j$(nproc) && \ + make install && \ + cd / && \ + rm -f mongo-cxx-driver-r3.4.0.tar.gz +# add mongodb to path +ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin \ No newline at end of file From 4fe006b29b5114e0e8dd2edead32dc489625f0c9 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 26 Aug 2019 11:26:00 -0400 Subject: [PATCH 344/528] dedup of dockerfiles --- .cicd/docker/amazon_linux-2-pinned.dockerfile | 6 ++++-- .cicd/docker/centos-7.6-pinned.dockerfile | 10 ++-------- .cicd/docker/ubuntu-18.04-pinned.dockerfile | 3 +++ .cicd/generate-serial-tests.sh | 4 +++- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/.cicd/docker/amazon_linux-2-pinned.dockerfile b/.cicd/docker/amazon_linux-2-pinned.dockerfile index e6851364942..0e4b8fff805 100644 --- a/.cicd/docker/amazon_linux-2-pinned.dockerfile +++ b/.cicd/docker/amazon_linux-2-pinned.dockerfile @@ -4,7 +4,7 @@ RUN yum update -y && \ yum install -y which git sudo procps-ng util-linux autoconf automake \ libtool make bzip2 bzip2-devel openssl-devel gmp-devel libstdc++ libcurl-devel \ libusbx-devel python3 python3-devel python-devel libedit-devel doxygen \ - graphviz clang patch + graphviz clang # build cmake. RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ tar -xzf cmake-3.13.2.tar.gz && \ @@ -14,7 +14,9 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ make install && \ cd .. && \ rm -f cmake-3.13.2.tar.gz -RUN cd /root/tmp && rm -rf clang8 && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && cd .. && cd ../../../../projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && cd ../ && cd /root/tmp/clang8 && mkdir build && cd build && cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=all -DCMAKE_BUILD_TYPE=Release .. && make -j16 && make install && rm -rf /root/tmp/clang8 +# build clang8 +RUN cd /tmp && rm -rf clang8 && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && cd .. && cd ../../../../projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && cd ../ && cd /tmp/clang8 && mkdir build && cd build && cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=all -DCMAKE_BUILD_TYPE=Release .. && make -j8 && make install && rm -rf /tmp/clang8 +RUN yum autoremove -y clang # build llvm RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ cd llvm && \ diff --git a/.cicd/docker/centos-7.6-pinned.dockerfile b/.cicd/docker/centos-7.6-pinned.dockerfile index bf932e10889..764442685ff 100644 --- a/.cicd/docker/centos-7.6-pinned.dockerfile +++ b/.cicd/docker/centos-7.6-pinned.dockerfile @@ -18,10 +18,10 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ make install && \ cd .. && \ rm -f cmake-3.13.2.tar.gz +# build clang8 +RUN cd /tmp && rm -rf clang8 && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && cd .. && cd ../../../../projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && cd ../ && cd /tmp/clang8 && mkdir build && cd build && cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=all -DCMAKE_BUILD_TYPE=Release .. && make -j8 && make install && rm -rf /tmp/clang8 # build llvm RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ - source /opt/rh/devtoolset-8/enable && \ - source /opt/rh/rh-python36/enable && \ cd llvm && \ mkdir build && \ cd build && \ @@ -31,8 +31,6 @@ RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/l cd / # build boost RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ - source /opt/rh/devtoolset-8/enable && \ - source /opt/rh/rh-python36/enable && \ tar -xjf boost_1_70_0.tar.bz2 && \ cd boost_1_70_0 && \ ./bootstrap.sh --prefix=/usr/local && \ @@ -45,8 +43,6 @@ RUN curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3. rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz # build mongodb c driver RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ - source /opt/rh/devtoolset-8/enable && \ - source /opt/rh/rh-python36/enable && \ tar -xzf mongo-c-driver-1.13.0.tar.gz && \ cd mongo-c-driver-1.13.0 && \ mkdir -p build && \ @@ -58,8 +54,6 @@ RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/ rm -rf mongo-c-driver-1.13.0.tar.gz # build mongodb cxx driver RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ - source /opt/rh/devtoolset-8/enable && \ - source /opt/rh/rh-python36/enable && \ tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ cd mongo-cxx-driver-r3.4.0 && \ sed -i 's/\"maxAwaitTimeMS\", ount/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ diff --git a/.cicd/docker/ubuntu-18.04-pinned.dockerfile b/.cicd/docker/ubuntu-18.04-pinned.dockerfile index aaee7a0c238..0115770b84d 100644 --- a/.cicd/docker/ubuntu-18.04-pinned.dockerfile +++ b/.cicd/docker/ubuntu-18.04-pinned.dockerfile @@ -15,6 +15,9 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ make install && \ cd .. && \ rm -f cmake-3.13.2.tar.gz +# build clang8 +RUN cd /tmp && rm -rf clang8 && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && cd .. && cd ../../../../projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && cd ../ && cd /tmp/clang8 && mkdir build && cd build && cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=all -DCMAKE_BUILD_TYPE=Release .. && make -j8 && make install && rm -rf /tmp/clang8 +RUN apt autoremove -y clang gcc g++ # build boost RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ tar -xjf boost_1_70_0.tar.bz2 && \ diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index f0ef5eb649d..4eb9b9420e4 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -7,6 +7,7 @@ SERIAL_TESTS=$(cat tests/CMakeLists.txt | grep nonparallelizable_tests | awk -F" # Use dockerfiles as source of truth for what platforms to use ## Linux for DOCKERFILE in $(ls $CICD_DIR/docker); do + [[ $DOCKERFILE =~ 'pinned' ]] && continue DOCKERFILE_NAME=$(echo $DOCKERFILE | awk -F'.dockerfile' '{ print $1 }') PLATFORM_NAME=$(echo $DOCKERFILE_NAME | cut -d- -f1 | sed 's/os/OS/g') PLATFORM_NAME_UPCASE=$(echo $PLATFORM_NAME | tr a-z A-Z) @@ -17,6 +18,7 @@ for DOCKERFILE in $(ls $CICD_DIR/docker); do [[ $DOCKERFILE_NAME =~ 'amazon' ]] && ICON=':aws:' [[ $DOCKERFILE_NAME =~ 'ubuntu' ]] && ICON=':ubuntu:' [[ $DOCKERFILE_NAME =~ 'centos' ]] && ICON=':centos:' + continue for TEST_NAME in $SERIAL_TESTS; do cat < Date: Mon, 26 Aug 2019 11:30:26 -0400 Subject: [PATCH 345/528] package fixes for mac --- .cicd/pipeline.yml | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index d3a4d8835d5..5365ccf4a49 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -51,7 +51,7 @@ steps: - label: ":darwin: macOS 10.14 - Build" command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - "cd eos && ./.cicd/build.sh" - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" @@ -122,9 +122,9 @@ steps: - label: ":darwin: macOS 10.14 - Unit Tests" command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb" + - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: 10.14 - Build' && tar -xzf build.tar.gz" - "cd eos && ./.cicd/parallel-tests.sh" plugins: - chef/anka#v0.5.1: @@ -196,7 +196,7 @@ steps: - label: ":darwin: macOS 10.14 - Long-Running Tests" command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - "cd eos && ./.cicd/long-running-tests.sh" @@ -245,12 +245,9 @@ steps: - label: ":centos: CentOS 7.6 - Package Builder" command: - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package.sh" + - "./.cicd/package-builder.sh" env: - IMAGE_TAG: "centos-7.6" BUILDKITE_AGENT_ACCESS_TOKEN: - OS: "el7" # OS and PKGTYPE required for lambdas - PKGTYPE: "rpm" agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} @@ -259,12 +256,9 @@ steps: - label: ":ubuntu: Ubuntu 16.04 - Package Builder" command: - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package.sh" + - "./.cicd/package-builder.sh" env: - IMAGE_TAG: "ubuntu-16.04" BUILDKITE_AGENT_ACCESS_TOKEN: - OS: "ubuntu-16.04" # OS and PKGTYPE required for lambdas - PKGTYPE: "deb" agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} @@ -273,12 +267,9 @@ steps: - label: ":ubuntu: Ubuntu 18.04 - Package Builder" command: - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package.sh" + - "./.cicd/package-builder.sh" env: - IMAGE_TAG: "ubuntu-18.04" BUILDKITE_AGENT_ACCESS_TOKEN: - OS: "ubuntu-18.04" # OS and PKGTYPE required for lambdas - PKGTYPE: "deb" agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} @@ -288,7 +279,7 @@ steps: command: - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && ./.cicd/package.sh" + - "cd eos && ./.cicd/package-builder.sh" plugins: - chef/anka#v0.5.1: no-volume: true From 27410c9a4880628b8e46eb5a025344ccce5274b7 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Mon, 26 Aug 2019 14:45:29 -0400 Subject: [PATCH 346/528] mongo failure --- .cicd/docker/amazon_linux-2-pinned.dockerfile | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.cicd/docker/amazon_linux-2-pinned.dockerfile b/.cicd/docker/amazon_linux-2-pinned.dockerfile index 0e4b8fff805..429dc4f515e 100644 --- a/.cicd/docker/amazon_linux-2-pinned.dockerfile +++ b/.cicd/docker/amazon_linux-2-pinned.dockerfile @@ -17,12 +17,13 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ # build clang8 RUN cd /tmp && rm -rf clang8 && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && cd .. && cd ../../../../projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && cd ../ && cd /tmp/clang8 && mkdir build && cd build && cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=all -DCMAKE_BUILD_TYPE=Release .. && make -j8 && make install && rm -rf /tmp/clang8 RUN yum autoremove -y clang +COPY ./.cicd/helpers/clang.make /tmp/clang.cmake # build llvm RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ cd llvm && \ mkdir build && \ cd build && \ - cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ make -j$(nproc) && \ make install && \ cd / @@ -30,8 +31,8 @@ RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/l RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ tar -xjf boost_1_70_0.tar.bz2 && \ cd boost_1_70_0 && \ - ./bootstrap.sh --prefix=/usr/local && \ - ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ + ./bootstrap.sh --with-toolset=clang --prefix=/usr/local && \ + ./b2 toolset=clang cxxflags='-stdlib=libc++ -D__STRICT_ANSI__ -nostdinc++ -I/usr/local/include/c++/v1' linkflags='-stdlib=libc++' link=static threading=multi --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ cd .. && \ rm -f boost_1_70_0.tar.bz2 # build mongodb @@ -44,7 +45,7 @@ RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/ cd mongo-c-driver-1.13.0 && \ mkdir -p build && \ cd build && \ - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. && \ + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ make -j$(nproc) && \ make install && \ cd / && \ @@ -56,8 +57,8 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ cd build && \ - cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ - make -j$(nproc) && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' -DCMAKE_PREFIX_PATH='/usr/local' .. && \ + make -j$(nproc) VERBOSE=1 && \ make install && \ cd / && \ rm -f mongo-cxx-driver-r3.4.0.tar.gz From e6e5f5571849300dbb8c2ae536dce95455b60b51 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Mon, 26 Aug 2019 15:12:56 -0400 Subject: [PATCH 347/528] Test a2 pinned build. --- .cicd/docker/amazon_linux-2-pinned.dockerfile | 22 +- .cicd/pipeline.yml | 540 +++++++++--------- 2 files changed, 294 insertions(+), 268 deletions(-) diff --git a/.cicd/docker/amazon_linux-2-pinned.dockerfile b/.cicd/docker/amazon_linux-2-pinned.dockerfile index 0e4b8fff805..7f80b0dcc76 100644 --- a/.cicd/docker/amazon_linux-2-pinned.dockerfile +++ b/.cicd/docker/amazon_linux-2-pinned.dockerfile @@ -15,14 +15,28 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ cd .. && \ rm -f cmake-3.13.2.tar.gz # build clang8 -RUN cd /tmp && rm -rf clang8 && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && cd .. && cd ../../../../projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && cd ../ && cd /tmp/clang8 && mkdir build && cd build && cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=all -DCMAKE_BUILD_TYPE=Release .. && make -j8 && make install && rm -rf /tmp/clang8 +RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ + cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ + cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ + cd /clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ + mkdir /clang8/build && cd /clang8/build && \ + cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ + make -j $(nproc) && \ + make install && \ + cd / && \ + rm -rf /clang8 RUN yum autoremove -y clang # build llvm RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ cd llvm && \ mkdir build && \ cd build && \ - cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + cmake -G 'Unix Makefiles' -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER /usr/local/bin/clang++ -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ make -j$(nproc) && \ make install && \ cd / @@ -44,7 +58,7 @@ RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/ cd mongo-c-driver-1.13.0 && \ mkdir -p build && \ cd build && \ - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. && \ + cmake -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER /usr/local/bin/clang++ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. && \ make -j$(nproc) && \ make install && \ cd / && \ @@ -56,7 +70,7 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ cd build && \ - cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + cmake -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER /usr/local/bin/clang++ -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ make -j$(nproc) && \ make install && \ cd / && \ diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 5365ccf4a49..891b816b8ae 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -6,297 +6,309 @@ steps: - "./.cicd/build.sh" - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" env: - IMAGE_TAG: "amazon_linux-2" + IMAGE_TAG: "amazon_linux-2-pinned" BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} skip: $SKIP_AMAZON_LINUX_2 - - label: ":centos: CentOS 7.6 - Build" - command: - - "./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_CENTOS_7 +# - label: ":aws: Amazon_Linux 2 - Build" +# command: +# - "./.cicd/build.sh" +# - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" +# env: +# IMAGE_TAG: "amazon_linux-2" +# BUILDKITE_AGENT_ACCESS_TOKEN: +# agents: +# queue: "automation-eos-builder-fleet" +# timeout: ${TIMEOUT:-10} +# skip: $SKIP_AMAZON_LINUX_2 - - label: ":ubuntu: Ubuntu 16.04 - Build" - command: - - "./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_16 +# - label: ":centos: CentOS 7.6 - Build" +# command: +# - "./.cicd/build.sh" +# - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" +# env: +# IMAGE_TAG: "centos-7.6" +# BUILDKITE_AGENT_ACCESS_TOKEN: +# agents: +# queue: "automation-eos-builder-fleet" +# timeout: ${TIMEOUT:-10} +# skip: $SKIP_CENTOS_7 - - label: ":ubuntu: Ubuntu 18.04 - Build" - command: - - "./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_18 +# - label: ":ubuntu: Ubuntu 16.04 - Build" +# command: +# - "./.cicd/build.sh" +# - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" +# env: +# IMAGE_TAG: "ubuntu-16.04" +# BUILDKITE_AGENT_ACCESS_TOKEN: +# agents: +# queue: "automation-eos-builder-fleet" +# timeout: ${TIMEOUT:-10} +# skip: $SKIP_UBUNTU_16 - - label: ":darwin: macOS 10.14 - Build" - command: - - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && ./.cicd/build.sh" - - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - modify-cpu: 12 - modify-ram: 24 - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-large-node-fleet" - skip: $SKIP_MOJAVE +# - label: ":ubuntu: Ubuntu 18.04 - Build" +# command: +# - "./.cicd/build.sh" +# - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" +# env: +# IMAGE_TAG: "ubuntu-18.04" +# BUILDKITE_AGENT_ACCESS_TOKEN: +# agents: +# queue: "automation-eos-builder-fleet" +# timeout: ${TIMEOUT:-10} +# skip: $SKIP_UBUNTU_18 - - wait +# - label: ":darwin: macOS 10.14 - Build" +# command: +# - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" +# - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" +# - "cd eos && ./.cicd/build.sh" +# - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" +# plugins: +# - chef/anka#v0.5.1: +# no-volume: true +# inherit-environment-vars: true +# vm-name: 10.14.4_6C_14G_40G +# vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" +# modify-cpu: 12 +# modify-ram: 24 +# always-pull: true +# debug: true +# wait-network: true +# agents: +# - "queue=mac-anka-large-node-fleet" +# skip: $SKIP_MOJAVE - - label: ":aws: Amazon_Linux 2 - Unit Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - - "./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "amazon_linux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} +# - wait - - label: ":centos: CentOS 7.6 - Unit Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - - "./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} +# - label: ":aws: Amazon_Linux 2 - Unit Tests" +# command: +# - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" +# - "./.cicd/parallel-tests.sh" +# env: +# IMAGE_TAG: "amazon_linux-2" +# BUILDKITE_AGENT_ACCESS_TOKEN: +# agents: +# queue: "automation-eos-builder-fleet" +# timeout: ${TIMEOUT:-10} +# skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} - - label: ":ubuntu: Ubuntu 16.04 - Unit Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - - "./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} +# - label: ":centos: CentOS 7.6 - Unit Tests" +# command: +# - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" +# - "./.cicd/parallel-tests.sh" +# env: +# IMAGE_TAG: "centos-7.6" +# BUILDKITE_AGENT_ACCESS_TOKEN: +# agents: +# queue: "automation-eos-builder-fleet" +# timeout: ${TIMEOUT:-10} +# skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} - - label: ":ubuntu: Ubuntu 18.04 - Unit Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - - "./.cicd/parallel-tests.sh" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} +# - label: ":ubuntu: Ubuntu 16.04 - Unit Tests" +# command: +# - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" +# - "./.cicd/parallel-tests.sh" +# env: +# IMAGE_TAG: "ubuntu-16.04" +# BUILDKITE_AGENT_ACCESS_TOKEN: +# agents: +# queue: "automation-eos-builder-fleet" +# timeout: ${TIMEOUT:-10} +# skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} - - label: ":darwin: macOS 10.14 - Unit Tests" - command: - - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && ./.cicd/parallel-tests.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-node-fleet" - skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} +# - label: ":ubuntu: Ubuntu 18.04 - Unit Tests" +# command: +# - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" +# - "./.cicd/parallel-tests.sh" +# env: +# IMAGE_TAG: "ubuntu-18.04" +# BUILDKITE_AGENT_ACCESS_TOKEN: +# agents: +# queue: "automation-eos-builder-fleet" +# timeout: ${TIMEOUT:-10} +# skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} - - label: ":pipeline: Generate Serial Test Steps" - command: "./.cicd/generate-serial-tests.sh | buildkite-agent pipeline upload" - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_GENERATE_SERIAL_TESTS +# - label: ":darwin: macOS 10.14 - Unit Tests" +# command: +# - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" +# - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" +# - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: 10.14 - Build' && tar -xzf build.tar.gz" +# - "cd eos && ./.cicd/parallel-tests.sh" +# plugins: +# - chef/anka#v0.5.1: +# no-volume: true +# inherit-environment-vars: true +# vm-name: 10.14.4_6C_14G_40G +# vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" +# always-pull: true +# debug: true +# wait-network: true +# agents: +# - "queue=mac-anka-node-fleet" +# skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} - - label: ":aws: Amazon_Linux 2 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - - "./.cicd/long-running-tests.sh" - env: - IMAGE_TAG: "amazon_linux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_AMAZON_LINUX_2}${SKIP_LONG_RUNNING_TESTS:-true} +# - label: ":pipeline: Generate Serial Test Steps" +# command: "./.cicd/generate-serial-tests.sh | buildkite-agent pipeline upload" +# agents: +# queue: "automation-eos-builder-fleet" +# timeout: ${TIMEOUT:-10} +# skip: $SKIP_GENERATE_SERIAL_TESTS - - label: ":centos: CentOS 7.6 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - - "./.cicd/long-running-tests.sh" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_CENTOS_7}${SKIP_LONG_RUNNING_TESTS:-true} +# - label: ":aws: Amazon_Linux 2 - Long-Running Tests" +# command: +# - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" +# - "./.cicd/long-running-tests.sh" +# env: +# IMAGE_TAG: "amazon_linux-2" +# BUILDKITE_AGENT_ACCESS_TOKEN: +# agents: +# queue: "automation-eos-builder-fleet" +# timeout: ${TIMEOUT:-10} +# skip: ${SKIP_AMAZON_LINUX_2}${SKIP_LONG_RUNNING_TESTS:-true} - - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - - "./.cicd/long-running-tests.sh" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_16}${SKIP_LONG_RUNNING_TESTS:-true} +# - label: ":centos: CentOS 7.6 - Long-Running Tests" +# command: +# - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" +# - "./.cicd/long-running-tests.sh" +# env: +# IMAGE_TAG: "centos-7.6" +# BUILDKITE_AGENT_ACCESS_TOKEN: +# agents: +# queue: "automation-eos-builder-fleet" +# timeout: ${TIMEOUT:-10} +# skip: ${SKIP_CENTOS_7}${SKIP_LONG_RUNNING_TESTS:-true} - - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - - "./.cicd/long-running-tests.sh" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_18}${SKIP_LONG_RUNNING_TESTS:-true} +# - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" +# command: +# - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" +# - "./.cicd/long-running-tests.sh" +# env: +# IMAGE_TAG: "ubuntu-16.04" +# BUILDKITE_AGENT_ACCESS_TOKEN: +# agents: +# queue: "automation-eos-builder-fleet" +# timeout: ${TIMEOUT:-10} +# skip: ${SKIP_UBUNTU_16}${SKIP_LONG_RUNNING_TESTS:-true} - - label: ":darwin: macOS 10.14 - Long-Running Tests" - command: - - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && ./.cicd/long-running-tests.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - modify-cpu: 12 - modify-ram: 24 - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-large-node-fleet" - skip: ${SKIP_MOJAVE}${SKIP_LONG_RUNNING_TESTS:-true} +# - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" +# command: +# - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" +# - "./.cicd/long-running-tests.sh" +# env: +# IMAGE_TAG: "ubuntu-18.04" +# BUILDKITE_AGENT_ACCESS_TOKEN: +# agents: +# queue: "automation-eos-builder-fleet" +# timeout: ${TIMEOUT:-10} +# skip: ${SKIP_UBUNTU_18}${SKIP_LONG_RUNNING_TESTS:-true} - - wait: - continue_on_failure: true +# - label: ":darwin: macOS 10.14 - Long-Running Tests" +# command: +# - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" +# - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" +# - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" +# - "cd eos && ./.cicd/long-running-tests.sh" +# plugins: +# - chef/anka#v0.5.1: +# no-volume: true +# inherit-environment-vars: true +# vm-name: 10.14.4_6C_14G_40G +# vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" +# modify-cpu: 12 +# modify-ram: 24 +# always-pull: true +# debug: true +# wait-network: true +# agents: +# - "queue=mac-anka-large-node-fleet" +# skip: ${SKIP_MOJAVE}${SKIP_LONG_RUNNING_TESTS:-true} - - label: ":bar_chart: Test Metrics" - command: | - echo '+++ :compression: Extracting Test Metrics Code' - tar -zxf .cicd/metrics/test-metrics.tar.gz - echo '+++ :javascript: Running test-metrics.js' - node --max-old-space-size=32768 test-metrics.js - agents: - queue: "automation-eos-builder-fleet" - timeout: 10 - soft_fail: true +# - wait: +# continue_on_failure: true - - wait +# - label: ":bar_chart: Test Metrics" +# command: | +# echo '+++ :compression: Extracting Test Metrics Code' +# tar -zxf .cicd/metrics/test-metrics.tar.gz +# echo '+++ :javascript: Running test-metrics.js' +# node --max-old-space-size=32768 test-metrics.js +# agents: +# queue: "automation-eos-builder-fleet" +# timeout: 10 +# soft_fail: true - - label: ":ubuntu: Ubuntu 18.04 - Contract Builder" - command: - - "./.cicd/installation-build.sh" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_18}${SKIP_CONTRACT_BUILDER} +# - wait - - label: ":centos: CentOS 7.6 - Package Builder" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package-builder.sh" - env: - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_CENTOS_7}${SKIP_PACKAGE_BUILDER} +# - label: ":ubuntu: Ubuntu 18.04 - Contract Builder" +# command: +# - "./.cicd/installation-build.sh" +# env: +# IMAGE_TAG: "ubuntu-18.04" +# BUILDKITE_AGENT_ACCESS_TOKEN: +# agents: +# queue: "automation-eos-builder-fleet" +# timeout: ${TIMEOUT:-10} +# skip: ${SKIP_UBUNTU_18}${SKIP_CONTRACT_BUILDER} - - label: ":ubuntu: Ubuntu 16.04 - Package Builder" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package-builder.sh" - env: - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_16}${SKIP_PACKAGE_BUILDER} +# - label: ":centos: CentOS 7.6 - Package Builder" +# command: +# - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" +# - "./.cicd/package-builder.sh" +# env: +# BUILDKITE_AGENT_ACCESS_TOKEN: +# agents: +# queue: "automation-eos-builder-fleet" +# timeout: ${TIMEOUT:-10} +# skip: ${SKIP_CENTOS_7}${SKIP_PACKAGE_BUILDER} - - label: ":ubuntu: Ubuntu 18.04 - Package Builder" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package-builder.sh" - env: - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_18}${SKIP_PACKAGE_BUILDER} +# - label: ":ubuntu: Ubuntu 16.04 - Package Builder" +# command: +# - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" +# - "./.cicd/package-builder.sh" +# env: +# BUILDKITE_AGENT_ACCESS_TOKEN: +# agents: +# queue: "automation-eos-builder-fleet" +# timeout: ${TIMEOUT:-10} +# skip: ${SKIP_UBUNTU_16}${SKIP_PACKAGE_BUILDER} - - label: ":darwin: Mojave - Package Builder" - command: - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && ./.cicd/package-builder.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-node-fleet" - timeout: 10 - skip: ${SKIP_MOJAVE}${SKIP_PACKAGE_BUILDER} +# - label: ":ubuntu: Ubuntu 18.04 - Package Builder" +# command: +# - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" +# - "./.cicd/package-builder.sh" +# env: +# BUILDKITE_AGENT_ACCESS_TOKEN: +# agents: +# queue: "automation-eos-builder-fleet" +# timeout: ${TIMEOUT:-10} +# skip: ${SKIP_UBUNTU_18}${SKIP_PACKAGE_BUILDER} - - label: ":git: Git Submodule Regression Check" - command: - - "./.cicd/submodule-regression-checker.sh" - agents: - queue: "automation-basic-builder-fleet" - timeout: 5 \ No newline at end of file +# - label: ":darwin: Mojave - Package Builder" +# command: +# - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" +# - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" +# - "cd eos && ./.cicd/package-builder.sh" +# plugins: +# - chef/anka#v0.5.1: +# no-volume: true +# inherit-environment-vars: true +# vm-name: 10.14.4_6C_14G_40G +# vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" +# always-pull: true +# debug: true +# wait-network: true +# agents: +# - "queue=mac-anka-node-fleet" +# timeout: 10 +# skip: ${SKIP_MOJAVE}${SKIP_PACKAGE_BUILDER} + +# - label: ":git: Git Submodule Regression Check" +# command: +# - "./.cicd/submodule-regression-checker.sh" +# agents: +# queue: "automation-basic-builder-fleet" +# timeout: 5 \ No newline at end of file From efcc637c4381a0574b9a0b9bb966d6a72dbd0969 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Mon, 26 Aug 2019 15:28:02 -0400 Subject: [PATCH 348/528] Test a2 pinned build. --- .cicd/docker/amazon_linux-2-pinned.dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.cicd/docker/amazon_linux-2-pinned.dockerfile b/.cicd/docker/amazon_linux-2-pinned.dockerfile index 573a1a196d1..0bbe60ba3d5 100644 --- a/.cicd/docker/amazon_linux-2-pinned.dockerfile +++ b/.cicd/docker/amazon_linux-2-pinned.dockerfile @@ -37,7 +37,7 @@ RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/l cd llvm && \ mkdir build && \ cd build && \ - cmake -G 'Unix Makefiles' -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER /usr/local/bin/clang++ -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + cmake -G 'Unix Makefiles' -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ make -j$(nproc) && \ make install && \ cd / @@ -59,7 +59,7 @@ RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/ cd mongo-c-driver-1.13.0 && \ mkdir -p build && \ cd build && \ - cmake -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER /usr/local/bin/clang++ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. && \ + cmake -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. && \ make -j$(nproc) && \ make install && \ cd / && \ @@ -71,7 +71,7 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ cd build && \ - cmake -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER /usr/local/bin/clang++ -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + cmake -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ make -j$(nproc) && \ make install && \ cd / && \ From a076d126f6b283ca7f3d02fe523197a655cabc7a Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Mon, 26 Aug 2019 15:32:27 -0400 Subject: [PATCH 349/528] Updated more pinned dockerfiles. --- .cicd/docker/centos-7.6-pinned.dockerfile | 22 +++++++++++++++++---- .cicd/docker/ubuntu-18.04-pinned.dockerfile | 20 ++++++++++++++++--- 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/.cicd/docker/centos-7.6-pinned.dockerfile b/.cicd/docker/centos-7.6-pinned.dockerfile index 764442685ff..66d9106d9d9 100644 --- a/.cicd/docker/centos-7.6-pinned.dockerfile +++ b/.cicd/docker/centos-7.6-pinned.dockerfile @@ -19,13 +19,27 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ cd .. && \ rm -f cmake-3.13.2.tar.gz # build clang8 -RUN cd /tmp && rm -rf clang8 && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && cd .. && cd ../../../../projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && cd ../ && cd /tmp/clang8 && mkdir build && cd build && cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=all -DCMAKE_BUILD_TYPE=Release .. && make -j8 && make install && rm -rf /tmp/clang8 +RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ + cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ + cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ + cd /clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ + mkdir /clang8/build && cd /clang8/build && \ + cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ + make -j $(nproc) && \ + make install && \ + cd / && \ + rm -rf /clang8 # build llvm RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ cd llvm && \ mkdir build && \ cd build && \ - cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + cmake -G 'Unix Makefiles' -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ make -j$(nproc) && \ make install && \ cd / @@ -47,7 +61,7 @@ RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/ cd mongo-c-driver-1.13.0 && \ mkdir -p build && \ cd build && \ - cmake --DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. && \ + cmake -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. && \ make -j$(nproc) && \ make install && \ cd / && \ @@ -59,7 +73,7 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o sed -i 's/\"maxAwaitTimeMS\", ount/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ cd build && \ - cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + cmake -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ make -j$(nproc) && \ make install && \ cd / && \ diff --git a/.cicd/docker/ubuntu-18.04-pinned.dockerfile b/.cicd/docker/ubuntu-18.04-pinned.dockerfile index 0115770b84d..af4a6458eb5 100644 --- a/.cicd/docker/ubuntu-18.04-pinned.dockerfile +++ b/.cicd/docker/ubuntu-18.04-pinned.dockerfile @@ -16,7 +16,21 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ cd .. && \ rm -f cmake-3.13.2.tar.gz # build clang8 -RUN cd /tmp && rm -rf clang8 && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && cd .. && cd ../../../../projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && cd ../ && cd /tmp/clang8 && mkdir build && cd build && cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=all -DCMAKE_BUILD_TYPE=Release .. && make -j8 && make install && rm -rf /tmp/clang8 +RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ + cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ + cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ + cd /clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ + mkdir /clang8/build && cd /clang8/build && \ + cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ + make -j $(nproc) && \ + make install && \ + cd / && \ + rm -rf /clang8 RUN apt autoremove -y clang gcc g++ # build boost RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ @@ -36,7 +50,7 @@ RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/ cd mongo-c-driver-1.13.0 && \ mkdir -p build && \ cd build && \ - cmake --DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON .. && \ + cmake -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON .. && \ make -j$(nproc) && \ make install && \ cd / && \ @@ -48,7 +62,7 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ cd build && \ - cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + cmake -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ make -j$(nproc) && \ make install && \ cd / && \ From 639dd88f8d89c807a1b1d36a72ff4692d4e2812b Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Mon, 26 Aug 2019 15:56:14 -0400 Subject: [PATCH 350/528] Test pinned C7 and U18. --- .cicd/pipeline.yml | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 891b816b8ae..d544d3371dd 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,17 +1,29 @@ steps: - wait - - label: ":aws: Amazon_Linux 2 - Build" + - label: ":centos: CentOS 7.6 - Build" + command: + - "./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "centos-7.6-pinned" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_CENTOS_7 + + - label: ":ubuntu: Ubuntu 18.04 - Build" command: - "./.cicd/build.sh" - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" env: - IMAGE_TAG: "amazon_linux-2-pinned" + IMAGE_TAG: "ubuntu-18.04-pinned" BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_AMAZON_LINUX_2 + skip: $SKIP_UBUNTU_18 # - label: ":aws: Amazon_Linux 2 - Build" # command: @@ -63,7 +75,7 @@ steps: # - label: ":darwin: macOS 10.14 - Build" # command: -# - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" +# "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" # - "cd eos && ./.cicd/build.sh" # - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" From db6157c3347eb90663cd4aea4c25327eb9d8f357 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Mon, 26 Aug 2019 16:17:03 -0400 Subject: [PATCH 351/528] C7 needs devtoolset to create clang. --- .cicd/docker/centos-7.6-pinned.dockerfile | 2 ++ .cicd/pipeline.yml | 22 +++++++++++----------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.cicd/docker/centos-7.6-pinned.dockerfile b/.cicd/docker/centos-7.6-pinned.dockerfile index 66d9106d9d9..cdaf7a8d1b3 100644 --- a/.cicd/docker/centos-7.6-pinned.dockerfile +++ b/.cicd/docker/centos-7.6-pinned.dockerfile @@ -29,6 +29,8 @@ RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm. cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ mkdir /clang8/build && cd /clang8/build && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/enable && \ cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ make -j $(nproc) && \ make install && \ diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index d544d3371dd..bebedd3d45f 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -13,17 +13,17 @@ steps: timeout: ${TIMEOUT:-10} skip: $SKIP_CENTOS_7 - - label: ":ubuntu: Ubuntu 18.04 - Build" - command: - - "./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "ubuntu-18.04-pinned" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_18 + # - label: ":ubuntu: Ubuntu 18.04 - Build" + # command: + # - "./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "ubuntu-18.04-pinned" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_18 # - label: ":aws: Amazon_Linux 2 - Build" # command: From 5b2866915b36cb6fcb52cf85086cf3bacdb6a77b Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Mon, 26 Aug 2019 16:47:52 -0400 Subject: [PATCH 352/528] Default pipeline is pinned. Made unpinned the outlier dockerfiles. --- .cicd/docker/amazon_linux-2-pinned.dockerfile | 83 ------------------- .../docker/amazon_linux-2-unpinned.dockerfile | 65 +++++++++++++++ .cicd/docker/amazon_linux-2.dockerfile | 30 +++++-- ...kerfile => centos-7.6-unpinned.dockerfile} | 32 +++---- .cicd/docker/centos-7.6.dockerfile | 37 ++++++--- ...rfile => ubuntu-18.04-unpinned.dockerfile} | 21 +---- .cicd/docker/ubuntu-18.04.dockerfile | 37 +++++++-- 7 files changed, 158 insertions(+), 147 deletions(-) delete mode 100644 .cicd/docker/amazon_linux-2-pinned.dockerfile create mode 100644 .cicd/docker/amazon_linux-2-unpinned.dockerfile rename .cicd/docker/{centos-7.6-pinned.dockerfile => centos-7.6-unpinned.dockerfile} (55%) rename .cicd/docker/{ubuntu-18.04-pinned.dockerfile => ubuntu-18.04-unpinned.dockerfile} (51%) diff --git a/.cicd/docker/amazon_linux-2-pinned.dockerfile b/.cicd/docker/amazon_linux-2-pinned.dockerfile deleted file mode 100644 index 0bbe60ba3d5..00000000000 --- a/.cicd/docker/amazon_linux-2-pinned.dockerfile +++ /dev/null @@ -1,83 +0,0 @@ -FROM amazonlinux:2.0.20190508 -# install dependencies. -RUN yum update -y && \ - yum install -y which git sudo procps-ng util-linux autoconf automake \ - libtool make bzip2 bzip2-devel openssl-devel gmp-devel libstdc++ libcurl-devel \ - libusbx-devel python3 python3-devel python-devel libedit-devel doxygen \ - graphviz clang -# build cmake. -RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ - tar -xzf cmake-3.13.2.tar.gz && \ - cd cmake-3.13.2 && \ - ./bootstrap --prefix=/usr/local && \ - make -j$(nproc) && \ - make install && \ - cd .. && \ - rm -f cmake-3.13.2.tar.gz -# build clang8 -RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ - cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ - cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ - cd /clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ - mkdir /clang8/build && cd /clang8/build && \ - cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ - make -j $(nproc) && \ - make install && \ - cd / && \ - rm -rf /clang8 -RUN yum autoremove -y clang -COPY ./.cicd/helpers/clang.make /tmp/clang.cmake -# build llvm -RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ - cd llvm && \ - mkdir build && \ - cd build && \ - cmake -G 'Unix Makefiles' -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ - make -j$(nproc) && \ - make install && \ - cd / -# build boost -RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ - tar -xjf boost_1_70_0.tar.bz2 && \ - cd boost_1_70_0 && \ - ./bootstrap.sh --with-toolset=clang --prefix=/usr/local && \ - ./b2 toolset=clang cxxflags='-stdlib=libc++ -D__STRICT_ANSI__ -nostdinc++ -I/usr/local/include/c++/v1' linkflags='-stdlib=libc++' link=static threading=multi --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ - cd .. && \ - rm -f boost_1_70_0.tar.bz2 -# build mongodb -RUN curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz && \ - tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz && \ - rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz -# build mongodb c driver -RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ - tar -xzf mongo-c-driver-1.13.0.tar.gz && \ - cd mongo-c-driver-1.13.0 && \ - mkdir -p build && \ - cd build && \ - cmake -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. && \ - make -j$(nproc) && \ - make install && \ - cd / && \ - rm -rf mongo-c-driver-1.13.0.tar.gz -# build mongodb cxx driver -RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ - tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ - cd mongo-cxx-driver-r3.4.0 && \ - sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ - sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ - cd build && \ - cmake -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ - make -j$(nproc) && \ - make install && \ - cd / && \ - rm -f mongo-cxx-driver-r3.4.0.tar.gz -# add mongodb to path -ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin -# install ccache -RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm && \ - yum install -y ccache-3.3.4-1.el7.x86_64.rpm \ No newline at end of file diff --git a/.cicd/docker/amazon_linux-2-unpinned.dockerfile b/.cicd/docker/amazon_linux-2-unpinned.dockerfile new file mode 100644 index 00000000000..ab7c5a726be --- /dev/null +++ b/.cicd/docker/amazon_linux-2-unpinned.dockerfile @@ -0,0 +1,65 @@ +FROM amazonlinux:2.0.20190508 +# install dependencies. +RUN yum update -y && \ + yum install -y which git sudo procps-ng util-linux autoconf automake \ + libtool make bzip2 bzip2-devel openssl-devel gmp-devel libstdc++ libcurl-devel \ + libusbx-devel python3 python3-devel python-devel libedit-devel doxygen \ + graphviz clang patch +# build cmake. +RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ + tar -xzf cmake-3.13.2.tar.gz && \ + cd cmake-3.13.2 && \ + ./bootstrap --prefix=/usr/local && \ + make -j$(nproc) && \ + make install && \ + cd .. && \ + rm -f cmake-3.13.2.tar.gz +# build llvm +RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ + cd llvm && \ + mkdir build && \ + cd build && \ + cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + make -j$(nproc) && \ + make install && \ + cd / +# build boost +RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ + tar -xjf boost_1_70_0.tar.bz2 && \ + cd boost_1_70_0 && \ + ./bootstrap.sh --prefix=/usr/local && \ + ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ + cd .. && \ + rm -f boost_1_70_0.tar.bz2 +# build mongodb +RUN curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz && \ + tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz && \ + rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz +# build mongodb c driver +RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ + tar -xzf mongo-c-driver-1.13.0.tar.gz && \ + cd mongo-c-driver-1.13.0 && \ + mkdir -p build && \ + cd build && \ + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. && \ + make -j$(nproc) && \ + make install && \ + cd / && \ + rm -rf mongo-c-driver-1.13.0.tar.gz +# build mongodb cxx driver +RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ + tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ + cd mongo-cxx-driver-r3.4.0 && \ + sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ + sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ + cd build && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + make -j$(nproc) && \ + make install && \ + cd / && \ + rm -f mongo-cxx-driver-r3.4.0.tar.gz +# add mongodb to path +ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin +# install ccache +RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm && \ + yum install -y ccache-3.3.4-1.el7.x86_64.rpm \ No newline at end of file diff --git a/.cicd/docker/amazon_linux-2.dockerfile b/.cicd/docker/amazon_linux-2.dockerfile index ab7c5a726be..b7e1b78e54f 100644 --- a/.cicd/docker/amazon_linux-2.dockerfile +++ b/.cicd/docker/amazon_linux-2.dockerfile @@ -4,7 +4,7 @@ RUN yum update -y && \ yum install -y which git sudo procps-ng util-linux autoconf automake \ libtool make bzip2 bzip2-devel openssl-devel gmp-devel libstdc++ libcurl-devel \ libusbx-devel python3 python3-devel python-devel libedit-devel doxygen \ - graphviz clang patch + graphviz patch gcc gcc-c++ # build cmake. RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ tar -xzf cmake-3.13.2.tar.gz && \ @@ -14,12 +14,30 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ make install && \ cd .. && \ rm -f cmake-3.13.2.tar.gz +# build clang8 +RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ + cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ + cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ + cd /clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ + mkdir /clang8/build && cd /clang8/build && \ + cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ + make -j $(nproc) && \ + make install && \ + cd / && \ + rm -rf /clang8 +RUN yum autoremove -y gcc gcc-c++ +COPY ./.cicd/helpers/clang.make /tmp/clang.cmake # build llvm RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ cd llvm && \ mkdir build && \ cd build && \ - cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ make -j$(nproc) && \ make install && \ cd / @@ -27,8 +45,8 @@ RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/l RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ tar -xjf boost_1_70_0.tar.bz2 && \ cd boost_1_70_0 && \ - ./bootstrap.sh --prefix=/usr/local && \ - ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ + ./bootstrap.sh --with-toolset=clang --prefix=/usr/local && \ + ./b2 toolset=clang cxxflags='-stdlib=libc++ -D__STRICT_ANSI__ -nostdinc++ -I/usr/local/include/c++/v1' linkflags='-stdlib=libc++' link=static threading=multi --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ cd .. && \ rm -f boost_1_70_0.tar.bz2 # build mongodb @@ -41,7 +59,7 @@ RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/ cd mongo-c-driver-1.13.0 && \ mkdir -p build && \ cd build && \ - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. && \ + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ make -j$(nproc) && \ make install && \ cd / && \ @@ -53,7 +71,7 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ cd build && \ - cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ make -j$(nproc) && \ make install && \ cd / && \ diff --git a/.cicd/docker/centos-7.6-pinned.dockerfile b/.cicd/docker/centos-7.6-unpinned.dockerfile similarity index 55% rename from .cicd/docker/centos-7.6-pinned.dockerfile rename to .cicd/docker/centos-7.6-unpinned.dockerfile index cdaf7a8d1b3..bf932e10889 100644 --- a/.cicd/docker/centos-7.6-pinned.dockerfile +++ b/.cicd/docker/centos-7.6-unpinned.dockerfile @@ -18,35 +18,21 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ make install && \ cd .. && \ rm -f cmake-3.13.2.tar.gz -# build clang8 -RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ - cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ - cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ - cd /clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ - mkdir /clang8/build && cd /clang8/build && \ - source /opt/rh/devtoolset-8/enable && \ - source /opt/rh/rh-python36/enable && \ - cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ - make -j $(nproc) && \ - make install && \ - cd / && \ - rm -rf /clang8 # build llvm RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/enable && \ cd llvm && \ mkdir build && \ cd build && \ - cmake -G 'Unix Makefiles' -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ make -j$(nproc) && \ make install && \ cd / # build boost RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/enable && \ tar -xjf boost_1_70_0.tar.bz2 && \ cd boost_1_70_0 && \ ./bootstrap.sh --prefix=/usr/local && \ @@ -59,23 +45,27 @@ RUN curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3. rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz # build mongodb c driver RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/enable && \ tar -xzf mongo-c-driver-1.13.0.tar.gz && \ cd mongo-c-driver-1.13.0 && \ mkdir -p build && \ cd build && \ - cmake -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. && \ + cmake --DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. && \ make -j$(nproc) && \ make install && \ cd / && \ rm -rf mongo-c-driver-1.13.0.tar.gz # build mongodb cxx driver RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/enable && \ tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ cd mongo-cxx-driver-r3.4.0 && \ sed -i 's/\"maxAwaitTimeMS\", ount/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ cd build && \ - cmake -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ make -j$(nproc) && \ make install && \ cd / && \ diff --git a/.cicd/docker/centos-7.6.dockerfile b/.cicd/docker/centos-7.6.dockerfile index bf932e10889..8c1b4be0359 100644 --- a/.cicd/docker/centos-7.6.dockerfile +++ b/.cicd/docker/centos-7.6.dockerfile @@ -18,25 +18,40 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ make install && \ cd .. && \ rm -f cmake-3.13.2.tar.gz -# build llvm -RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ +# build clang8 +RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ + cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ + cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ + cd /clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ + mkdir /clang8/build && cd /clang8/build && \ source /opt/rh/devtoolset-8/enable && \ source /opt/rh/rh-python36/enable && \ + cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ + make -j $(nproc) && \ + make install && \ + cd / && \ + rm -rf /clang8 +COPY ./.cicd/helpers/clang.make /tmp/clang.cmake +# build llvm +RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ cd llvm && \ mkdir build && \ cd build && \ - cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ make -j$(nproc) && \ make install && \ cd / # build boost RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ - source /opt/rh/devtoolset-8/enable && \ - source /opt/rh/rh-python36/enable && \ tar -xjf boost_1_70_0.tar.bz2 && \ cd boost_1_70_0 && \ - ./bootstrap.sh --prefix=/usr/local && \ - ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ + ./bootstrap.sh --with-toolset=clang --prefix=/usr/local && \ + ./b2 toolset=clang cxxflags='-stdlib=libc++ -D__STRICT_ANSI__ -nostdinc++ -I/usr/local/include/c++/v1' linkflags='-stdlib=libc++' link=static threading=multi --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ cd .. && \ rm -f boost_1_70_0.tar.bz2 # build mongodb @@ -45,27 +60,23 @@ RUN curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3. rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz # build mongodb c driver RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ - source /opt/rh/devtoolset-8/enable && \ - source /opt/rh/rh-python36/enable && \ tar -xzf mongo-c-driver-1.13.0.tar.gz && \ cd mongo-c-driver-1.13.0 && \ mkdir -p build && \ cd build && \ - cmake --DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. && \ + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ make -j$(nproc) && \ make install && \ cd / && \ rm -rf mongo-c-driver-1.13.0.tar.gz # build mongodb cxx driver RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ - source /opt/rh/devtoolset-8/enable && \ - source /opt/rh/rh-python36/enable && \ tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ cd mongo-cxx-driver-r3.4.0 && \ sed -i 's/\"maxAwaitTimeMS\", ount/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ cd build && \ - cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ make -j$(nproc) && \ make install && \ cd / && \ diff --git a/.cicd/docker/ubuntu-18.04-pinned.dockerfile b/.cicd/docker/ubuntu-18.04-unpinned.dockerfile similarity index 51% rename from .cicd/docker/ubuntu-18.04-pinned.dockerfile rename to .cicd/docker/ubuntu-18.04-unpinned.dockerfile index af4a6458eb5..aaee7a0c238 100644 --- a/.cicd/docker/ubuntu-18.04-pinned.dockerfile +++ b/.cicd/docker/ubuntu-18.04-unpinned.dockerfile @@ -15,23 +15,6 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ make install && \ cd .. && \ rm -f cmake-3.13.2.tar.gz -# build clang8 -RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ - cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ - cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ - cd /clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ - mkdir /clang8/build && cd /clang8/build && \ - cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ - make -j $(nproc) && \ - make install && \ - cd / && \ - rm -rf /clang8 -RUN apt autoremove -y clang gcc g++ # build boost RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ tar -xjf boost_1_70_0.tar.bz2 && \ @@ -50,7 +33,7 @@ RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/ cd mongo-c-driver-1.13.0 && \ mkdir -p build && \ cd build && \ - cmake -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON .. && \ + cmake --DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON .. && \ make -j$(nproc) && \ make install && \ cd / && \ @@ -62,7 +45,7 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ cd build && \ - cmake -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ make -j$(nproc) && \ make install && \ cd / && \ diff --git a/.cicd/docker/ubuntu-18.04.dockerfile b/.cicd/docker/ubuntu-18.04.dockerfile index aaee7a0c238..14118802f29 100644 --- a/.cicd/docker/ubuntu-18.04.dockerfile +++ b/.cicd/docker/ubuntu-18.04.dockerfile @@ -5,7 +5,7 @@ RUN apt-get update && apt-get upgrade -y && \ bzip2 automake libbz2-dev libssl-dev doxygen graphviz libgmp3-dev \ autotools-dev libicu-dev python2.7 python2.7-dev python3 python3-dev \ autoconf libtool g++ gcc curl zlib1g-dev sudo ruby libusb-1.0-0-dev \ - libcurl4-gnutls-dev pkg-config patch llvm-4.0 clang ccache + libcurl4-gnutls-dev pkg-config patch ccache # build cmake. RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ tar -xzf cmake-3.13.2.tar.gz && \ @@ -15,12 +15,39 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ make install && \ cd .. && \ rm -f cmake-3.13.2.tar.gz +# build clang8 +RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ + cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ + cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ + cd /clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ + mkdir /clang8/build && cd /clang8/build && \ + cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ + make -j $(nproc) && \ + make install && \ + cd / && \ + rm -rf /clang8 +RUN apt autoremove -y gcc g++ +COPY ./.cicd/helpers/clang.make /tmp/clang.cmake +# build llvm +RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ + cd llvm && \ + mkdir build && \ + cd build && \ + cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ + make -j$(nproc) && \ + make install && \ + cd / # build boost RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ tar -xjf boost_1_70_0.tar.bz2 && \ cd boost_1_70_0 && \ - ./bootstrap.sh --prefix=/usr/local && \ - ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -j$(nproc) install && \ + ./bootstrap.sh --with-toolset=clang --prefix=/usr/local && \ + ./b2 toolset=clang cxxflags='-stdlib=libc++ -D__STRICT_ANSI__ -nostdinc++ -I/usr/local/include/c++/v1' linkflags='-stdlib=libc++' link=static threading=multi --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ cd .. && \ rm -f boost_1_70_0.tar.bz2 # build mongodb @@ -33,7 +60,7 @@ RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/ cd mongo-c-driver-1.13.0 && \ mkdir -p build && \ cd build && \ - cmake --DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON .. && \ + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ make -j$(nproc) && \ make install && \ cd / && \ @@ -45,7 +72,7 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ cd build && \ - cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ make -j$(nproc) && \ make install && \ cd / && \ From d61046f15994d72fc9f29fc801f0b10d92203792 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Mon, 26 Aug 2019 16:48:06 -0400 Subject: [PATCH 353/528] Continue on unpinned dockerfiles. --- .cicd/generate-serial-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index 4eb9b9420e4..84fd216fd48 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -7,7 +7,7 @@ SERIAL_TESTS=$(cat tests/CMakeLists.txt | grep nonparallelizable_tests | awk -F" # Use dockerfiles as source of truth for what platforms to use ## Linux for DOCKERFILE in $(ls $CICD_DIR/docker); do - [[ $DOCKERFILE =~ 'pinned' ]] && continue + [[ $DOCKERFILE =~ 'unpinned' ]] && continue DOCKERFILE_NAME=$(echo $DOCKERFILE | awk -F'.dockerfile' '{ print $1 }') PLATFORM_NAME=$(echo $DOCKERFILE_NAME | cut -d- -f1 | sed 's/os/OS/g') PLATFORM_NAME_UPCASE=$(echo $PLATFORM_NAME | tr a-z A-Z) From 916d88debe0b2ffb87207b8f61c19c2b46a3448f Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Mon, 26 Aug 2019 16:50:33 -0400 Subject: [PATCH 354/528] Attempting full build due to dockerfile rename. --- .cicd/pipeline.yml | 130 +++++++++++++++++++++++++-------------------- 1 file changed, 71 insertions(+), 59 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index bebedd3d45f..40a25adb35d 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,77 +1,53 @@ steps: - wait + - label: ":aws: Amazon_Linux 2 - Build" + command: + - "./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "amazon_linux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_AMAZON_LINUX_2 + - label: ":centos: CentOS 7.6 - Build" command: - "./.cicd/build.sh" - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" env: - IMAGE_TAG: "centos-7.6-pinned" + IMAGE_TAG: "centos-7.6" BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} skip: $SKIP_CENTOS_7 - # - label: ":ubuntu: Ubuntu 18.04 - Build" - # command: - # - "./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "ubuntu-18.04-pinned" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_18 - -# - label: ":aws: Amazon_Linux 2 - Build" -# command: -# - "./.cicd/build.sh" -# - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" -# env: -# IMAGE_TAG: "amazon_linux-2" -# BUILDKITE_AGENT_ACCESS_TOKEN: -# agents: -# queue: "automation-eos-builder-fleet" -# timeout: ${TIMEOUT:-10} -# skip: $SKIP_AMAZON_LINUX_2 - -# - label: ":centos: CentOS 7.6 - Build" -# command: -# - "./.cicd/build.sh" -# - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" -# env: -# IMAGE_TAG: "centos-7.6" -# BUILDKITE_AGENT_ACCESS_TOKEN: -# agents: -# queue: "automation-eos-builder-fleet" -# timeout: ${TIMEOUT:-10} -# skip: $SKIP_CENTOS_7 - -# - label: ":ubuntu: Ubuntu 16.04 - Build" -# command: -# - "./.cicd/build.sh" -# - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" -# env: -# IMAGE_TAG: "ubuntu-16.04" -# BUILDKITE_AGENT_ACCESS_TOKEN: -# agents: -# queue: "automation-eos-builder-fleet" -# timeout: ${TIMEOUT:-10} -# skip: $SKIP_UBUNTU_16 + - label: ":ubuntu: Ubuntu 16.04 - Build" + command: + - "./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 -# - label: ":ubuntu: Ubuntu 18.04 - Build" -# command: -# - "./.cicd/build.sh" -# - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" -# env: -# IMAGE_TAG: "ubuntu-18.04" -# BUILDKITE_AGENT_ACCESS_TOKEN: -# agents: -# queue: "automation-eos-builder-fleet" -# timeout: ${TIMEOUT:-10} -# skip: $SKIP_UBUNTU_18 + - label: ":ubuntu: Ubuntu 18.04 - Build" + command: + - "./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 # - label: ":darwin: macOS 10.14 - Build" # command: @@ -94,6 +70,42 @@ steps: # - "queue=mac-anka-large-node-fleet" # skip: $SKIP_MOJAVE + - label: ":aws: Amazon_Linux 2 - Build Unpinned" + command: + - "./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "amazon_linux-2-unpinned" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_AMAZON_LINUX_2 + + - label: ":centos: CentOS 7.6 - Build Unpinned" + command: + - "./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "centos-7.6-unpinned" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_CENTOS_7 + + - label: ":ubuntu: Ubuntu 18.04 - Build Unpinned" + command: + - "./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-18.04-unpinned" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 + # - wait # - label: ":aws: Amazon_Linux 2 - Unit Tests" From 1c74e6f6614b9dd47436ccfb979bf8e6b210e47e Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Mon, 26 Aug 2019 18:37:18 -0400 Subject: [PATCH 355/528] Keep gcc packages for deps, but still force pinned builds. --- .cicd/docker/amazon_linux-2.dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.cicd/docker/amazon_linux-2.dockerfile b/.cicd/docker/amazon_linux-2.dockerfile index b7e1b78e54f..d0d1c1dc763 100644 --- a/.cicd/docker/amazon_linux-2.dockerfile +++ b/.cicd/docker/amazon_linux-2.dockerfile @@ -30,14 +30,13 @@ RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm. make install && \ cd / && \ rm -rf /clang8 -RUN yum autoremove -y gcc gcc-c++ COPY ./.cicd/helpers/clang.make /tmp/clang.cmake # build llvm RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ cd llvm && \ mkdir build && \ cd build && \ - cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ + cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ make -j$(nproc) && \ make install && \ cd / From 8be947ac178ec1c3fddc1958a295d76821cffa70 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Mon, 26 Aug 2019 18:37:41 -0400 Subject: [PATCH 356/528] Keep gcc packages for deps, but still force pinned builds. --- .cicd/docker/ubuntu-18.04.dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/.cicd/docker/ubuntu-18.04.dockerfile b/.cicd/docker/ubuntu-18.04.dockerfile index 14118802f29..1120c9d5a00 100644 --- a/.cicd/docker/ubuntu-18.04.dockerfile +++ b/.cicd/docker/ubuntu-18.04.dockerfile @@ -31,7 +31,6 @@ RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm. make install && \ cd / && \ rm -rf /clang8 -RUN apt autoremove -y gcc g++ COPY ./.cicd/helpers/clang.make /tmp/clang.cmake # build llvm RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ From 5dea9cb2729a033239271dc30ec033772a8012d9 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Mon, 26 Aug 2019 18:37:57 -0400 Subject: [PATCH 357/528] Adjust settings for unpinned builds. --- .cicd/build.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index efc38a0b8bc..6bcd53b37aa 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -21,17 +21,17 @@ else # Linux PRE_COMMANDS="cd $MOUNTED_DIR/build" # PRE_COMMANDS: Executed pre-cmake # CMAKE_EXTRAS: Executed within and right before the cmake path (cmake CMAKE_EXTRAS ..) - if [[ $IMAGE_TAG == 'ubuntu-18.04' ]]; then - PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" - CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' -DCMAKE_BUILD_TYPE='Release'" - elif [[ $IMAGE_TAG == 'ubuntu-16.04' ]]; then + if [[ $IMAGE_TAG == 'ubuntu-16.04' ]]; then PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$MOUNTED_DIR/.cicd/helpers/clang.make -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" - elif [[ $IMAGE_TAG == 'centos-7.6' ]]; then - PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:\\\$PATH" - elif [[ $IMAGE_TAG == 'amazon_linux-2' ]]; then + elif [[ $IMAGE_TAG == 'amazon_linux-2-unpinned' ]]; then PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib64/ccache:\\\$PATH" CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" + elif [[ $IMAGE_TAG == 'centos-7.6-unpinned' ]]; then + PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:\\\$PATH" + elif [[ $IMAGE_TAG == 'ubuntu-18.04-unpinned' ]]; then + PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" + CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' -DCMAKE_BUILD_TYPE='Release'" fi BUILD_COMMANDS="cmake $CMAKE_EXTRAS -DBUILD_MONGO_DB_PLUGIN=true .. && make -j$JOBS" From 1785405446e146999e56ab0371d6ec24a058ff06 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 09:08:20 -0400 Subject: [PATCH 358/528] New logic for setting CMAKE_EXTRAS. --- .cicd/build.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index 6bcd53b37aa..101500541bd 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -21,9 +21,10 @@ else # Linux PRE_COMMANDS="cd $MOUNTED_DIR/build" # PRE_COMMANDS: Executed pre-cmake # CMAKE_EXTRAS: Executed within and right before the cmake path (cmake CMAKE_EXTRAS ..) - if [[ $IMAGE_TAG == 'ubuntu-16.04' ]]; then - PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" + if [[ ! $IMAGE_TAG =~ 'unpinned' ]]; then CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$MOUNTED_DIR/.cicd/helpers/clang.make -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" + elif [[ $IMAGE_TAG =~ 'ubuntu-16.04' ]]; then + PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" elif [[ $IMAGE_TAG == 'amazon_linux-2-unpinned' ]]; then PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib64/ccache:\\\$PATH" CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" From 98bbd2602fc64e2501517a21cc222d8ead21ce4c Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 09:36:35 -0400 Subject: [PATCH 359/528] Pinned C7 may need patch. --- .cicd/docker/centos-7.6.dockerfile | 4 +- .cicd/helpers/clang-devtoolset8-support.patch | 55 +++++++++++++++++++ 2 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 .cicd/helpers/clang-devtoolset8-support.patch diff --git a/.cicd/docker/centos-7.6.dockerfile b/.cicd/docker/centos-7.6.dockerfile index 8c1b4be0359..171aabc4f21 100644 --- a/.cicd/docker/centos-7.6.dockerfile +++ b/.cicd/docker/centos-7.6.dockerfile @@ -18,19 +18,19 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ make install && \ cd .. && \ rm -f cmake-3.13.2.tar.gz +COPY ./.cicd/helpers/clang-devtoolset8-support.patch /tmp/clang-devtoolset8-support.patch # build clang8 RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ + cd ../ && patch -p2 < /tmp/clang-devtoolset8-support.patch && \ cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ cd /clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ mkdir /clang8/build && cd /clang8/build && \ - source /opt/rh/devtoolset-8/enable && \ - source /opt/rh/rh-python36/enable && \ cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ make -j $(nproc) && \ make install && \ diff --git a/.cicd/helpers/clang-devtoolset8-support.patch b/.cicd/helpers/clang-devtoolset8-support.patch new file mode 100644 index 00000000000..64a946e26cd --- /dev/null +++ b/.cicd/helpers/clang-devtoolset8-support.patch @@ -0,0 +1,55 @@ +From 32b65345c5760295d04c95e0abb3653fe20ffd16 Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Tue, 9 Apr 2019 13:26:10 +0000 +Subject: [PATCH] Add support for detection of devtoolset-8 + +Summary: +The current llvm/clang et al. project can be built with the latest developer toolset (devtoolset-8) on RHEL, which provides GCC 8.2.1. +However, the result compiler will not identify this toolset itself when compiling programs, which is of course not desirable. + +After the patch - which simply adds the name of the developer toolset to the existing list - it gets identified and selected, as shown below: + +[bamboo@bamboo llvm-project]$ clang -v +clang version 9.0.0 (https://github.com/llvm/llvm-project.git e5ac385fb1ffa4bd3875ea6a4d24efdbd7814572) +Target: x86_64-unknown-linux-gnu +Thread model: posix +InstalledDir: /home/bamboo/llvm/bin +Found candidate GCC installation: /opt/rh/devtoolset-4/root/usr/lib/gcc/x86_64-redhat-linux/5.2.1 +Found candidate GCC installation: /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7 +Found candidate GCC installation: /opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8 +Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/4.8.2 +Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/4.8.5 +Selected GCC installation: /opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8 +Candidate multilib: .;@m64 +Candidate multilib: 32;@m32 +Selected multilib: .;@m64 + +Patch By: Radu-Adrian Popescu + +Reviewers: tstellar, fedor.sergeev + +Reviewed By: tstellar + +Subscribers: jdoerfert, cfe-commits + +Tags: #clang + +Differential Revision: https://reviews.llvm.org/D59987 + +llvm-svn: 358002 +--- + clang/lib/Driver/ToolChains/Gnu.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp +index 2a58f0f7142..8915e3f948f 100644 +--- a/clang/lib/Driver/ToolChains/Gnu.cpp ++++ b/clang/lib/Driver/ToolChains/Gnu.cpp +@@ -1875,6 +1875,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes( + // Non-Solaris is much simpler - most systems just go with "/usr". + if (SysRoot.empty() && TargetTriple.getOS() == llvm::Triple::Linux) { + // Yet, still look for RHEL devtoolsets. ++ Prefixes.push_back("/opt/rh/devtoolset-8/root/usr"); + Prefixes.push_back("/opt/rh/devtoolset-7/root/usr"); + Prefixes.push_back("/opt/rh/devtoolset-6/root/usr"); + Prefixes.push_back("/opt/rh/devtoolset-4/root/usr"); From 9e899f6f8f9dd1570a2f5ff01385622b60d7adaa Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 09:42:02 -0400 Subject: [PATCH 360/528] Pinned C7 may need patch. --- .cicd/build.sh | 3 +-- .cicd/docker/centos-7.6.dockerfile | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index 101500541bd..f9c85aef2fb 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -23,7 +23,7 @@ else # Linux # CMAKE_EXTRAS: Executed within and right before the cmake path (cmake CMAKE_EXTRAS ..) if [[ ! $IMAGE_TAG =~ 'unpinned' ]]; then CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$MOUNTED_DIR/.cicd/helpers/clang.make -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" - elif [[ $IMAGE_TAG =~ 'ubuntu-16.04' ]]; then + elif [[ $IMAGE_TAG =~ 'ubuntu' ]]; then PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" elif [[ $IMAGE_TAG == 'amazon_linux-2-unpinned' ]]; then PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib64/ccache:\\\$PATH" @@ -31,7 +31,6 @@ else # Linux elif [[ $IMAGE_TAG == 'centos-7.6-unpinned' ]]; then PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:\\\$PATH" elif [[ $IMAGE_TAG == 'ubuntu-18.04-unpinned' ]]; then - PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' -DCMAKE_BUILD_TYPE='Release'" fi diff --git a/.cicd/docker/centos-7.6.dockerfile b/.cicd/docker/centos-7.6.dockerfile index 171aabc4f21..cc38f79e97c 100644 --- a/.cicd/docker/centos-7.6.dockerfile +++ b/.cicd/docker/centos-7.6.dockerfile @@ -24,7 +24,7 @@ RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm. cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ - cd ../ && patch -p2 < /tmp/clang-devtoolset8-support.patch && \ + patch -p2 < /tmp/clang-devtoolset8-support.patch && \ cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ cd /clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ From 4a52d1f37697389d9290fa0933d04cf85deeb4c7 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 10:09:37 -0400 Subject: [PATCH 361/528] Pinned C7 may need patch. --- .cicd/docker/centos-7.6.dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.cicd/docker/centos-7.6.dockerfile b/.cicd/docker/centos-7.6.dockerfile index cc38f79e97c..8f7e45a1f2a 100644 --- a/.cicd/docker/centos-7.6.dockerfile +++ b/.cicd/docker/centos-7.6.dockerfile @@ -31,6 +31,8 @@ RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm. cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ mkdir /clang8/build && cd /clang8/build && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/enable && \ cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ make -j $(nproc) && \ make install && \ From 37d69016aac32b6c0668d70f322823426b80ca1f Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 12:35:20 -0400 Subject: [PATCH 362/528] Changes for pinned Mac builds. Disabled for now. --- .cicd/build.sh | 3 ++- .cicd/pipeline.yml | 31 +++++++++++++++++++++++++++---- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index f9c85aef2fb..39308f3a1f1 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -9,7 +9,8 @@ if [[ $(uname) == 'Darwin' ]]; then # You can't use chained commands in execute cd $BUILD_DIR [[ $TRAVIS == true ]] && ccache -s - cmake .. + [[ $PINNED == true ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=./.cicd/helpers/clang.make" + cmake $CMAKE_EXTRAS .. make -j$JOBS else # Linux diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 40a25adb35d..fce08e2e52c 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -55,6 +55,8 @@ steps: # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" # - "cd eos && ./.cicd/build.sh" # - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" +# env: +# PINNED: "true" # plugins: # - chef/anka#v0.5.1: # no-volume: true @@ -68,7 +70,7 @@ steps: # wait-network: true # agents: # - "queue=mac-anka-large-node-fleet" -# skip: $SKIP_MOJAVE +# skip: ${SKIP_MOJAVE} - label: ":aws: Amazon_Linux 2 - Build Unpinned" command: @@ -80,7 +82,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_AMAZON_LINUX_2 + skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNPINNED_BUILDS:-true} - label: ":centos: CentOS 7.6 - Build Unpinned" command: @@ -92,7 +94,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_CENTOS_7 + skip: ${SKIP_CENTOS_7}${SKIP_UNPINNED_BUILDS:-true} - label: ":ubuntu: Ubuntu 18.04 - Build Unpinned" command: @@ -104,7 +106,28 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_18 + skip: ${SKIP_UBUNTU_18}${SKIP_UNPINNED_BUILDS:-true} + +# - label: ":darwin: macOS 10.14 - Build Unpinned" +# command: +# "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" +# - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" +# - "cd eos && ./.cicd/build.sh" +# - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" +# plugins: +# - chef/anka#v0.5.1: +# no-volume: true +# inherit-environment-vars: true +# vm-name: 10.14.4_6C_14G_40G +# vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" +# modify-cpu: 12 +# modify-ram: 24 +# always-pull: true +# debug: true +# wait-network: true +# agents: +# - "queue=mac-anka-large-node-fleet" +# skip: ${SKIP_MOJAVE}${SKIP_UNPINNED_BUILDS:-true} # - wait From 3454320c8542e8d7504777e15c68d747af43ad43 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 12:39:08 -0400 Subject: [PATCH 363/528] Debugging c7 pinned. --- .cicd/docker/centos-7.6.dockerfile | 70 +++++++++++++++--------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/.cicd/docker/centos-7.6.dockerfile b/.cicd/docker/centos-7.6.dockerfile index 8f7e45a1f2a..3852504b519 100644 --- a/.cicd/docker/centos-7.6.dockerfile +++ b/.cicd/docker/centos-7.6.dockerfile @@ -56,38 +56,38 @@ RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0. ./b2 toolset=clang cxxflags='-stdlib=libc++ -D__STRICT_ANSI__ -nostdinc++ -I/usr/local/include/c++/v1' linkflags='-stdlib=libc++' link=static threading=multi --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ cd .. && \ rm -f boost_1_70_0.tar.bz2 -# build mongodb -RUN curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz && \ - tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz && \ - rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz -# build mongodb c driver -RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ - tar -xzf mongo-c-driver-1.13.0.tar.gz && \ - cd mongo-c-driver-1.13.0 && \ - mkdir -p build && \ - cd build && \ - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ - make -j$(nproc) && \ - make install && \ - cd / && \ - rm -rf mongo-c-driver-1.13.0.tar.gz -# build mongodb cxx driver -RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ - tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ - cd mongo-cxx-driver-r3.4.0 && \ - sed -i 's/\"maxAwaitTimeMS\", ount/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ - sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ - cd build && \ - cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ - make -j$(nproc) && \ - make install && \ - cd / && \ - rm -f mongo-cxx-driver-r3.4.0.tar.gz -# add mongodb to path -ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin -# install ccache -RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm && \ - yum install -y ccache-3.3.4-1.el7.x86_64.rpm -# fix ccache for centos -RUN cd /usr/lib64/ccache && ln -s ../../bin/ccache c++ -ENV CCACHE_PATH="/opt/rh/devtoolset-8/root/usr/bin" \ No newline at end of file +# # build mongodb +# RUN curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz && \ +# tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz && \ +# rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz +# # build mongodb c driver +# RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ +# tar -xzf mongo-c-driver-1.13.0.tar.gz && \ +# cd mongo-c-driver-1.13.0 && \ +# mkdir -p build && \ +# cd build && \ +# cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ +# make -j$(nproc) && \ +# make install && \ +# cd / && \ +# rm -rf mongo-c-driver-1.13.0.tar.gz +# # build mongodb cxx driver +# RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ +# tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ +# cd mongo-cxx-driver-r3.4.0 && \ +# sed -i 's/\"maxAwaitTimeMS\", ount/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ +# sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ +# cd build && \ +# cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ +# make -j$(nproc) && \ +# make install && \ +# cd / && \ +# rm -f mongo-cxx-driver-r3.4.0.tar.gz +# # add mongodb to path +# ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin +# # install ccache +# RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm && \ +# yum install -y ccache-3.3.4-1.el7.x86_64.rpm +# # fix ccache for centos +# RUN cd /usr/lib64/ccache && ln -s ../../bin/ccache c++ +# ENV CCACHE_PATH="/opt/rh/devtoolset-8/root/usr/bin" \ No newline at end of file From 5696bd56d6cee15157a386033fda80a39143e76b Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 13:22:00 -0400 Subject: [PATCH 364/528] Debugging c7 pinned. --- .cicd/docker/centos-7.6.dockerfile | 80 ++++++++++++++++-------------- 1 file changed, 44 insertions(+), 36 deletions(-) diff --git a/.cicd/docker/centos-7.6.dockerfile b/.cicd/docker/centos-7.6.dockerfile index 3852504b519..349f1bf89d6 100644 --- a/.cicd/docker/centos-7.6.dockerfile +++ b/.cicd/docker/centos-7.6.dockerfile @@ -24,13 +24,13 @@ RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm. cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ - patch -p2 < /tmp/clang-devtoolset8-support.patch && \ cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ cd /clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ mkdir /clang8/build && cd /clang8/build && \ + patch -p2 < /tmp/clang-devtoolset8-support.patch && \ source /opt/rh/devtoolset-8/enable && \ source /opt/rh/rh-python36/enable && \ cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ @@ -41,6 +41,8 @@ RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm. COPY ./.cicd/helpers/clang.make /tmp/clang.cmake # build llvm RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/enable && \ cd llvm && \ mkdir build && \ cd build && \ @@ -50,44 +52,50 @@ RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/l cd / # build boost RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/enable && \ tar -xjf boost_1_70_0.tar.bz2 && \ cd boost_1_70_0 && \ ./bootstrap.sh --with-toolset=clang --prefix=/usr/local && \ ./b2 toolset=clang cxxflags='-stdlib=libc++ -D__STRICT_ANSI__ -nostdinc++ -I/usr/local/include/c++/v1' linkflags='-stdlib=libc++' link=static threading=multi --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ cd .. && \ rm -f boost_1_70_0.tar.bz2 -# # build mongodb -# RUN curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz && \ -# tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz && \ -# rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz -# # build mongodb c driver -# RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ -# tar -xzf mongo-c-driver-1.13.0.tar.gz && \ -# cd mongo-c-driver-1.13.0 && \ -# mkdir -p build && \ -# cd build && \ -# cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ -# make -j$(nproc) && \ -# make install && \ -# cd / && \ -# rm -rf mongo-c-driver-1.13.0.tar.gz -# # build mongodb cxx driver -# RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ -# tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ -# cd mongo-cxx-driver-r3.4.0 && \ -# sed -i 's/\"maxAwaitTimeMS\", ount/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ -# sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ -# cd build && \ -# cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ -# make -j$(nproc) && \ -# make install && \ -# cd / && \ -# rm -f mongo-cxx-driver-r3.4.0.tar.gz -# # add mongodb to path -# ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin -# # install ccache -# RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm && \ -# yum install -y ccache-3.3.4-1.el7.x86_64.rpm -# # fix ccache for centos -# RUN cd /usr/lib64/ccache && ln -s ../../bin/ccache c++ -# ENV CCACHE_PATH="/opt/rh/devtoolset-8/root/usr/bin" \ No newline at end of file +# build mongodb +RUN curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz && \ + tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz && \ + rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz +# build mongodb c driver +RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/enable && \ + tar -xzf mongo-c-driver-1.13.0.tar.gz && \ + cd mongo-c-driver-1.13.0 && \ + mkdir -p build && \ + cd build && \ + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ + make -j$(nproc) && \ + make install && \ + cd / && \ + rm -rf mongo-c-driver-1.13.0.tar.gz +# build mongodb cxx driver +RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/enable && \ + tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ + cd mongo-cxx-driver-r3.4.0 && \ + sed -i 's/\"maxAwaitTimeMS\", ount/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ + sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ + cd build && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ + make -j$(nproc) && \ + make install && \ + cd / && \ + rm -f mongo-cxx-driver-r3.4.0.tar.gz +# add mongodb to path +ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin +# install ccache +RUN curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm && \ + yum install -y ccache-3.3.4-1.el7.x86_64.rpm +# fix ccache for centos +RUN cd /usr/lib64/ccache && ln -s ../../bin/ccache c++ +ENV CCACHE_PATH="/opt/rh/devtoolset-8/root/usr/bin" \ No newline at end of file From bce4951d8380c4b016cc0328b95a57c46e201f8d Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 13:22:41 -0400 Subject: [PATCH 365/528] Debugging c7 pinned. --- .cicd/pipeline.yml | 132 ++++++++++++++++++++++----------------------- 1 file changed, 66 insertions(+), 66 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index fce08e2e52c..08f067dcd1a 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,17 +1,17 @@ steps: - wait - - label: ":aws: Amazon_Linux 2 - Build" - command: - - "./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "amazon_linux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_AMAZON_LINUX_2 + # - label: ":aws: Amazon_Linux 2 - Build" + # command: + # - "./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "amazon_linux-2" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_AMAZON_LINUX_2 - label: ":centos: CentOS 7.6 - Build" command: @@ -25,29 +25,29 @@ steps: timeout: ${TIMEOUT:-10} skip: $SKIP_CENTOS_7 - - label: ":ubuntu: Ubuntu 16.04 - Build" - command: - - "./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_16 + # - label: ":ubuntu: Ubuntu 16.04 - Build" + # command: + # - "./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "ubuntu-16.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_16 - - label: ":ubuntu: Ubuntu 18.04 - Build" - command: - - "./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_18 + # - label: ":ubuntu: Ubuntu 18.04 - Build" + # command: + # - "./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "ubuntu-18.04" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: $SKIP_UBUNTU_18 # - label: ":darwin: macOS 10.14 - Build" # command: @@ -72,41 +72,41 @@ steps: # - "queue=mac-anka-large-node-fleet" # skip: ${SKIP_MOJAVE} - - label: ":aws: Amazon_Linux 2 - Build Unpinned" - command: - - "./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "amazon_linux-2-unpinned" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNPINNED_BUILDS:-true} + # - label: ":aws: Amazon_Linux 2 - Build Unpinned" + # command: + # - "./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "amazon_linux-2-unpinned" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNPINNED_BUILDS:-true} - - label: ":centos: CentOS 7.6 - Build Unpinned" - command: - - "./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "centos-7.6-unpinned" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_CENTOS_7}${SKIP_UNPINNED_BUILDS:-true} + # - label: ":centos: CentOS 7.6 - Build Unpinned" + # command: + # - "./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "centos-7.6-unpinned" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_CENTOS_7}${SKIP_UNPINNED_BUILDS:-true} - - label: ":ubuntu: Ubuntu 18.04 - Build Unpinned" - command: - - "./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "ubuntu-18.04-unpinned" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_18}${SKIP_UNPINNED_BUILDS:-true} + # - label: ":ubuntu: Ubuntu 18.04 - Build Unpinned" + # command: + # - "./.cicd/build.sh" + # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + # env: + # IMAGE_TAG: "ubuntu-18.04-unpinned" + # BUILDKITE_AGENT_ACCESS_TOKEN: + # agents: + # queue: "automation-eos-builder-fleet" + # timeout: ${TIMEOUT:-10} + # skip: ${SKIP_UBUNTU_18}${SKIP_UNPINNED_BUILDS:-true} # - label: ":darwin: macOS 10.14 - Build Unpinned" # command: From 430ea11a55493b66d972a80218d2d8e28afb08cd Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 13:48:23 -0400 Subject: [PATCH 366/528] Debugging c7 pinned. --- .cicd/docker/centos-7.6.dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/docker/centos-7.6.dockerfile b/.cicd/docker/centos-7.6.dockerfile index 349f1bf89d6..703072af3a3 100644 --- a/.cicd/docker/centos-7.6.dockerfile +++ b/.cicd/docker/centos-7.6.dockerfile @@ -24,13 +24,13 @@ RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm. cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ + patch -p2 < /tmp/clang-devtoolset8-support.patch && \ cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ cd /clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ mkdir /clang8/build && cd /clang8/build && \ - patch -p2 < /tmp/clang-devtoolset8-support.patch && \ source /opt/rh/devtoolset-8/enable && \ source /opt/rh/rh-python36/enable && \ cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ From 5a1f42ae0ab149428596a8abe05211ed540adbd1 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 14:18:39 -0400 Subject: [PATCH 367/528] Debugging c7 pinned. --- .cicd/docker/centos-7.6.dockerfile | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/.cicd/docker/centos-7.6.dockerfile b/.cicd/docker/centos-7.6.dockerfile index 703072af3a3..ee009065e14 100644 --- a/.cicd/docker/centos-7.6.dockerfile +++ b/.cicd/docker/centos-7.6.dockerfile @@ -17,7 +17,7 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ make -j$(nproc) && \ make install && \ cd .. && \ - rm -f cmake-3.13.2.tar.gz + rm -rf cmake-3.13.2.tar.gz /cmake-3.13.2 COPY ./.cicd/helpers/clang-devtoolset8-support.patch /tmp/clang-devtoolset8-support.patch # build clang8 RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ @@ -41,33 +41,28 @@ RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm. COPY ./.cicd/helpers/clang.make /tmp/clang.cmake # build llvm RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ - source /opt/rh/devtoolset-8/enable && \ - source /opt/rh/rh-python36/enable && \ cd llvm && \ mkdir build && \ cd build && \ cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ make -j$(nproc) && \ make install && \ - cd / + cd / && \ + rm -rf /llvm # build boost RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ - source /opt/rh/devtoolset-8/enable && \ - source /opt/rh/rh-python36/enable && \ tar -xjf boost_1_70_0.tar.bz2 && \ cd boost_1_70_0 && \ ./bootstrap.sh --with-toolset=clang --prefix=/usr/local && \ ./b2 toolset=clang cxxflags='-stdlib=libc++ -D__STRICT_ANSI__ -nostdinc++ -I/usr/local/include/c++/v1' linkflags='-stdlib=libc++' link=static threading=multi --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ - cd .. && \ - rm -f boost_1_70_0.tar.bz2 + cd / && \ + rm -rf boost_1_70_0.tar.bz2 /boost_1_70_0 # build mongodb RUN curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz && \ tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz && \ - rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz + rm -rf mongodb-linux-x86_64-amazon-3.6.3.tgz # build mongodb c driver RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ - source /opt/rh/devtoolset-8/enable && \ - source /opt/rh/rh-python36/enable && \ tar -xzf mongo-c-driver-1.13.0.tar.gz && \ cd mongo-c-driver-1.13.0 && \ mkdir -p build && \ @@ -76,21 +71,19 @@ RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/ make -j$(nproc) && \ make install && \ cd / && \ - rm -rf mongo-c-driver-1.13.0.tar.gz + rm -rf mongo-c-driver-1.13.0.tar.gz /mongo-c-driver-1.13.0 # build mongodb cxx driver RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ - source /opt/rh/devtoolset-8/enable && \ - source /opt/rh/rh-python36/enable && \ tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ cd mongo-cxx-driver-r3.4.0 && \ - sed -i 's/\"maxAwaitTimeMS\", ount/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ + sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ cd build && \ cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ make -j$(nproc) && \ make install && \ cd / && \ - rm -f mongo-cxx-driver-r3.4.0.tar.gz + rm -rf mongo-cxx-driver-r3.4.0.tar.gz /mongo-cxx-driver-r3.4.0 # add mongodb to path ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin # install ccache From ebce59f267d350c6c34f21b5d63f43ed1e39e816 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 14:37:34 -0400 Subject: [PATCH 368/528] Added flag for pinned Mac builds. --- .cicd/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index 39308f3a1f1..94810c5cb04 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -9,7 +9,7 @@ if [[ $(uname) == 'Darwin' ]]; then # You can't use chained commands in execute cd $BUILD_DIR [[ $TRAVIS == true ]] && ccache -s - [[ $PINNED == true ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=./.cicd/helpers/clang.make" + [[ $PINNED == true ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$HELPERS_DIR/clang.make" cmake $CMAKE_EXTRAS .. make -j$JOBS From 952fb5ef2d9d3f468898fb49d3598ec7f48403fd Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 14:38:56 -0400 Subject: [PATCH 369/528] Full pipeline test. --- .cicd/pipeline.yml | 592 ++++++++++++++++++++++----------------------- 1 file changed, 296 insertions(+), 296 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 08f067dcd1a..655e48ca075 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,17 +1,17 @@ steps: - wait - # - label: ":aws: Amazon_Linux 2 - Build" - # command: - # - "./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "amazon_linux-2" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_AMAZON_LINUX_2 + - label: ":aws: Amazon_Linux 2 - Build" + command: + - "./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "amazon_linux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_AMAZON_LINUX_2 - label: ":centos: CentOS 7.6 - Build" command: @@ -25,29 +25,29 @@ steps: timeout: ${TIMEOUT:-10} skip: $SKIP_CENTOS_7 - # - label: ":ubuntu: Ubuntu 16.04 - Build" - # command: - # - "./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "ubuntu-16.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_16 + - label: ":ubuntu: Ubuntu 16.04 - Build" + command: + - "./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 - # - label: ":ubuntu: Ubuntu 18.04 - Build" - # command: - # - "./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "ubuntu-18.04" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: $SKIP_UBUNTU_18 + - label: ":ubuntu: Ubuntu 18.04 - Build" + command: + - "./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_18 # - label: ":darwin: macOS 10.14 - Build" # command: @@ -72,290 +72,290 @@ steps: # - "queue=mac-anka-large-node-fleet" # skip: ${SKIP_MOJAVE} - # - label: ":aws: Amazon_Linux 2 - Build Unpinned" - # command: - # - "./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "amazon_linux-2-unpinned" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNPINNED_BUILDS:-true} + - label: ":aws: Amazon_Linux 2 - Build Unpinned" + command: + - "./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "amazon_linux-2-unpinned" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNPINNED_BUILDS:-true} - # - label: ":centos: CentOS 7.6 - Build Unpinned" - # command: - # - "./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "centos-7.6-unpinned" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_CENTOS_7}${SKIP_UNPINNED_BUILDS:-true} + - label: ":centos: CentOS 7.6 - Build Unpinned" + command: + - "./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "centos-7.6-unpinned" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_CENTOS_7}${SKIP_UNPINNED_BUILDS:-true} - # - label: ":ubuntu: Ubuntu 18.04 - Build Unpinned" - # command: - # - "./.cicd/build.sh" - # - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - # env: - # IMAGE_TAG: "ubuntu-18.04-unpinned" - # BUILDKITE_AGENT_ACCESS_TOKEN: - # agents: - # queue: "automation-eos-builder-fleet" - # timeout: ${TIMEOUT:-10} - # skip: ${SKIP_UBUNTU_18}${SKIP_UNPINNED_BUILDS:-true} + - label: ":ubuntu: Ubuntu 18.04 - Build Unpinned" + command: + - "./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-18.04-unpinned" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_18}${SKIP_UNPINNED_BUILDS:-true} -# - label: ":darwin: macOS 10.14 - Build Unpinned" -# command: -# "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" -# - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" -# - "cd eos && ./.cicd/build.sh" -# - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" -# plugins: -# - chef/anka#v0.5.1: -# no-volume: true -# inherit-environment-vars: true -# vm-name: 10.14.4_6C_14G_40G -# vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" -# modify-cpu: 12 -# modify-ram: 24 -# always-pull: true -# debug: true -# wait-network: true -# agents: -# - "queue=mac-anka-large-node-fleet" -# skip: ${SKIP_MOJAVE}${SKIP_UNPINNED_BUILDS:-true} + - label: ":darwin: macOS 10.14 - Build Unpinned" + command: + "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && ./.cicd/build.sh" + - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + modify-cpu: 12 + modify-ram: 24 + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-large-node-fleet" + skip: ${SKIP_MOJAVE}${SKIP_UNPINNED_BUILDS:-true} -# - wait + - wait -# - label: ":aws: Amazon_Linux 2 - Unit Tests" -# command: -# - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" -# - "./.cicd/parallel-tests.sh" -# env: -# IMAGE_TAG: "amazon_linux-2" -# BUILDKITE_AGENT_ACCESS_TOKEN: -# agents: -# queue: "automation-eos-builder-fleet" -# timeout: ${TIMEOUT:-10} -# skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} + - label: ":aws: Amazon_Linux 2 - Unit Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + - "./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "amazon_linux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} -# - label: ":centos: CentOS 7.6 - Unit Tests" -# command: -# - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" -# - "./.cicd/parallel-tests.sh" -# env: -# IMAGE_TAG: "centos-7.6" -# BUILDKITE_AGENT_ACCESS_TOKEN: -# agents: -# queue: "automation-eos-builder-fleet" -# timeout: ${TIMEOUT:-10} -# skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} + - label: ":centos: CentOS 7.6 - Unit Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + - "./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} -# - label: ":ubuntu: Ubuntu 16.04 - Unit Tests" -# command: -# - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" -# - "./.cicd/parallel-tests.sh" -# env: -# IMAGE_TAG: "ubuntu-16.04" -# BUILDKITE_AGENT_ACCESS_TOKEN: -# agents: -# queue: "automation-eos-builder-fleet" -# timeout: ${TIMEOUT:-10} -# skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} + - label: ":ubuntu: Ubuntu 16.04 - Unit Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} -# - label: ":ubuntu: Ubuntu 18.04 - Unit Tests" -# command: -# - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" -# - "./.cicd/parallel-tests.sh" -# env: -# IMAGE_TAG: "ubuntu-18.04" -# BUILDKITE_AGENT_ACCESS_TOKEN: -# agents: -# queue: "automation-eos-builder-fleet" -# timeout: ${TIMEOUT:-10} -# skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} + - label: ":ubuntu: Ubuntu 18.04 - Unit Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + - "./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} -# - label: ":darwin: macOS 10.14 - Unit Tests" -# command: -# - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" -# - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" -# - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: 10.14 - Build' && tar -xzf build.tar.gz" -# - "cd eos && ./.cicd/parallel-tests.sh" -# plugins: -# - chef/anka#v0.5.1: -# no-volume: true -# inherit-environment-vars: true -# vm-name: 10.14.4_6C_14G_40G -# vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" -# always-pull: true -# debug: true -# wait-network: true -# agents: -# - "queue=mac-anka-node-fleet" -# skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} + - label: ":darwin: macOS 10.14 - Unit Tests" + command: + - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && ./.cicd/parallel-tests.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-node-fleet" + skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} -# - label: ":pipeline: Generate Serial Test Steps" -# command: "./.cicd/generate-serial-tests.sh | buildkite-agent pipeline upload" -# agents: -# queue: "automation-eos-builder-fleet" -# timeout: ${TIMEOUT:-10} -# skip: $SKIP_GENERATE_SERIAL_TESTS + - label: ":pipeline: Generate Serial Test Steps" + command: "./.cicd/generate-serial-tests.sh | buildkite-agent pipeline upload" + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_GENERATE_SERIAL_TESTS -# - label: ":aws: Amazon_Linux 2 - Long-Running Tests" -# command: -# - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" -# - "./.cicd/long-running-tests.sh" -# env: -# IMAGE_TAG: "amazon_linux-2" -# BUILDKITE_AGENT_ACCESS_TOKEN: -# agents: -# queue: "automation-eos-builder-fleet" -# timeout: ${TIMEOUT:-10} -# skip: ${SKIP_AMAZON_LINUX_2}${SKIP_LONG_RUNNING_TESTS:-true} + - label: ":aws: Amazon_Linux 2 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + - "./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "amazon_linux-2" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_AMAZON_LINUX_2}${SKIP_LONG_RUNNING_TESTS:-true} -# - label: ":centos: CentOS 7.6 - Long-Running Tests" -# command: -# - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" -# - "./.cicd/long-running-tests.sh" -# env: -# IMAGE_TAG: "centos-7.6" -# BUILDKITE_AGENT_ACCESS_TOKEN: -# agents: -# queue: "automation-eos-builder-fleet" -# timeout: ${TIMEOUT:-10} -# skip: ${SKIP_CENTOS_7}${SKIP_LONG_RUNNING_TESTS:-true} + - label: ":centos: CentOS 7.6 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + - "./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "centos-7.6" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_CENTOS_7}${SKIP_LONG_RUNNING_TESTS:-true} -# - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" -# command: -# - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" -# - "./.cicd/long-running-tests.sh" -# env: -# IMAGE_TAG: "ubuntu-16.04" -# BUILDKITE_AGENT_ACCESS_TOKEN: -# agents: -# queue: "automation-eos-builder-fleet" -# timeout: ${TIMEOUT:-10} -# skip: ${SKIP_UBUNTU_16}${SKIP_LONG_RUNNING_TESTS:-true} + - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_16}${SKIP_LONG_RUNNING_TESTS:-true} -# - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" -# command: -# - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" -# - "./.cicd/long-running-tests.sh" -# env: -# IMAGE_TAG: "ubuntu-18.04" -# BUILDKITE_AGENT_ACCESS_TOKEN: -# agents: -# queue: "automation-eos-builder-fleet" -# timeout: ${TIMEOUT:-10} -# skip: ${SKIP_UBUNTU_18}${SKIP_LONG_RUNNING_TESTS:-true} + - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + - "./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_18}${SKIP_LONG_RUNNING_TESTS:-true} -# - label: ":darwin: macOS 10.14 - Long-Running Tests" -# command: -# - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" -# - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" -# - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" -# - "cd eos && ./.cicd/long-running-tests.sh" -# plugins: -# - chef/anka#v0.5.1: -# no-volume: true -# inherit-environment-vars: true -# vm-name: 10.14.4_6C_14G_40G -# vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" -# modify-cpu: 12 -# modify-ram: 24 -# always-pull: true -# debug: true -# wait-network: true -# agents: -# - "queue=mac-anka-large-node-fleet" -# skip: ${SKIP_MOJAVE}${SKIP_LONG_RUNNING_TESTS:-true} + - label: ":darwin: macOS 10.14 - Long-Running Tests" + command: + - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && ./.cicd/long-running-tests.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + modify-cpu: 12 + modify-ram: 24 + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-large-node-fleet" + skip: ${SKIP_MOJAVE}${SKIP_LONG_RUNNING_TESTS:-true} -# - wait: -# continue_on_failure: true + - wait: + continue_on_failure: true -# - label: ":bar_chart: Test Metrics" -# command: | -# echo '+++ :compression: Extracting Test Metrics Code' -# tar -zxf .cicd/metrics/test-metrics.tar.gz -# echo '+++ :javascript: Running test-metrics.js' -# node --max-old-space-size=32768 test-metrics.js -# agents: -# queue: "automation-eos-builder-fleet" -# timeout: 10 -# soft_fail: true + - label: ":bar_chart: Test Metrics" + command: | + echo '+++ :compression: Extracting Test Metrics Code' + tar -zxf .cicd/metrics/test-metrics.tar.gz + echo '+++ :javascript: Running test-metrics.js' + node --max-old-space-size=32768 test-metrics.js + agents: + queue: "automation-eos-builder-fleet" + timeout: 10 + soft_fail: true -# - wait + - wait -# - label: ":ubuntu: Ubuntu 18.04 - Contract Builder" -# command: -# - "./.cicd/installation-build.sh" -# env: -# IMAGE_TAG: "ubuntu-18.04" -# BUILDKITE_AGENT_ACCESS_TOKEN: -# agents: -# queue: "automation-eos-builder-fleet" -# timeout: ${TIMEOUT:-10} -# skip: ${SKIP_UBUNTU_18}${SKIP_CONTRACT_BUILDER} + - label: ":ubuntu: Ubuntu 18.04 - Contract Builder" + command: + - "./.cicd/installation-build.sh" + env: + IMAGE_TAG: "ubuntu-18.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_18}${SKIP_CONTRACT_BUILDER} -# - label: ":centos: CentOS 7.6 - Package Builder" -# command: -# - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" -# - "./.cicd/package-builder.sh" -# env: -# BUILDKITE_AGENT_ACCESS_TOKEN: -# agents: -# queue: "automation-eos-builder-fleet" -# timeout: ${TIMEOUT:-10} -# skip: ${SKIP_CENTOS_7}${SKIP_PACKAGE_BUILDER} + - label: ":centos: CentOS 7.6 - Package Builder" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "./.cicd/package-builder.sh" + env: + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_CENTOS_7}${SKIP_PACKAGE_BUILDER} -# - label: ":ubuntu: Ubuntu 16.04 - Package Builder" -# command: -# - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" -# - "./.cicd/package-builder.sh" -# env: -# BUILDKITE_AGENT_ACCESS_TOKEN: -# agents: -# queue: "automation-eos-builder-fleet" -# timeout: ${TIMEOUT:-10} -# skip: ${SKIP_UBUNTU_16}${SKIP_PACKAGE_BUILDER} + - label: ":ubuntu: Ubuntu 16.04 - Package Builder" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "./.cicd/package-builder.sh" + env: + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_16}${SKIP_PACKAGE_BUILDER} -# - label: ":ubuntu: Ubuntu 18.04 - Package Builder" -# command: -# - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" -# - "./.cicd/package-builder.sh" -# env: -# BUILDKITE_AGENT_ACCESS_TOKEN: -# agents: -# queue: "automation-eos-builder-fleet" -# timeout: ${TIMEOUT:-10} -# skip: ${SKIP_UBUNTU_18}${SKIP_PACKAGE_BUILDER} + - label: ":ubuntu: Ubuntu 18.04 - Package Builder" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" + - "./.cicd/package-builder.sh" + env: + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_18}${SKIP_PACKAGE_BUILDER} -# - label: ":darwin: Mojave - Package Builder" -# command: -# - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" -# - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" -# - "cd eos && ./.cicd/package-builder.sh" -# plugins: -# - chef/anka#v0.5.1: -# no-volume: true -# inherit-environment-vars: true -# vm-name: 10.14.4_6C_14G_40G -# vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" -# always-pull: true -# debug: true -# wait-network: true -# agents: -# - "queue=mac-anka-node-fleet" -# timeout: 10 -# skip: ${SKIP_MOJAVE}${SKIP_PACKAGE_BUILDER} + - label: ":darwin: Mojave - Package Builder" + command: + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && ./.cicd/package-builder.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-node-fleet" + timeout: 10 + skip: ${SKIP_MOJAVE}${SKIP_PACKAGE_BUILDER} -# - label: ":git: Git Submodule Regression Check" -# command: -# - "./.cicd/submodule-regression-checker.sh" -# agents: -# queue: "automation-basic-builder-fleet" -# timeout: 5 \ No newline at end of file + - label: ":git: Git Submodule Regression Check" + command: + - "./.cicd/submodule-regression-checker.sh" + agents: + queue: "automation-basic-builder-fleet" + timeout: 5 \ No newline at end of file From 7f61aab8a8e2409dcc40c03a0546ae85924bbe1e Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 15:01:36 -0400 Subject: [PATCH 370/528] Full pipeline test. --- .cicd/generate-serial-tests.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index 84fd216fd48..162c73f26e0 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -18,7 +18,6 @@ for DOCKERFILE in $(ls $CICD_DIR/docker); do [[ $DOCKERFILE_NAME =~ 'amazon' ]] && ICON=':aws:' [[ $DOCKERFILE_NAME =~ 'ubuntu' ]] && ICON=':ubuntu:' [[ $DOCKERFILE_NAME =~ 'centos' ]] && ICON=':centos:' - continue for TEST_NAME in $SERIAL_TESTS; do cat < Date: Tue, 27 Aug 2019 15:23:12 -0400 Subject: [PATCH 371/528] Full pipeline test. --- .cicd/pipeline.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 655e48ca075..fc9f37bf2de 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -51,7 +51,7 @@ steps: # - label: ":darwin: macOS 10.14 - Build" # command: -# "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" +# - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" # - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" # - "cd eos && ./.cicd/build.sh" # - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" @@ -110,7 +110,7 @@ steps: - label: ":darwin: macOS 10.14 - Build Unpinned" command: - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - "cd eos && ./.cicd/build.sh" - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" From 718c4a1ac228e2d3d54ffec349933403dde55379 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Tue, 27 Aug 2019 16:41:57 -0400 Subject: [PATCH 372/528] Created macos-10.14.sh script for creating Anka base images for pinned builds --- .cicd/docker/macos-10.14.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100755 .cicd/docker/macos-10.14.sh diff --git a/.cicd/docker/macos-10.14.sh b/.cicd/docker/macos-10.14.sh new file mode 100755 index 00000000000..27e9e2c7fcf --- /dev/null +++ b/.cicd/docker/macos-10.14.sh @@ -0,0 +1,12 @@ +#!/bin/bash +brew update +brew install boost, cmake, python@2, python, libtool, libusb, graphviz, automake, wget, gmp, llvm@4, llvm@7, pkgconfig, doxygen +git clone https://git.llvm.org/git/llvm.git --branch release_80 --recursive +cd llvm +mkdir build +cd build +cmake .. +make -j $(getconf _NPROCESSORS_ONLN) +make install +cd ../.. +rm -rf llvm \ No newline at end of file From f545571ef801046fc008c2f58386187b300eb750 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 16:43:50 -0400 Subject: [PATCH 373/528] Split unpinned into different pipeline file. --- .cicd/pipeline.yml | 67 +------------ .cicd/unpinned.yml | 230 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 235 insertions(+), 62 deletions(-) create mode 100644 .cicd/unpinned.yml diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index fc9f37bf2de..a454bd6f42e 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -49,71 +49,14 @@ steps: timeout: ${TIMEOUT:-10} skip: $SKIP_UBUNTU_18 -# - label: ":darwin: macOS 10.14 - Build" -# command: -# - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" -# - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" -# - "cd eos && ./.cicd/build.sh" -# - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" -# env: -# PINNED: "true" -# plugins: -# - chef/anka#v0.5.1: -# no-volume: true -# inherit-environment-vars: true -# vm-name: 10.14.4_6C_14G_40G -# vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" -# modify-cpu: 12 -# modify-ram: 24 -# always-pull: true -# debug: true -# wait-network: true -# agents: -# - "queue=mac-anka-large-node-fleet" -# skip: ${SKIP_MOJAVE} - - - label: ":aws: Amazon_Linux 2 - Build Unpinned" - command: - - "./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "amazon_linux-2-unpinned" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNPINNED_BUILDS:-true} - - - label: ":centos: CentOS 7.6 - Build Unpinned" - command: - - "./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "centos-7.6-unpinned" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_CENTOS_7}${SKIP_UNPINNED_BUILDS:-true} - - - label: ":ubuntu: Ubuntu 18.04 - Build Unpinned" - command: - - "./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "ubuntu-18.04-unpinned" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_18}${SKIP_UNPINNED_BUILDS:-true} - - - label: ":darwin: macOS 10.14 - Build Unpinned" + - label: ":darwin: macOS 10.14 - Build" command: - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - "cd eos && ./.cicd/build.sh" - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + PINNED: "true" plugins: - chef/anka#v0.5.1: no-volume: true @@ -127,8 +70,8 @@ steps: wait-network: true agents: - "queue=mac-anka-large-node-fleet" - skip: ${SKIP_MOJAVE}${SKIP_UNPINNED_BUILDS:-true} - + skip: ${SKIP_MOJAVE} + - wait - label: ":aws: Amazon_Linux 2 - Unit Tests" diff --git a/.cicd/unpinned.yml b/.cicd/unpinned.yml new file mode 100644 index 00000000000..03dcc8c33bb --- /dev/null +++ b/.cicd/unpinned.yml @@ -0,0 +1,230 @@ +steps: + - wait + + - label: ":aws: Amazon_Linux 2 - Build" + command: + - "./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "amazon_linux-2-unpinned" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNPINNED_BUILDS:-true} + + - label: ":centos: CentOS 7.6 - Build" + command: + - "./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "centos-7.6-unpinned" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_CENTOS_7}${SKIP_UNPINNED_BUILDS:-true} + + - label: ":ubuntu: Ubuntu 16.04 - Build" + command: + - "./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_UBUNTU_16 + + - label: ":ubuntu: Ubuntu 18.04 - Build" + command: + - "./.cicd/build.sh" + - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + env: + IMAGE_TAG: "ubuntu-18.04-unpinned" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_18}${SKIP_UNPINNED_BUILDS:-true} + + - label: ":darwin: macOS 10.14 - Build" + command: + - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && ./.cicd/build.sh" + - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + modify-cpu: 12 + modify-ram: 24 + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-large-node-fleet" + skip: ${SKIP_MOJAVE}${SKIP_UNPINNED_BUILDS:-true} + + - wait + + - label: ":aws: Amazon_Linux 2 - Unit Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + - "./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "amazon_linux-2-unpinned" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} + + - label: ":centos: CentOS 7.6 - Unit Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + - "./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "centos-7.6-unpinned" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} + + - label: ":ubuntu: Ubuntu 16.04 - Unit Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} + + - label: ":ubuntu: Ubuntu 18.04 - Unit Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + - "./.cicd/parallel-tests.sh" + env: + IMAGE_TAG: "ubuntu-18.04-unpinned" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} + + - label: ":darwin: macOS 10.14 - Unit Tests" + command: + - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && ./.cicd/parallel-tests.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-node-fleet" + skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} + + - label: ":pipeline: Generate Serial Test Steps" + command: "./.cicd/generate-serial-tests.sh | buildkite-agent pipeline upload" + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: $SKIP_GENERATE_SERIAL_TESTS + + - label: ":aws: Amazon_Linux 2 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" + - "./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "amazon_linux-2-unpinned" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_AMAZON_LINUX_2}${SKIP_LONG_RUNNING_TESTS:-true} + + - label: ":centos: CentOS 7.6 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" + - "./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "centos-7.6-unpinned" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_CENTOS_7}${SKIP_LONG_RUNNING_TESTS:-true} + + - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" + - "./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "ubuntu-16.04" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_16}${SKIP_LONG_RUNNING_TESTS:-true} + + - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" + command: + - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" + - "./.cicd/long-running-tests.sh" + env: + IMAGE_TAG: "ubuntu-18.04-unpinned" + BUILDKITE_AGENT_ACCESS_TOKEN: + agents: + queue: "automation-eos-builder-fleet" + timeout: ${TIMEOUT:-10} + skip: ${SKIP_UBUNTU_18}${SKIP_LONG_RUNNING_TESTS:-true} + + - label: ":darwin: macOS 10.14 - Long-Running Tests" + command: + - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" + - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && ./.cicd/long-running-tests.sh" + plugins: + - chef/anka#v0.5.1: + no-volume: true + inherit-environment-vars: true + vm-name: 10.14.4_6C_14G_40G + vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" + modify-cpu: 12 + modify-ram: 24 + always-pull: true + debug: true + wait-network: true + agents: + - "queue=mac-anka-large-node-fleet" + skip: ${SKIP_MOJAVE}${SKIP_LONG_RUNNING_TESTS:-true} + + - wait: + continue_on_failure: true + + - label: ":bar_chart: Test Metrics" + command: | + echo '+++ :compression: Extracting Test Metrics Code' + tar -zxf .cicd/metrics/test-metrics.tar.gz + echo '+++ :javascript: Running test-metrics.js' + node --max-old-space-size=32768 test-metrics.js + agents: + queue: "automation-eos-builder-fleet" + timeout: 10 + soft_fail: true \ No newline at end of file From e64e7acad01159800c29b894a378ec50d06eac29 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 17:01:46 -0400 Subject: [PATCH 374/528] Added script for pinned Mac builds. --- .cicd/{docker => anka}/macos-10.14.sh | 0 .cicd/pipeline.yml | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename .cicd/{docker => anka}/macos-10.14.sh (100%) diff --git a/.cicd/docker/macos-10.14.sh b/.cicd/anka/macos-10.14.sh similarity index 100% rename from .cicd/docker/macos-10.14.sh rename to .cicd/anka/macos-10.14.sh diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index a454bd6f42e..1adc309b913 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -51,8 +51,8 @@ steps: - label: ":darwin: macOS 10.14 - Build" command: - - "brew install git graphviz libtool gmp llvm@4 pkgconfig python python@2 doxygen libusb openssl boost@1.70 cmake mongodb ccache" - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" + - "cd eos && ./.cicd/anka/macos-10.14.sh" - "cd eos && ./.cicd/build.sh" - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" env: From a28d2e36ce466a3e4cf18837deab0defd765a80d Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 17:06:54 -0400 Subject: [PATCH 375/528] Removed unpinned skip. --- .cicd/unpinned.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.cicd/unpinned.yml b/.cicd/unpinned.yml index 03dcc8c33bb..08e413990b9 100644 --- a/.cicd/unpinned.yml +++ b/.cicd/unpinned.yml @@ -11,7 +11,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNPINNED_BUILDS:-true} + skip: ${SKIP_AMAZON_LINUX_2} - label: ":centos: CentOS 7.6 - Build" command: @@ -23,7 +23,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: ${SKIP_CENTOS_7}${SKIP_UNPINNED_BUILDS:-true} + skip: ${SKIP_CENTOS_7} - label: ":ubuntu: Ubuntu 16.04 - Build" command: @@ -47,7 +47,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_18}${SKIP_UNPINNED_BUILDS:-true} + skip: ${SKIP_UBUNTU_18} - label: ":darwin: macOS 10.14 - Build" command: @@ -68,7 +68,7 @@ steps: wait-network: true agents: - "queue=mac-anka-large-node-fleet" - skip: ${SKIP_MOJAVE}${SKIP_UNPINNED_BUILDS:-true} + skip: ${SKIP_MOJAVE} - wait From 9f06a8ad152a8f6d826ea087c38d4b70cfd0dd95 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 17:08:18 -0400 Subject: [PATCH 376/528] Improved dockerfile cleanup. --- .cicd/docker/amazon_linux-2-unpinned.dockerfile | 15 ++++++++------- .cicd/docker/amazon_linux-2.dockerfile | 15 ++++++++------- .cicd/docker/centos-7.6-unpinned.dockerfile | 15 ++++++++------- .cicd/docker/centos-7.6.dockerfile | 2 +- .cicd/docker/ubuntu-16.04.dockerfile | 17 +++++++++-------- .cicd/docker/ubuntu-18.04-unpinned.dockerfile | 12 ++++++------ .cicd/docker/ubuntu-18.04.dockerfile | 15 ++++++++------- 7 files changed, 48 insertions(+), 43 deletions(-) diff --git a/.cicd/docker/amazon_linux-2-unpinned.dockerfile b/.cicd/docker/amazon_linux-2-unpinned.dockerfile index ab7c5a726be..4f5be999930 100644 --- a/.cicd/docker/amazon_linux-2-unpinned.dockerfile +++ b/.cicd/docker/amazon_linux-2-unpinned.dockerfile @@ -12,8 +12,8 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ ./bootstrap --prefix=/usr/local && \ make -j$(nproc) && \ make install && \ - cd .. && \ - rm -f cmake-3.13.2.tar.gz + cd / && \ + rm -rf cmake-3.13.2.tar.gz /cmake-3.13.2 # build llvm RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ cd llvm && \ @@ -22,15 +22,16 @@ RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/l cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ make -j$(nproc) && \ make install && \ - cd / + cd / && \ + rm -rf /llvm # build boost RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ tar -xjf boost_1_70_0.tar.bz2 && \ cd boost_1_70_0 && \ ./bootstrap.sh --prefix=/usr/local && \ ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ - cd .. && \ - rm -f boost_1_70_0.tar.bz2 + cd / && \ + rm -rf boost_1_70_0.tar.bz2 /boost_1_70_0 # build mongodb RUN curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz && \ tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz && \ @@ -45,7 +46,7 @@ RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/ make -j$(nproc) && \ make install && \ cd / && \ - rm -rf mongo-c-driver-1.13.0.tar.gz + rm -rf mongo-c-driver-1.13.0.tar.gz /mongo-c-driver-1.13.0 # build mongodb cxx driver RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ @@ -57,7 +58,7 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o make -j$(nproc) && \ make install && \ cd / && \ - rm -f mongo-cxx-driver-r3.4.0.tar.gz + rm -rf mongo-cxx-driver-r3.4.0.tar.gz /mongo-cxx-driver-r3.4.0 # add mongodb to path ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin # install ccache diff --git a/.cicd/docker/amazon_linux-2.dockerfile b/.cicd/docker/amazon_linux-2.dockerfile index d0d1c1dc763..7886e0cdfc4 100644 --- a/.cicd/docker/amazon_linux-2.dockerfile +++ b/.cicd/docker/amazon_linux-2.dockerfile @@ -12,8 +12,8 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ ./bootstrap --prefix=/usr/local && \ make -j$(nproc) && \ make install && \ - cd .. && \ - rm -f cmake-3.13.2.tar.gz + cd / && \ + rm -rf cmake-3.13.2.tar.gz /cmake-3.13.2 # build clang8 RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ @@ -39,15 +39,16 @@ RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/l cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ make -j$(nproc) && \ make install && \ - cd / + cd / && \ + rm -rf /llvm # build boost RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ tar -xjf boost_1_70_0.tar.bz2 && \ cd boost_1_70_0 && \ ./bootstrap.sh --with-toolset=clang --prefix=/usr/local && \ ./b2 toolset=clang cxxflags='-stdlib=libc++ -D__STRICT_ANSI__ -nostdinc++ -I/usr/local/include/c++/v1' linkflags='-stdlib=libc++' link=static threading=multi --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ - cd .. && \ - rm -f boost_1_70_0.tar.bz2 + cd / && \ + rm -rf boost_1_70_0.tar.bz2 /boost_1_70_0 # build mongodb RUN curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz && \ tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz && \ @@ -62,7 +63,7 @@ RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/ make -j$(nproc) && \ make install && \ cd / && \ - rm -rf mongo-c-driver-1.13.0.tar.gz + rm -rf mongo-c-driver-1.13.0.tar.gz /mongo-c-driver-1.13.0 # build mongodb cxx driver RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ @@ -74,7 +75,7 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o make -j$(nproc) && \ make install && \ cd / && \ - rm -f mongo-cxx-driver-r3.4.0.tar.gz + rm -rf mongo-cxx-driver-r3.4.0.tar.gz /mongo-cxx-driver-r3.4.0 # add mongodb to path ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin # install ccache diff --git a/.cicd/docker/centos-7.6-unpinned.dockerfile b/.cicd/docker/centos-7.6-unpinned.dockerfile index bf932e10889..b129c613400 100644 --- a/.cicd/docker/centos-7.6-unpinned.dockerfile +++ b/.cicd/docker/centos-7.6-unpinned.dockerfile @@ -16,8 +16,8 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ ./bootstrap --prefix=/usr/local && \ make -j$(nproc) && \ make install && \ - cd .. && \ - rm -f cmake-3.13.2.tar.gz + cd / && \ + rm -rf cmake-3.13.2.tar.gz /cmake-3.13.2 # build llvm RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git llvm && \ source /opt/rh/devtoolset-8/enable && \ @@ -28,7 +28,8 @@ RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/l cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ make -j$(nproc) && \ make install && \ - cd / + cd / && \ + rm -rf /llvm # build boost RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ source /opt/rh/devtoolset-8/enable && \ @@ -37,8 +38,8 @@ RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0. cd boost_1_70_0 && \ ./bootstrap.sh --prefix=/usr/local && \ ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ - cd .. && \ - rm -f boost_1_70_0.tar.bz2 + cd / && \ + rm -rf boost_1_70_0.tar.bz2 /boost_1_70_0 # build mongodb RUN curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz && \ tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz && \ @@ -55,7 +56,7 @@ RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/ make -j$(nproc) && \ make install && \ cd / && \ - rm -rf mongo-c-driver-1.13.0.tar.gz + rm -rf mongo-c-driver-1.13.0.tar.gz /mongo-c-driver-1.13.0 # build mongodb cxx driver RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ source /opt/rh/devtoolset-8/enable && \ @@ -69,7 +70,7 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o make -j$(nproc) && \ make install && \ cd / && \ - rm -f mongo-cxx-driver-r3.4.0.tar.gz + rm -rf mongo-cxx-driver-r3.4.0.tar.gz /mongo-cxx-driver-r3.4.0 # add mongodb to path ENV PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin # install ccache diff --git a/.cicd/docker/centos-7.6.dockerfile b/.cicd/docker/centos-7.6.dockerfile index ee009065e14..5bf139c9c64 100644 --- a/.cicd/docker/centos-7.6.dockerfile +++ b/.cicd/docker/centos-7.6.dockerfile @@ -16,7 +16,7 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ ./bootstrap --prefix=/usr/local && \ make -j$(nproc) && \ make install && \ - cd .. && \ + cd / && \ rm -rf cmake-3.13.2.tar.gz /cmake-3.13.2 COPY ./.cicd/helpers/clang-devtoolset8-support.patch /tmp/clang-devtoolset8-support.patch # build clang8 diff --git a/.cicd/docker/ubuntu-16.04.dockerfile b/.cicd/docker/ubuntu-16.04.dockerfile index 0a1ab0cbcc9..a325a97586e 100644 --- a/.cicd/docker/ubuntu-16.04.dockerfile +++ b/.cicd/docker/ubuntu-16.04.dockerfile @@ -12,8 +12,8 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ ./bootstrap --prefix=/usr/local && \ make -j$(nproc) && \ make install && \ - cd .. && \ - rm -f cmake-3.13.2.tar.gz + cd / && \ + rm -rf cmake-3.13.2.tar.gz /cmake-3.13.2 # build clang RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ @@ -39,15 +39,16 @@ RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/l cmake -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ make -j$(nproc) && \ make install && \ - cd / + cd / && \ + rm -rf /llvm # build boost RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ tar -xjf boost_1_70_0.tar.bz2 && \ cd boost_1_70_0 && \ ./bootstrap.sh --with-toolset=clang --prefix=/usr/local && \ ./b2 toolset=clang cxxflags='-stdlib=libc++ -D__STRICT_ANSI__ -nostdinc++ -I/usr/local/include/c++/v1' linkflags='-stdlib=libc++' link=static threading=multi --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ - cd .. && \ - rm -f boost_1_70_0.tar.bz2 + cd / && \ + rm -rf boost_1_70_0.tar.bz2 /boost_1_70_0 # build mongodb RUN curl -LO http://downloads.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz && \ tar -xzf mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz && \ @@ -62,7 +63,7 @@ RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/ make -j$(nproc) && \ make install && \ cd / && \ - rm -rf mongo-c-driver-1.13.0.tar.gz + rm -rf mongo-c-driver-1.13.0.tar.gz /mongo-c-driver-1.13.0 # build mongodb cxx driver RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ @@ -74,7 +75,7 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o make -j$(nproc) && \ make install && \ cd / && \ - rm -f mongo-cxx-driver-r3.4.0.tar.gz + rm -rf mongo-cxx-driver-r3.4.0.tar.gz /mongo-cxx-driver-r3.4.0 # add mongodb to path ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1604-3.6.3/bin # install ccache @@ -85,4 +86,4 @@ RUN curl -LO https://github.com/ccache/ccache/releases/download/v3.4.1/ccache-3. make && \ make install && \ cd / && \ - rm -rf ccache-3.4.1/ \ No newline at end of file + rm -rf ccache-3.4.1.tar.gz /ccache-3.4.1 \ No newline at end of file diff --git a/.cicd/docker/ubuntu-18.04-unpinned.dockerfile b/.cicd/docker/ubuntu-18.04-unpinned.dockerfile index aaee7a0c238..79daf269c19 100644 --- a/.cicd/docker/ubuntu-18.04-unpinned.dockerfile +++ b/.cicd/docker/ubuntu-18.04-unpinned.dockerfile @@ -13,16 +13,16 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ ./bootstrap --prefix=/usr/local && \ make -j$(nproc) && \ make install && \ - cd .. && \ - rm -f cmake-3.13.2.tar.gz + cd / && \ + rm -rf cmake-3.13.2.tar.gz /cmake-3.13.2 # build boost RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ tar -xjf boost_1_70_0.tar.bz2 && \ cd boost_1_70_0 && \ ./bootstrap.sh --prefix=/usr/local && \ ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -j$(nproc) install && \ - cd .. && \ - rm -f boost_1_70_0.tar.bz2 + cd / && \ + rm -rf boost_1_70_0.tar.bz2 /boost_1_70_0 # build mongodb RUN curl -LO http://downloads.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz && \ tar -xzf mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz && \ @@ -37,7 +37,7 @@ RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/ make -j$(nproc) && \ make install && \ cd / && \ - rm -rf mongo-c-driver-1.13.0.tar.gz + rm -rf mongo-c-driver-1.13.0.tar.gz /mongo-c-driver-1.13.0 # build mongodb cxx driver RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ @@ -49,6 +49,6 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o make -j$(nproc) && \ make install && \ cd / && \ - rm -f mongo-cxx-driver-r3.4.0.tar.gz + rm -rf mongo-cxx-driver-r3.4.0.tar.gz /mongo-cxx-driver-r3.4.0 # add mongodb to path ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin \ No newline at end of file diff --git a/.cicd/docker/ubuntu-18.04.dockerfile b/.cicd/docker/ubuntu-18.04.dockerfile index 1120c9d5a00..ddbeeaed970 100644 --- a/.cicd/docker/ubuntu-18.04.dockerfile +++ b/.cicd/docker/ubuntu-18.04.dockerfile @@ -13,8 +13,8 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ ./bootstrap --prefix=/usr/local && \ make -j$(nproc) && \ make install && \ - cd .. && \ - rm -f cmake-3.13.2.tar.gz + cd / && \ + rm -rf cmake-3.13.2.tar.gz /cmake-3.13.2 # build clang8 RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ @@ -40,15 +40,16 @@ RUN git clone --depth 1 --single-branch --branch release_40 https://github.com/l cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='/tmp/clang.cmake' .. && \ make -j$(nproc) && \ make install && \ - cd / + cd / && \ + rm -rf /llvm # build boost RUN curl -LO https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2 && \ tar -xjf boost_1_70_0.tar.bz2 && \ cd boost_1_70_0 && \ ./bootstrap.sh --with-toolset=clang --prefix=/usr/local && \ ./b2 toolset=clang cxxflags='-stdlib=libc++ -D__STRICT_ANSI__ -nostdinc++ -I/usr/local/include/c++/v1' linkflags='-stdlib=libc++' link=static threading=multi --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ - cd .. && \ - rm -f boost_1_70_0.tar.bz2 + cd / && \ + rm -rf boost_1_70_0.tar.bz2 /boost_1_70_0 # build mongodb RUN curl -LO http://downloads.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz && \ tar -xzf mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz && \ @@ -63,7 +64,7 @@ RUN curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/ make -j$(nproc) && \ make install && \ cd / && \ - rm -rf mongo-c-driver-1.13.0.tar.gz + rm -rf mongo-c-driver-1.13.0.tar.gz /mongo-c-driver-1.13.0 # build mongodb cxx driver RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ @@ -75,6 +76,6 @@ RUN curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o make -j$(nproc) && \ make install && \ cd / && \ - rm -f mongo-cxx-driver-r3.4.0.tar.gz + rm -rf mongo-cxx-driver-r3.4.0.tar.gz /mongo-cxx-driver-r3.4.0 # add mongodb to path ENV PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin \ No newline at end of file From d524f1815e64e2ec47195a577763b20f2116e3f3 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 17:12:32 -0400 Subject: [PATCH 377/528] Fix brew. --- .cicd/anka/macos-10.14.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/anka/macos-10.14.sh b/.cicd/anka/macos-10.14.sh index 27e9e2c7fcf..a341bbf30d7 100755 --- a/.cicd/anka/macos-10.14.sh +++ b/.cicd/anka/macos-10.14.sh @@ -1,6 +1,6 @@ #!/bin/bash brew update -brew install boost, cmake, python@2, python, libtool, libusb, graphviz, automake, wget, gmp, llvm@4, llvm@7, pkgconfig, doxygen +brew install boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen git clone https://git.llvm.org/git/llvm.git --branch release_80 --recursive cd llvm mkdir build From bb64b029f7c3116c4461d09c3b13efcbd4c62604 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 27 Aug 2019 17:18:12 -0400 Subject: [PATCH 378/528] forgot the removal of docker login from installation-build --- .cicd/installation-build.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh index b2dd1b8ac44..5e519712623 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/installation-build.sh @@ -9,7 +9,6 @@ if [[ $BUILDKITE_BRANCH =~ ^release/[0-9].[0-9]+.x$ || $BUILDKITE_BRANCH =~ ^mas export BRANCH=$(echo $BUILDKITE_BRANCH | sed 's/\//\_/') export CONTRACTS_BUILDER_TAG="eosio/ci-contracts-builder:base-ubuntu-18.04" export ARGS="--name ci-contracts-builder-$BUILDKITE_COMMIT --init -v $(pwd):$MOUNTED_DIR" - docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD $CICD_DIR/build.sh From cbb69a21deb0f0801cc4f10d6820e3ab7cabec3e Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 17:24:34 -0400 Subject: [PATCH 379/528] Fix conditional cmake flags and PRE_COMMANDS. --- .cicd/build.sh | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index 94810c5cb04..4102875ccc2 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -22,9 +22,15 @@ else # Linux PRE_COMMANDS="cd $MOUNTED_DIR/build" # PRE_COMMANDS: Executed pre-cmake # CMAKE_EXTRAS: Executed within and right before the cmake path (cmake CMAKE_EXTRAS ..) - if [[ ! $IMAGE_TAG =~ 'unpinned' ]]; then - CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$MOUNTED_DIR/.cicd/helpers/clang.make -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" - elif [[ $IMAGE_TAG =~ 'ubuntu' ]]; then + [[ ! $IMAGE_TAG =~ 'unpinned' ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$MOUNTED_DIR/.cicd/helpers/clang.make -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" + + if [[ $IMAGE_TAG == 'amazon_linux-2' ]]; then + PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib64/ccache:\\\$PATH" + elif [[ $IMAGE_TAG == 'centos-7.6' ]]; then + PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib64/ccache:\\\$PATH" + elif [[ $IMAGE_TAG == 'ubuntu-16.04' ]]; then + PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" + elif [[ $IMAGE_TAG == 'ubuntu-18.04' ]]; then PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" elif [[ $IMAGE_TAG == 'amazon_linux-2-unpinned' ]]; then PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib64/ccache:\\\$PATH" @@ -32,10 +38,11 @@ else # Linux elif [[ $IMAGE_TAG == 'centos-7.6-unpinned' ]]; then PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:\\\$PATH" elif [[ $IMAGE_TAG == 'ubuntu-18.04-unpinned' ]]; then - CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' -DCMAKE_BUILD_TYPE='Release'" + PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" + CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" fi - BUILD_COMMANDS="cmake $CMAKE_EXTRAS -DBUILD_MONGO_DB_PLUGIN=true .. && make -j$JOBS" + BUILD_COMMANDS="cmake $CMAKE_EXTRAS -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_BUILD_TYPE='Release' .. && make -j$JOBS" # Docker Commands if [[ $BUILDKITE == true ]]; then From 8edcc45d49617a822367e9a26e42636f3f46ff4f Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 18:42:41 -0400 Subject: [PATCH 380/528] Fix Mac unit test label. Clang appears to be picky. --- .cicd/anka/macos-10.14.sh | 24 +++++++++++++++--------- .cicd/pipeline.yml | 2 +- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/.cicd/anka/macos-10.14.sh b/.cicd/anka/macos-10.14.sh index a341bbf30d7..5f1343c57c2 100755 --- a/.cicd/anka/macos-10.14.sh +++ b/.cicd/anka/macos-10.14.sh @@ -1,12 +1,18 @@ #!/bin/bash brew update brew install boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen -git clone https://git.llvm.org/git/llvm.git --branch release_80 --recursive -cd llvm -mkdir build -cd build -cmake .. -make -j $(getconf _NPROCESSORS_ONLN) -make install -cd ../.. -rm -rf llvm \ No newline at end of file +git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ + cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ + cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ + cd /clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ + mkdir /clang8/build && cd /clang8/build && \ + cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ + make -j $(nproc) && \ + make install && \ + cd / && \ + rm -rf /clang8cd llvm \ No newline at end of file diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 1adc309b913..b54af0f4aa5 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -126,7 +126,7 @@ steps: command: - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - "cd eos && ./.cicd/parallel-tests.sh" plugins: - chef/anka#v0.5.1: From 75d97947eb1d54dfeb402011d6f2327b4152a69d Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 18:43:29 -0400 Subject: [PATCH 381/528] Fix Mac unit test label. --- .cicd/unpinned.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/unpinned.yml b/.cicd/unpinned.yml index 08e413990b9..5d4584ffe10 100644 --- a/.cicd/unpinned.yml +++ b/.cicd/unpinned.yml @@ -124,7 +124,7 @@ steps: command: - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: 10.14 - Build' && tar -xzf build.tar.gz" + - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - "cd eos && ./.cicd/parallel-tests.sh" plugins: - chef/anka#v0.5.1: From a96fee5ce13cea82911bc06534205d8551285ddc Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 27 Aug 2019 19:10:04 -0400 Subject: [PATCH 382/528] Clang appears to be picky. --- .cicd/anka/macos-10.14.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.cicd/anka/macos-10.14.sh b/.cicd/anka/macos-10.14.sh index 5f1343c57c2..aa66810c413 100755 --- a/.cicd/anka/macos-10.14.sh +++ b/.cicd/anka/macos-10.14.sh @@ -6,13 +6,13 @@ git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ - cd /clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ + cd ../../../../../projects/ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ - mkdir /clang8/build && cd /clang8/build && \ + mkdir ../../build && cd ../../build && \ cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ make -j $(nproc) && \ make install && \ - cd / && \ - rm -rf /clang8cd llvm \ No newline at end of file + cd ../.. && \ + rm -rf clang8/ \ No newline at end of file From fd897fa7f2c634f16f2f6a6651fc392280417bfa Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 28 Aug 2019 09:20:11 -0400 Subject: [PATCH 383/528] Add missing libusb for Mac. --- .cicd/pipeline.yml | 4 ++-- .cicd/unpinned.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index b54af0f4aa5..38f2552ba40 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -124,7 +124,7 @@ steps: - label: ":darwin: macOS 10.14 - Unit Tests" command: - - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" + - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb libusb" - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - "cd eos && ./.cicd/parallel-tests.sh" @@ -198,7 +198,7 @@ steps: - label: ":darwin: macOS 10.14 - Long-Running Tests" command: - - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" + - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb libusb" - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - "cd eos && ./.cicd/long-running-tests.sh" diff --git a/.cicd/unpinned.yml b/.cicd/unpinned.yml index 5d4584ffe10..f86c16e5659 100644 --- a/.cicd/unpinned.yml +++ b/.cicd/unpinned.yml @@ -122,7 +122,7 @@ steps: - label: ":darwin: macOS 10.14 - Unit Tests" command: - - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" + - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb libusb" - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - "cd eos && ./.cicd/parallel-tests.sh" @@ -196,7 +196,7 @@ steps: - label: ":darwin: macOS 10.14 - Long-Running Tests" command: - - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb" + - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb libusb" - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - "cd eos && ./.cicd/long-running-tests.sh" From b9b78e8f5edff4df2594eda73ee34a7dc6a11ea3 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 28 Aug 2019 09:22:32 -0400 Subject: [PATCH 384/528] Debugging pinned Mac. --- .cicd/anka/macos-10.14.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/anka/macos-10.14.sh b/.cicd/anka/macos-10.14.sh index aa66810c413..e870df09213 100755 --- a/.cicd/anka/macos-10.14.sh +++ b/.cicd/anka/macos-10.14.sh @@ -1,6 +1,6 @@ #!/bin/bash brew update -brew install boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen +brew install git boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen openssl mongodb ccache git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ From 2f9504e6d1a55388e7f2a3c23cabc388c29c582a Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 28 Aug 2019 09:28:36 -0400 Subject: [PATCH 385/528] Added ENVs to package builder required by lambdas. --- .cicd/pipeline.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 38f2552ba40..3cf51d5f77f 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -250,6 +250,8 @@ steps: - "./.cicd/package-builder.sh" env: BUILDKITE_AGENT_ACCESS_TOKEN: + OS: "el7" # OS and PKGTYPE required for lambdas + PKGTYPE: "rpm" agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} @@ -261,6 +263,8 @@ steps: - "./.cicd/package-builder.sh" env: BUILDKITE_AGENT_ACCESS_TOKEN: + OS: "ubuntu-16.04" # OS and PKGTYPE required for lambdas + PKGTYPE: "deb" agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} @@ -272,6 +276,8 @@ steps: - "./.cicd/package-builder.sh" env: BUILDKITE_AGENT_ACCESS_TOKEN: + OS: "ubuntu-18.04" # OS and PKGTYPE required for lambdas + PKGTYPE: "deb" agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} From 77e1a1bbfaebb20251f312f51554204bb6ead528 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 28 Aug 2019 10:05:07 -0400 Subject: [PATCH 386/528] Limit clang build on Mac. --- .cicd/anka/macos-10.14.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/anka/macos-10.14.sh b/.cicd/anka/macos-10.14.sh index e870df09213..0767110a7fb 100755 --- a/.cicd/anka/macos-10.14.sh +++ b/.cicd/anka/macos-10.14.sh @@ -12,7 +12,7 @@ git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ mkdir ../../build && cd ../../build && \ cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ - make -j $(nproc) && \ + make -j10 && \ make install && \ cd ../.. && \ rm -rf clang8/ \ No newline at end of file From 41a0c7f7d20ee6536e094ea013456ae47811f56e Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 28 Aug 2019 10:32:51 -0400 Subject: [PATCH 387/528] Limit clang build on Mac. --- .cicd/anka/macos-10.14.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/anka/macos-10.14.sh b/.cicd/anka/macos-10.14.sh index 0767110a7fb..be28d676d36 100755 --- a/.cicd/anka/macos-10.14.sh +++ b/.cicd/anka/macos-10.14.sh @@ -12,7 +12,7 @@ git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ mkdir ../../build && cd ../../build && \ cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ - make -j10 && \ + make -j$(getconf _NPROCESSORS_ONLN) && \ make install && \ cd ../.. && \ rm -rf clang8/ \ No newline at end of file From 666b9d2ea34e1ea70950fbb184fd231a0fa4e8eb Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 28 Aug 2019 10:39:46 -0400 Subject: [PATCH 388/528] Limit clang build on Mac. --- .cicd/anka/macos-10.14.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/anka/macos-10.14.sh b/.cicd/anka/macos-10.14.sh index be28d676d36..206b9f3b08d 100755 --- a/.cicd/anka/macos-10.14.sh +++ b/.cicd/anka/macos-10.14.sh @@ -13,6 +13,6 @@ git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git mkdir ../../build && cd ../../build && \ cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ make -j$(getconf _NPROCESSORS_ONLN) && \ - make install && \ + sudo make install && \ cd ../.. && \ rm -rf clang8/ \ No newline at end of file From bd1062ac89c6d0139f97c66cb57b569dad792cfc Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Wed, 28 Aug 2019 11:27:03 -0400 Subject: [PATCH 389/528] Remove line continuations --- .cicd/anka/macos-10.14.sh | 59 +++++++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 15 deletions(-) diff --git a/.cicd/anka/macos-10.14.sh b/.cicd/anka/macos-10.14.sh index 206b9f3b08d..f23aec4e016 100755 --- a/.cicd/anka/macos-10.14.sh +++ b/.cicd/anka/macos-10.14.sh @@ -1,18 +1,47 @@ #!/bin/bash brew update brew install git boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen openssl mongodb ccache -git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ - cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ - cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ - cd ../../../../../projects/ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ - mkdir ../../build && cd ../../build && \ - cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ - make -j$(getconf _NPROCESSORS_ONLN) && \ - sudo make install && \ - cd ../.. && \ - rm -rf clang8/ \ No newline at end of file +git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 +cd clang8 +git checkout 18e41dc +cd tools +git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git +cd lld +git checkout d60a035 +cd ../ +git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git +cd polly +git checkout 1bc06e5 +cd ../ +git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang +cd clang +git checkout a03da8b +cd tools +mkdir extra +cd extra +git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git +cd clang-tools-extra +git checkout 6b34834 +cd ../../../../../projects/ +git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git +cd libcxx +git checkout 1853712 +cd ../ +git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git +cd libcxxabi +git checkout d7338a4 +cd ../ +git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git +cd libunwind +git checkout 57f6739 +cd ../ +git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git +cd compiler-rt +git checkout 5bc7979 +mkdir ../../build +cd ../../build +cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. +make -j $(getconf _NPROCESSORS_ONLN) +sudo make install +cd ../.. +rm -rf clang8 \ No newline at end of file From fd854a7912903c1bc07c80ab3531592a4c02faa1 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 28 Aug 2019 11:44:40 -0400 Subject: [PATCH 390/528] MacOS should use correct packaging script. --- .cicd/pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 3cf51d5f77f..16afb8a690c 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -287,7 +287,7 @@ steps: command: - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT" - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && ./.cicd/package-builder.sh" + - "cd eos && ./.cicd/package.sh" plugins: - chef/anka#v0.5.1: no-volume: true From 4dbc449879d6824441bf9eefe7c63128fefd03e9 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 28 Aug 2019 11:44:50 -0400 Subject: [PATCH 391/528] Docker login not required. --- .cicd/installation-build.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh index b2dd1b8ac44..5e519712623 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/installation-build.sh @@ -9,7 +9,6 @@ if [[ $BUILDKITE_BRANCH =~ ^release/[0-9].[0-9]+.x$ || $BUILDKITE_BRANCH =~ ^mas export BRANCH=$(echo $BUILDKITE_BRANCH | sed 's/\//\_/') export CONTRACTS_BUILDER_TAG="eosio/ci-contracts-builder:base-ubuntu-18.04" export ARGS="--name ci-contracts-builder-$BUILDKITE_COMMIT --init -v $(pwd):$MOUNTED_DIR" - docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD $CICD_DIR/build.sh From 0a277e68e134314380665d401d000deb85443de9 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 28 Aug 2019 11:46:10 -0400 Subject: [PATCH 392/528] Fix regression of packaging steps. --- .cicd/pipeline.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 16afb8a690c..87c1305d769 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -247,7 +247,7 @@ steps: - label: ":centos: CentOS 7.6 - Package Builder" command: - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package-builder.sh" + - "./.cicd/package.sh" env: BUILDKITE_AGENT_ACCESS_TOKEN: OS: "el7" # OS and PKGTYPE required for lambdas @@ -260,7 +260,7 @@ steps: - label: ":ubuntu: Ubuntu 16.04 - Package Builder" command: - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package-builder.sh" + - "./.cicd/package.sh" env: BUILDKITE_AGENT_ACCESS_TOKEN: OS: "ubuntu-16.04" # OS and PKGTYPE required for lambdas @@ -273,7 +273,7 @@ steps: - label: ":ubuntu: Ubuntu 18.04 - Package Builder" command: - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - - "./.cicd/package-builder.sh" + - "./.cicd/package.sh" env: BUILDKITE_AGENT_ACCESS_TOKEN: OS: "ubuntu-18.04" # OS and PKGTYPE required for lambdas From 319f115a5215bac8b2b0df6f483e5172fdbd7fc3 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 28 Aug 2019 11:54:03 -0400 Subject: [PATCH 393/528] quick fixes --- .cicd/generate-base-images.sh | 2 +- .cicd/generate-pipeline.sh | 258 ++++++++++++++++++ .cicd/generate-serial-tests.sh | 63 ----- .cicd/helpers/docker-hash.sh | 24 -- .cicd/helpers/general.sh | 9 +- .cicd/helpers/hash.sh | 15 + .cicd/pipeline.yml | 215 +-------------- .../amazon_linux-2-unpinned.dockerfile | 0 .../amazon_linux-2.dockerfile | 0 .../centos-7.6-unpinned.dockerfile | 0 .../centos-7.6.dockerfile | 0 .cicd/platforms/macos-10.14-unpinned.sh | 3 + .cicd/{anka => platforms}/macos-10.14.sh | 0 .../ubuntu-16.04.dockerfile | 0 .../ubuntu-18.04-unpinned.dockerfile | 0 .../ubuntu-18.04.dockerfile | 0 16 files changed, 288 insertions(+), 301 deletions(-) create mode 100755 .cicd/generate-pipeline.sh delete mode 100755 .cicd/generate-serial-tests.sh delete mode 100644 .cicd/helpers/docker-hash.sh create mode 100644 .cicd/helpers/hash.sh rename .cicd/{docker => platforms}/amazon_linux-2-unpinned.dockerfile (100%) rename .cicd/{docker => platforms}/amazon_linux-2.dockerfile (100%) rename .cicd/{docker => platforms}/centos-7.6-unpinned.dockerfile (100%) rename .cicd/{docker => platforms}/centos-7.6.dockerfile (100%) create mode 100755 .cicd/platforms/macos-10.14-unpinned.sh rename .cicd/{anka => platforms}/macos-10.14.sh (100%) rename .cicd/{docker => platforms}/ubuntu-16.04.dockerfile (100%) rename .cicd/{docker => platforms}/ubuntu-18.04-unpinned.dockerfile (100%) rename .cicd/{docker => platforms}/ubuntu-18.04.dockerfile (100%) diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index 94abce495cf..bc20af213aa 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -9,7 +9,7 @@ TAG=$(echo $FULL_TAG | cut -d: -f2) EXISTS=$(curl -s -H "Authorization: Bearer $(curl -sSL "https://auth.docker.io/token?service=registry.docker.io&scope=repository:${ORG_REPO}:pull" | jq --raw-output .token)" "https://registry.hub.docker.com/v2/${ORG_REPO}/manifests/$TAG") # build, if neccessary if [[ $EXISTS =~ '404 page not found' || $EXISTS =~ 'manifest unknown' ]]; then # if we cannot pull the image, we build and push it first - docker build -t $FULL_TAG -f $CICD_DIR/docker/${IMAGE_TAG}.dockerfile . + docker build -t $FULL_TAG -f $CICD_DIR/platform/${IMAGE_TAG}.dockerfile . docker push $FULL_TAG else echo "$FULL_TAG already exists." diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh new file mode 100755 index 00000000000..fdb926ec8c9 --- /dev/null +++ b/.cicd/generate-pipeline.sh @@ -0,0 +1,258 @@ +#!/usr/bin/env bash +set -eo pipefail +. ./.cicd/helpers/general.sh +. ./.cicd/helpers/hash.sh + +export PLATFORMS_JSON_ARRAY=() + +# Use FILEs as source of truth for what platforms to use +for FILE in $(ls $CICD_DIR/platforms); do + + # Support if users want to run unpinned + if ( [[ $PINNED == false ]] || [[ $UNPINNED == true ]] ); then + [[ ! $FILE =~ 'unpinned' ]] && continue + else + [[ $FILE =~ 'unpinned' ]] && continue + fi + + FILE_NAME=$(echo $FILE | awk '{split($0,a,/\.(d|s)/); print a[1] }') + PLATFORM_NAME=$(echo $FILE_NAME | cut -d- -f1 | sed 's/os/OS/g') + PLATFORM_NAME_UPCASE=$(echo $PLATFORM_NAME | tr a-z A-Z) + VERSION_MAJOR=$(echo $FILE_NAME | cut -d- -f2 | cut -d. -f1) + [[ $(echo $FILE_NAME | cut -d- -f2) =~ '.' ]] && VERSION_MINOR="_$(echo $FILE_NAME | cut -d- -f2 | cut -d. -f2)" + VERSION_FULL=$(echo $FILE_NAME | cut -d- -f2) + OLDIFS=$IFS;IFS="_";set $PLATFORM_NAME;IFS=$OLDIFS + PLATFORM_NAME_FULL="$(capitalize $1)$( [[ ! -z $2 ]] && echo "_$(capitalize $2)" || true ) $VERSION_FULL" + [[ $FILE_NAME =~ 'amazon' ]] && ICON=':aws:' + [[ $FILE_NAME =~ 'ubuntu' ]] && ICON=':ubuntu:' + [[ $FILE_NAME =~ 'centos' ]] && ICON=':centos:' + [[ $FILE_NAME =~ 'macos' ]] && ICON=':darwin:' + + determine-hash $CICD_DIR/platforms/$FILE # returns HASHED_IMAGE_TAG, etc + + PLATFORMS_JSON_ARRAY+=("{ + \"FILE_NAME\": \"$FILE_NAME\", + \"PLATFORM_NAME\": \"$PLATFORM_NAME\", + \"PLATFORM_NAME_UPCASE\": \"$PLATFORM_NAME_UPCASE\", + \"VERSION_MAJOR\": $VERSION_MAJOR, + \"VERSION_MINOR\": \"$VERSION_MINOR\", + \"VERSION_FULL\": $VERSION_FULL, + \"PLATFORM_NAME_FULL\": \"$PLATFORM_NAME_FULL\", + \"DOCKERHUB FULL_TAG\": \"$FULL_TAG\", + \"HASHED_IMAGE_TAG\": \"$HASHED_IMAGE_TAG\", + \"ICON\": \"$ICON\" + }") + +done + +oIFS="$IFS"; IFS=$''; nIFS=$IFS # Needed to fix array splitting (\n won't work) + +############### +# BUILD STEPS # +for PLATFORM_JSON in ${PLATFORMS_JSON_ARRAY[*]}; do + # echo "$PLATFORM_JSON" | jq + if [[ ! $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) =~ 'macos' ]]; then + + cat < Date: Wed, 28 Aug 2019 11:54:37 -0400 Subject: [PATCH 394/528] Fix regression of packaging steps. --- .cicd/pipeline.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 87c1305d769..242fe973c55 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -249,6 +249,7 @@ steps: - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - "./.cicd/package.sh" env: + IMAGE_TAG: "centos-7.6" BUILDKITE_AGENT_ACCESS_TOKEN: OS: "el7" # OS and PKGTYPE required for lambdas PKGTYPE: "rpm" @@ -262,6 +263,7 @@ steps: - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - "./.cicd/package.sh" env: + IMAGE_TAG: "ubuntu-16.04" BUILDKITE_AGENT_ACCESS_TOKEN: OS: "ubuntu-16.04" # OS and PKGTYPE required for lambdas PKGTYPE: "deb" @@ -275,6 +277,7 @@ steps: - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' --agent-access-token $$BUILDKITE_AGENT_ACCESS_TOKEN && tar -xzf build.tar.gz" - "./.cicd/package.sh" env: + IMAGE_TAG: "ubuntu-18.04" BUILDKITE_AGENT_ACCESS_TOKEN: OS: "ubuntu-18.04" # OS and PKGTYPE required for lambdas PKGTYPE: "deb" From c30f1e843768228fdde3fcf5cf9c55d090e03208 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 28 Aug 2019 11:56:16 -0400 Subject: [PATCH 395/528] quick fixes --- .cicd/generate-pipeline.sh | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index fdb926ec8c9..c73775bf47c 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -5,7 +5,7 @@ set -eo pipefail export PLATFORMS_JSON_ARRAY=() -# Use FILEs as source of truth for what platforms to use +# Use files in platforms dir as source of truth for what platforms we need to generate steps for for FILE in $(ls $CICD_DIR/platforms); do # Support if users want to run unpinned @@ -219,7 +219,7 @@ for PLATFORM_JSON in ${PLATFORMS_JSON_ARRAY[*]}; do agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_LONG_RUNNING_TESTS} + skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_LONG_RUNNING_TESTS:-true} EOF @@ -245,7 +245,7 @@ EOF wait-network: true agents: - "queue=mac-anka-large-node-fleet" - skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_LONG_RUNNING_TESTS} + skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_LONG_RUNNING_TESTS:-true} EOF @@ -253,6 +253,3 @@ EOF done IFS=$oIFS - -echo " - wait" -echo "" \ No newline at end of file From 846aa6fde46c8d0dcfd06136c4354b442268fa26 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 28 Aug 2019 12:03:29 -0400 Subject: [PATCH 396/528] quick fixes --- .cicd/build.sh | 2 +- .cicd/generate-base-images.sh | 3 ++- .cicd/generate-pipeline.sh | 5 ++++- .cicd/helpers/general.sh | 3 --- .cicd/long-running-tests.sh | 2 +- .cicd/package.sh | 2 +- .cicd/parallel-tests.sh | 2 +- .cicd/serial-tests.sh | 2 +- 8 files changed, 11 insertions(+), 10 deletions(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index 4102875ccc2..9316ee415e9 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -17,7 +17,7 @@ else # Linux ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} - . $HELPERS_DIR/docker-hash.sh + . $HELPERS_DIR/hash.sh $CICD_DIR/platforms/$IMAGE_TAG.dockerfile PRE_COMMANDS="cd $MOUNTED_DIR/build" # PRE_COMMANDS: Executed pre-cmake diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index bc20af213aa..fe238763fea 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -1,7 +1,8 @@ #!/usr/bin/env bash set -eo pipefail . ./.cicd/helpers/general.sh -. $HELPERS_DIR/docker-hash.sh +. $HELPERS_DIR/hash.sh $CICD_DIR/platforms/${IMAGE_TAG}.dockerfile + # look for Docker image echo "+++ :mag_right: Looking for $FULL_TAG" ORG_REPO=$(echo $FULL_TAG | cut -d: -f1) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index c73775bf47c..f4d1e78f4cb 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -1,7 +1,10 @@ #!/usr/bin/env bash set -eo pipefail . ./.cicd/helpers/general.sh -. ./.cicd/helpers/hash.sh +. $HELPERS_DIR/hash.sh + +export MOJAVE_ANKA_TAG_BASE='clean::cicd::git-ssh::nas::brew::buildkite-agent' +export MOJAVE_ANKA_TEMPLATE_NAME='10.14.4_6C_14G_40G' export PLATFORMS_JSON_ARRAY=() diff --git a/.cicd/helpers/general.sh b/.cicd/helpers/general.sh index 56ef5820c83..4c67fffac49 100644 --- a/.cicd/helpers/general.sh +++ b/.cicd/helpers/general.sh @@ -5,9 +5,6 @@ export HELPERS_DIR=$CICD_DIR/helpers export JOBS=${JOBS:-"$(getconf _NPROCESSORS_ONLN)"} export MOUNTED_DIR='/workdir' -export MOJAVE_ANKA_TAG_BASE='clean::cicd::git-ssh::nas::brew::buildkite-agent' -export MOJAVE_ANKA_TEMPLATE_NAME='10.14.4_6C_14G_40G' - function capitalize() { if [[ ! $1 =~ 'mac' ]]; then # Don't capitalize mac echo $1 | awk '{$1=toupper(substr($1,1,1))substr($1,2)}1' diff --git a/.cicd/long-running-tests.sh b/.cicd/long-running-tests.sh index bd77b98014d..aee36c07c54 100755 --- a/.cicd/long-running-tests.sh +++ b/.cicd/long-running-tests.sh @@ -14,7 +14,7 @@ else # Linux ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} - . $HELPERS_DIR/docker-hash.sh + . $HELPERS_DIR/hash.sh $CICD_DIR/platforms/$IMAGE_TAG.dockerfile PRE_COMMANDS="cd $MOUNTED_DIR/build" [[ $IMAGE_TAG == 'centos-7.6' ]] && PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:\\\$PATH" diff --git a/.cicd/package.sh b/.cicd/package.sh index f1b4e6d23c6..98680cd6583 100755 --- a/.cicd/package.sh +++ b/.cicd/package.sh @@ -25,7 +25,7 @@ else # Linux ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} - . $HELPERS_DIR/docker-hash.sh + . $HELPERS_DIR/hash.sh $CICD_DIR/platforms/$IMAGE_TAG.dockerfile PRE_COMMANDS="cd $MOUNTED_DIR/build/packages && chmod 755 ./*.sh" diff --git a/.cicd/parallel-tests.sh b/.cicd/parallel-tests.sh index 888e7e6be27..5301be96dc0 100755 --- a/.cicd/parallel-tests.sh +++ b/.cicd/parallel-tests.sh @@ -14,7 +14,7 @@ else # Linux ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} - . $HELPERS_DIR/docker-hash.sh + . $HELPERS_DIR/hash.sh $CICD_DIR/platforms/$IMAGE_TAG.dockerfile COMMANDS="cd $MOUNTED_DIR/build && $TEST" diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index 770a0670d43..4e058049d75 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -16,7 +16,7 @@ else # Linux ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} - . $HELPERS_DIR/docker-hash.sh + . $HELPERS_DIR/hash.sh $CICD_DIR/platforms/$IMAGE_TAG.dockerfile PRE_COMMANDS="cd $MOUNTED_DIR/build" [[ $IMAGE_TAG == 'centos-7.6' ]] && PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:\\\$PATH" From ccb87424d0510c858aa263316c50b695e3fef99a Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 28 Aug 2019 12:07:55 -0400 Subject: [PATCH 397/528] quick fixes --- .cicd/helpers/hash.sh | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.cicd/helpers/hash.sh b/.cicd/helpers/hash.sh index 5bcceaa8000..4140a5b8b7e 100644 --- a/.cicd/helpers/hash.sh +++ b/.cicd/helpers/hash.sh @@ -1,15 +1,15 @@ -function determine-hash() { - # determine the sha1 hash of all dockerfiles in the .cicd directory - [[ -z $1 ]] && echo "Please provide the files to be hashed (wildcards supported)" && exit 1 - FILE_NAME=$(basename $1 | awk '{split($0,a,/\.(d|s)/); print a[1] }') - # collect all files, hash each, then get a hash of hashes - HASHES=() - for FILE in $(find $1 -type f); do - HASH=$(sha1sum $FILE | sha1sum | awk '{ print $1 }') - HASHES=($HASH "${HASHES[*]}") - #echo "$FILE - $HASH" - done - export DETERMINED_HASH=$(echo ${HASHES[*]} | sha1sum | awk '{ print $1 }') - export HASHED_IMAGE_TAG="eos-${FILE_NAME}-${DETERMINED_HASH}" - export FULL_TAG="eosio/producer:$HASHED_IMAGE_TAG" -} +#!/bin/bash +set -eo pipefail +# determine the sha1 hash of all dockerfiles in the .cicd directory +[[ -z $1 ]] && echo "Please provide the files to be hashed (wildcards supported)" && exit 1 +FILE_NAME=$(basename $1 | awk '{split($0,a,/\.(d|s)/); print a[1] }') +# collect all files, hash each, then get a hash of hashes +HASHES=() +for FILE in $(find $1 -type f); do + HASH=$(sha1sum $FILE | sha1sum | awk '{ print $1 }') + HASHES=($HASH "${HASHES[*]}") + #echo "$FILE - $HASH" +done +export DETERMINED_HASH=$(echo ${HASHES[*]} | sha1sum | awk '{ print $1 }') +export HASHED_IMAGE_TAG="eos-${FILE_NAME}-${DETERMINED_HASH}" +export FULL_TAG="eosio/producer:$HASHED_IMAGE_TAG" From bd0fe01573bd9a8b00a1a3fed4c2a861a2471a86 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 28 Aug 2019 12:09:47 -0400 Subject: [PATCH 398/528] quick fixes --- .cicd/generate-pipeline.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index f4d1e78f4cb..62f780a479c 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -1,7 +1,6 @@ #!/usr/bin/env bash set -eo pipefail . ./.cicd/helpers/general.sh -. $HELPERS_DIR/hash.sh export MOJAVE_ANKA_TAG_BASE='clean::cicd::git-ssh::nas::brew::buildkite-agent' export MOJAVE_ANKA_TEMPLATE_NAME='10.14.4_6C_14G_40G' @@ -31,7 +30,7 @@ for FILE in $(ls $CICD_DIR/platforms); do [[ $FILE_NAME =~ 'centos' ]] && ICON=':centos:' [[ $FILE_NAME =~ 'macos' ]] && ICON=':darwin:' - determine-hash $CICD_DIR/platforms/$FILE # returns HASHED_IMAGE_TAG, etc + $HELPERS_DIR/hash.sh $CICD_DIR/platforms/$FILE # returns HASHED_IMAGE_TAG, etc PLATFORMS_JSON_ARRAY+=("{ \"FILE_NAME\": \"$FILE_NAME\", From 24009f962b6df2cdffb859f4af0dd0a00d89e5c0 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 28 Aug 2019 12:11:45 -0400 Subject: [PATCH 399/528] quick fixes --- .cicd/helpers/hash.sh | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) mode change 100644 => 100755 .cicd/helpers/hash.sh diff --git a/.cicd/helpers/hash.sh b/.cicd/helpers/hash.sh old mode 100644 new mode 100755 index 4140a5b8b7e..e41456dc9f6 --- a/.cicd/helpers/hash.sh +++ b/.cicd/helpers/hash.sh @@ -1,15 +1,7 @@ #!/bin/bash set -eo pipefail -# determine the sha1 hash of all dockerfiles in the .cicd directory -[[ -z $1 ]] && echo "Please provide the files to be hashed (wildcards supported)" && exit 1 +[[ -z $1 ]] && echo "Please provide the file to be hashed" && exit 1 FILE_NAME=$(basename $1 | awk '{split($0,a,/\.(d|s)/); print a[1] }') -# collect all files, hash each, then get a hash of hashes -HASHES=() -for FILE in $(find $1 -type f); do - HASH=$(sha1sum $FILE | sha1sum | awk '{ print $1 }') - HASHES=($HASH "${HASHES[*]}") - #echo "$FILE - $HASH" -done -export DETERMINED_HASH=$(echo ${HASHES[*]} | sha1sum | awk '{ print $1 }') +export DETERMINED_HASH=$(sha1sum $1 | sha1sum | awk '{ print $1 }') export HASHED_IMAGE_TAG="eos-${FILE_NAME}-${DETERMINED_HASH}" export FULL_TAG="eosio/producer:$HASHED_IMAGE_TAG" From a2d79f75735c27465dbeca2b2f946b7008f7ed80 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 28 Aug 2019 12:12:31 -0400 Subject: [PATCH 400/528] quick fixes --- .cicd/build.sh | 2 +- .cicd/generate-base-images.sh | 2 +- .cicd/generate-pipeline.sh | 2 +- .cicd/helpers/{hash.sh => file-hash.sh} | 0 .cicd/long-running-tests.sh | 2 +- .cicd/package.sh | 2 +- .cicd/parallel-tests.sh | 2 +- .cicd/serial-tests.sh | 2 +- 8 files changed, 7 insertions(+), 7 deletions(-) rename .cicd/helpers/{hash.sh => file-hash.sh} (100%) diff --git a/.cicd/build.sh b/.cicd/build.sh index 9316ee415e9..befecab4ed4 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -17,7 +17,7 @@ else # Linux ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} - . $HELPERS_DIR/hash.sh $CICD_DIR/platforms/$IMAGE_TAG.dockerfile + . $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/$IMAGE_TAG.dockerfile PRE_COMMANDS="cd $MOUNTED_DIR/build" # PRE_COMMANDS: Executed pre-cmake diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index fe238763fea..2bef0a73eb9 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -eo pipefail . ./.cicd/helpers/general.sh -. $HELPERS_DIR/hash.sh $CICD_DIR/platforms/${IMAGE_TAG}.dockerfile +. $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/${IMAGE_TAG}.dockerfile # look for Docker image echo "+++ :mag_right: Looking for $FULL_TAG" diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 62f780a479c..9fb344192ea 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -30,7 +30,7 @@ for FILE in $(ls $CICD_DIR/platforms); do [[ $FILE_NAME =~ 'centos' ]] && ICON=':centos:' [[ $FILE_NAME =~ 'macos' ]] && ICON=':darwin:' - $HELPERS_DIR/hash.sh $CICD_DIR/platforms/$FILE # returns HASHED_IMAGE_TAG, etc + $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/$FILE # returns HASHED_IMAGE_TAG, etc PLATFORMS_JSON_ARRAY+=("{ \"FILE_NAME\": \"$FILE_NAME\", diff --git a/.cicd/helpers/hash.sh b/.cicd/helpers/file-hash.sh similarity index 100% rename from .cicd/helpers/hash.sh rename to .cicd/helpers/file-hash.sh diff --git a/.cicd/long-running-tests.sh b/.cicd/long-running-tests.sh index aee36c07c54..2d70228c6b5 100755 --- a/.cicd/long-running-tests.sh +++ b/.cicd/long-running-tests.sh @@ -14,7 +14,7 @@ else # Linux ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} - . $HELPERS_DIR/hash.sh $CICD_DIR/platforms/$IMAGE_TAG.dockerfile + . $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/$IMAGE_TAG.dockerfile PRE_COMMANDS="cd $MOUNTED_DIR/build" [[ $IMAGE_TAG == 'centos-7.6' ]] && PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:\\\$PATH" diff --git a/.cicd/package.sh b/.cicd/package.sh index 98680cd6583..7a1700d7f62 100755 --- a/.cicd/package.sh +++ b/.cicd/package.sh @@ -25,7 +25,7 @@ else # Linux ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} - . $HELPERS_DIR/hash.sh $CICD_DIR/platforms/$IMAGE_TAG.dockerfile + . $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/$IMAGE_TAG.dockerfile PRE_COMMANDS="cd $MOUNTED_DIR/build/packages && chmod 755 ./*.sh" diff --git a/.cicd/parallel-tests.sh b/.cicd/parallel-tests.sh index 5301be96dc0..706f6410452 100755 --- a/.cicd/parallel-tests.sh +++ b/.cicd/parallel-tests.sh @@ -14,7 +14,7 @@ else # Linux ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} - . $HELPERS_DIR/hash.sh $CICD_DIR/platforms/$IMAGE_TAG.dockerfile + . $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/$IMAGE_TAG.dockerfile COMMANDS="cd $MOUNTED_DIR/build && $TEST" diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index 4e058049d75..6c02a17f412 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -16,7 +16,7 @@ else # Linux ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} - . $HELPERS_DIR/hash.sh $CICD_DIR/platforms/$IMAGE_TAG.dockerfile + . $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/$IMAGE_TAG.dockerfile PRE_COMMANDS="cd $MOUNTED_DIR/build" [[ $IMAGE_TAG == 'centos-7.6' ]] && PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:\\\$PATH" From 1e622d113aa400e99fa473f3b9805756601fc21e Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 28 Aug 2019 12:55:20 -0400 Subject: [PATCH 401/528] quick fixes --- .cicd/generate-base-images.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index 2bef0a73eb9..849b9d36ef6 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -10,7 +10,7 @@ TAG=$(echo $FULL_TAG | cut -d: -f2) EXISTS=$(curl -s -H "Authorization: Bearer $(curl -sSL "https://auth.docker.io/token?service=registry.docker.io&scope=repository:${ORG_REPO}:pull" | jq --raw-output .token)" "https://registry.hub.docker.com/v2/${ORG_REPO}/manifests/$TAG") # build, if neccessary if [[ $EXISTS =~ '404 page not found' || $EXISTS =~ 'manifest unknown' ]]; then # if we cannot pull the image, we build and push it first - docker build -t $FULL_TAG -f $CICD_DIR/platform/${IMAGE_TAG}.dockerfile . + docker build -t $FULL_TAG -f $CICD_DIR/platforms/${IMAGE_TAG}.dockerfile . docker push $FULL_TAG else echo "$FULL_TAG already exists." From 352b05141ab3f8ff11906e21eda68ea3fd19c8de Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 28 Aug 2019 13:32:13 -0400 Subject: [PATCH 402/528] quick fixes --- .cicd/generate-pipeline.sh | 30 +++++++++++++++++++++++++++++- .cicd/pipeline.yml | 11 +++++++---- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 9fb344192ea..460c492bba5 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -7,6 +7,8 @@ export MOJAVE_ANKA_TEMPLATE_NAME='10.14.4_6C_14G_40G' export PLATFORMS_JSON_ARRAY=() +( [[ $PINNED == false ]] || [[ $UNPINNED == true ]] ) && UNPINNED_APPEND='-unpinned' + # Use files in platforms dir as source of truth for what platforms we need to generate steps for for FILE in $(ls $CICD_DIR/platforms); do @@ -49,6 +51,32 @@ done oIFS="$IFS"; IFS=$''; nIFS=$IFS # Needed to fix array splitting (\n won't work) +################### +# Anka Ensure Tag # +for PLATFORM_JSON in ${PLATFORMS_JSON_ARRAY[*]}; do + # echo "$PLATFORM_JSON" | jq + if [[ $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) =~ 'macos' ]]; then + cat < Date: Wed, 28 Aug 2019 13:34:02 -0400 Subject: [PATCH 403/528] quick fixes --- .cicd/generate-pipeline.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 460c492bba5..b995ffa48d4 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -77,6 +77,8 @@ EOF fi done +echo " - wait"; echo "" + ############### # BUILD STEPS # for PLATFORM_JSON in ${PLATFORMS_JSON_ARRAY[*]}; do @@ -126,8 +128,7 @@ EOF fi done -echo " - wait" -echo "" +echo " - wait"; echo "" ############## # UNIT TESTS # From 0bea98b6de47785cb3c219b3fcb2024eabe2d324 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 28 Aug 2019 13:36:33 -0400 Subject: [PATCH 404/528] quick fixes --- .cicd/generate-pipeline.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index b995ffa48d4..b55479c4a71 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -64,11 +64,11 @@ for PLATFORM_JSON in ${PLATFORMS_JSON_ARRAY[*]}; do agents: - "queue=mac-anka-templater-fleet" env: - REPO: \${BUILDKITE_PULL_REQUEST_REPO:-$BUILDKITE_REPO} + REPO: ${BUILDKITE_PULL_REQUEST_REPO:-$BUILDKITE_REPO} REPO_COMMIT: \$BUILDKITE_COMMIT TEMPLATE: $MOJAVE_ANKA_TEMPLATE_NAME TEMPLATE_TAG: $MOJAVE_ANKA_TAG_BASE - TAG_COMMANDS: "git clone \$BUILDKITE_HTTPS_REPO_URL eos && cd eos && git checkout \$BUILDKITE_COMMIT && git submodule update --init --recursive && ./.cicd/platforms/macos-10.14${UNPINNED_APPEND}.sh && ./.cicd/build.sh && cd .. && rm -rf eos" + TAG_COMMANDS: "git clone $BUILDKITE_HTTPS_REPO_URL eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive && ./.cicd/platforms/macos-10.14${UNPINNED_APPEND}.sh && ./.cicd/build.sh && cd .. && rm -rf eos" PROJECT_TAG: $(echo "$PLATFORM_JSON" | jq -r .HASHED_IMAGE_TAG) timeout: ${TIMEOUT:-320} skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_ENSURE_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)} From e7f87bdc4ce5b588cc783e2c9c11ecaeaf8bdd4f Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 28 Aug 2019 13:42:19 -0400 Subject: [PATCH 405/528] quick fixes --- .cicd/generate-pipeline.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index b55479c4a71..0e62bd0b00a 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -54,7 +54,7 @@ oIFS="$IFS"; IFS=$''; nIFS=$IFS # Needed to fix array splitting (\n won't work) ################### # Anka Ensure Tag # for PLATFORM_JSON in ${PLATFORMS_JSON_ARRAY[*]}; do - # echo "$PLATFORM_JSON" | jq + echo "$PLATFORM_JSON" | jq if [[ $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) =~ 'macos' ]]; then cat < Date: Wed, 28 Aug 2019 13:53:41 -0400 Subject: [PATCH 406/528] quick fixes --- .cicd/generate-pipeline.sh | 417 ++++++++++++++++++------------------- 1 file changed, 208 insertions(+), 209 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 0e62bd0b00a..10d7d3d68b5 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -54,7 +54,6 @@ oIFS="$IFS"; IFS=$''; nIFS=$IFS # Needed to fix array splitting (\n won't work) ################### # Anka Ensure Tag # for PLATFORM_JSON in ${PLATFORMS_JSON_ARRAY[*]}; do - echo "$PLATFORM_JSON" | jq if [[ $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) =~ 'macos' ]]; then cat < Date: Wed, 28 Aug 2019 13:53:52 -0400 Subject: [PATCH 407/528] quick fixes --- .cicd/generate-pipeline.sh | 414 ++++++++++++++++++------------------- 1 file changed, 207 insertions(+), 207 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 10d7d3d68b5..353c374b2f4 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -76,210 +76,210 @@ EOF fi done -# echo " - wait"; echo "" - -# ############### -# # BUILD STEPS # -# for PLATFORM_JSON in ${PLATFORMS_JSON_ARRAY[*]}; do -# # echo "$PLATFORM_JSON" | jq -# if [[ ! $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) =~ 'macos' ]]; then - -# cat < Date: Wed, 28 Aug 2019 14:00:19 -0400 Subject: [PATCH 408/528] quick fixes --- .cicd/generate-pipeline.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 353c374b2f4..415f91b8459 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -67,8 +67,8 @@ for PLATFORM_JSON in ${PLATFORMS_JSON_ARRAY[*]}; do REPO_COMMIT: $BUILDKITE_COMMIT TEMPLATE: $MOJAVE_ANKA_TEMPLATE_NAME TEMPLATE_TAG: $MOJAVE_ANKA_TAG_BASE - TAG_COMMANDS: "git clone https://github.com$(echo ${BUILDKITE_PULL_REQUEST_REPO:-$BUILDKITE_REPO} | awk -F'github.com' '{print $2}') eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive && ./.cicd/platforms/macos-10.14${UNPINNED_APPEND}.sh && ./.cicd/build.sh && cd .. && rm -rf eos" - PROJECT_TAG: $(echo "$PLATFORM_JSON" | jq -r .HASHED_IMAGE_TAG) + TAG_COMMANDS: "git clone https://github.com/$(echo ${BUILDKITE_PULL_REQUEST_REPO:-$BUILDKITE_REPO} | awk -F'github.com:' '{print $2}') eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive && ./.cicd/platforms/macos-10.14${UNPINNED_APPEND}.sh && ./.cicd/build.sh && cd .. && rm -rf eos" + PROJECT_TAG: $(echo "$PLATFORM_JSON") timeout: ${TIMEOUT:-320} skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_ENSURE_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)} From fb42bf9d2533c0f66d543a169356336cc96a2070 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 28 Aug 2019 14:07:07 -0400 Subject: [PATCH 409/528] quick fixes --- .cicd/generate-pipeline.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 415f91b8459..4c94fb43a3e 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -58,6 +58,7 @@ for PLATFORM_JSON in ${PLATFORMS_JSON_ARRAY[*]}; do cat < Date: Wed, 28 Aug 2019 14:17:10 -0400 Subject: [PATCH 410/528] quick fixes --- .cicd/generate-pipeline.sh | 414 +++++++++++++++++++------------------ .cicd/helpers/general.sh | 14 ++ 2 files changed, 222 insertions(+), 206 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 4c94fb43a3e..0f4d8e3d27b 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -4,6 +4,7 @@ set -eo pipefail export MOJAVE_ANKA_TAG_BASE='clean::cicd::git-ssh::nas::brew::buildkite-agent' export MOJAVE_ANKA_TEMPLATE_NAME='10.14.4_6C_14G_40G' +export $(echo ${BUILDKITE_PULL_REQUEST_REPO:-$BUILDKITE_REPO} | awk -F'github.com:' '{print $2}') export PLATFORMS_JSON_ARRAY=() @@ -54,6 +55,7 @@ oIFS="$IFS"; IFS=$''; nIFS=$IFS # Needed to fix array splitting (\n won't work) ################### # Anka Ensure Tag # for PLATFORM_JSON in ${PLATFORMS_JSON_ARRAY[*]}; do + echo "PLATFORM_JSON: $PLATFORM_JSON" if [[ $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) =~ 'macos' ]]; then cat < Date: Wed, 28 Aug 2019 14:29:46 -0400 Subject: [PATCH 411/528] quick fixes --- .cicd/generate-pipeline.sh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 0f4d8e3d27b..4a43817f37d 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -4,7 +4,6 @@ set -eo pipefail export MOJAVE_ANKA_TAG_BASE='clean::cicd::git-ssh::nas::brew::buildkite-agent' export MOJAVE_ANKA_TEMPLATE_NAME='10.14.4_6C_14G_40G' -export $(echo ${BUILDKITE_PULL_REQUEST_REPO:-$BUILDKITE_REPO} | awk -F'github.com:' '{print $2}') export PLATFORMS_JSON_ARRAY=() @@ -55,12 +54,10 @@ oIFS="$IFS"; IFS=$''; nIFS=$IFS # Needed to fix array splitting (\n won't work) ################### # Anka Ensure Tag # for PLATFORM_JSON in ${PLATFORMS_JSON_ARRAY[*]}; do - echo "PLATFORM_JSON: $PLATFORM_JSON" if [[ $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) =~ 'macos' ]]; then cat < Date: Wed, 28 Aug 2019 14:32:44 -0400 Subject: [PATCH 412/528] quick fixes --- .cicd/generate-pipeline.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 4a43817f37d..61cdccf8cb4 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -54,6 +54,7 @@ oIFS="$IFS"; IFS=$''; nIFS=$IFS # Needed to fix array splitting (\n won't work) ################### # Anka Ensure Tag # for PLATFORM_JSON in ${PLATFORMS_JSON_ARRAY[*]}; do + HASHED_IMAGE_TAG=$(echo "$PLATFORM_JSON" | jq -r .HASHED_IMAGE_TAG) if [[ $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) =~ 'macos' ]]; then cat < Date: Wed, 28 Aug 2019 14:40:54 -0400 Subject: [PATCH 413/528] quick fixes --- .cicd/generate-pipeline.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 61cdccf8cb4..bf0d671172c 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -33,6 +33,9 @@ for FILE in $(ls $CICD_DIR/platforms); do [[ $FILE_NAME =~ 'macos' ]] && ICON=':darwin:' $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/$FILE # returns HASHED_IMAGE_TAG, etc + + echo "------------------" + echo $HASHED_IMAGE_TAG PLATFORMS_JSON_ARRAY+=("{ \"FILE_NAME\": \"$FILE_NAME\", From 37a711f3a268f8ade8ad5bd9bc1c2c724f0a7728 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 28 Aug 2019 14:41:13 -0400 Subject: [PATCH 414/528] quick fixes --- .cicd/generate-pipeline.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index bf0d671172c..07dd36260aa 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -34,8 +34,8 @@ for FILE in $(ls $CICD_DIR/platforms); do $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/$FILE # returns HASHED_IMAGE_TAG, etc - echo "------------------" - echo $HASHED_IMAGE_TAG + echo "# ------------------" + echo "# $HASHED_IMAGE_TAG" PLATFORMS_JSON_ARRAY+=("{ \"FILE_NAME\": \"$FILE_NAME\", From 6e2e0910f7fcfdbac4d762b7421e362f7eb6f23e Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Wed, 28 Aug 2019 14:41:30 -0400 Subject: [PATCH 415/528] Remove duplicate patch file. --- .cicd/docker/centos-7.6.dockerfile | 2 +- .cicd/helpers/clang-devtoolset8-support.patch | 55 ------------------- 2 files changed, 1 insertion(+), 56 deletions(-) delete mode 100644 .cicd/helpers/clang-devtoolset8-support.patch diff --git a/.cicd/docker/centos-7.6.dockerfile b/.cicd/docker/centos-7.6.dockerfile index 5bf139c9c64..8fd3d25376e 100644 --- a/.cicd/docker/centos-7.6.dockerfile +++ b/.cicd/docker/centos-7.6.dockerfile @@ -18,7 +18,7 @@ RUN curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ make install && \ cd / && \ rm -rf cmake-3.13.2.tar.gz /cmake-3.13.2 -COPY ./.cicd/helpers/clang-devtoolset8-support.patch /tmp/clang-devtoolset8-support.patch +COPY ./scripts/clang-devtoolset8-support.patch /tmp/clang-devtoolset8-support.patch # build clang8 RUN git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ diff --git a/.cicd/helpers/clang-devtoolset8-support.patch b/.cicd/helpers/clang-devtoolset8-support.patch deleted file mode 100644 index 64a946e26cd..00000000000 --- a/.cicd/helpers/clang-devtoolset8-support.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 32b65345c5760295d04c95e0abb3653fe20ffd16 Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Tue, 9 Apr 2019 13:26:10 +0000 -Subject: [PATCH] Add support for detection of devtoolset-8 - -Summary: -The current llvm/clang et al. project can be built with the latest developer toolset (devtoolset-8) on RHEL, which provides GCC 8.2.1. -However, the result compiler will not identify this toolset itself when compiling programs, which is of course not desirable. - -After the patch - which simply adds the name of the developer toolset to the existing list - it gets identified and selected, as shown below: - -[bamboo@bamboo llvm-project]$ clang -v -clang version 9.0.0 (https://github.com/llvm/llvm-project.git e5ac385fb1ffa4bd3875ea6a4d24efdbd7814572) -Target: x86_64-unknown-linux-gnu -Thread model: posix -InstalledDir: /home/bamboo/llvm/bin -Found candidate GCC installation: /opt/rh/devtoolset-4/root/usr/lib/gcc/x86_64-redhat-linux/5.2.1 -Found candidate GCC installation: /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7 -Found candidate GCC installation: /opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8 -Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/4.8.2 -Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/4.8.5 -Selected GCC installation: /opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8 -Candidate multilib: .;@m64 -Candidate multilib: 32;@m32 -Selected multilib: .;@m64 - -Patch By: Radu-Adrian Popescu - -Reviewers: tstellar, fedor.sergeev - -Reviewed By: tstellar - -Subscribers: jdoerfert, cfe-commits - -Tags: #clang - -Differential Revision: https://reviews.llvm.org/D59987 - -llvm-svn: 358002 ---- - clang/lib/Driver/ToolChains/Gnu.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp -index 2a58f0f7142..8915e3f948f 100644 ---- a/clang/lib/Driver/ToolChains/Gnu.cpp -+++ b/clang/lib/Driver/ToolChains/Gnu.cpp -@@ -1875,6 +1875,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes( - // Non-Solaris is much simpler - most systems just go with "/usr". - if (SysRoot.empty() && TargetTriple.getOS() == llvm::Triple::Linux) { - // Yet, still look for RHEL devtoolsets. -+ Prefixes.push_back("/opt/rh/devtoolset-8/root/usr"); - Prefixes.push_back("/opt/rh/devtoolset-7/root/usr"); - Prefixes.push_back("/opt/rh/devtoolset-6/root/usr"); - Prefixes.push_back("/opt/rh/devtoolset-4/root/usr"); From d4513562330fdfb414a80927a5bdbfc9291af25e Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 28 Aug 2019 14:45:40 -0400 Subject: [PATCH 416/528] quick fixes --- .cicd/generate-pipeline.sh | 8 +++----- .cicd/helpers/general.sh | 14 -------------- 2 files changed, 3 insertions(+), 19 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 07dd36260aa..4308c3e47ae 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -33,9 +33,6 @@ for FILE in $(ls $CICD_DIR/platforms); do [[ $FILE_NAME =~ 'macos' ]] && ICON=':darwin:' $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/$FILE # returns HASHED_IMAGE_TAG, etc - - echo "# ------------------" - echo "# $HASHED_IMAGE_TAG" PLATFORMS_JSON_ARRAY+=("{ \"FILE_NAME\": \"$FILE_NAME\", @@ -62,6 +59,7 @@ for PLATFORM_JSON in ${PLATFORMS_JSON_ARRAY[*]}; do cat < Date: Wed, 28 Aug 2019 14:46:53 -0400 Subject: [PATCH 417/528] quick fixes --- .cicd/generate-pipeline.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 4308c3e47ae..0c4088875e8 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -32,7 +32,7 @@ for FILE in $(ls $CICD_DIR/platforms); do [[ $FILE_NAME =~ 'centos' ]] && ICON=':centos:' [[ $FILE_NAME =~ 'macos' ]] && ICON=':darwin:' - $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/$FILE # returns HASHED_IMAGE_TAG, etc + . $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/$FILE # returns HASHED_IMAGE_TAG, etc PLATFORMS_JSON_ARRAY+=("{ \"FILE_NAME\": \"$FILE_NAME\", @@ -54,7 +54,6 @@ oIFS="$IFS"; IFS=$''; nIFS=$IFS # Needed to fix array splitting (\n won't work) ################### # Anka Ensure Tag # for PLATFORM_JSON in ${PLATFORMS_JSON_ARRAY[*]}; do - HASHED_IMAGE_TAG=$(echo "$PLATFORM_JSON" | jq -r .HASHED_IMAGE_TAG) if [[ $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) =~ 'macos' ]]; then cat < Date: Wed, 28 Aug 2019 14:47:29 -0400 Subject: [PATCH 418/528] quick fixes --- .cicd/generate-pipeline.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 0c4088875e8..0e4c3869e1c 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -58,7 +58,6 @@ for PLATFORM_JSON in ${PLATFORMS_JSON_ARRAY[*]}; do cat < Date: Wed, 28 Aug 2019 14:48:18 -0400 Subject: [PATCH 419/528] quick fixes --- .cicd/generate-pipeline.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 0e4c3869e1c..c1950529a05 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -67,7 +67,7 @@ for PLATFORM_JSON in ${PLATFORMS_JSON_ARRAY[*]}; do REPO_COMMIT: $BUILDKITE_COMMIT TEMPLATE: $MOJAVE_ANKA_TEMPLATE_NAME TEMPLATE_TAG: $MOJAVE_ANKA_TAG_BASE - TAG_COMMANDS: "git clone https://github.com/EOSIO/eos.git eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive && ./.cicd/platforms/macos-10.14${UNPINNED_APPEND}.sh && ./.cicd/build.sh && cd .. && rm -rf eos" + TAG_COMMANDS: "git clone ${BUILDKITE_PULL_REQUEST_REPO:-$BUILDKITE_REPO} eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive && ./.cicd/platforms/macos-10.14${UNPINNED_APPEND}.sh && ./.cicd/build.sh && cd .. && rm -rf eos" PROJECT_TAG: $(echo "$PLATFORM_JSON" | jq -r .HASHED_IMAGE_TAG) timeout: ${TIMEOUT:-320} skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_ENSURE_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)} From 773e66eafea376be6ff0e97d52668632c110f919 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 28 Aug 2019 14:50:58 -0400 Subject: [PATCH 420/528] quick fixes --- .cicd/generate-pipeline.sh | 410 ++++++++++++++++++------------------- 1 file changed, 205 insertions(+), 205 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index c1950529a05..a5ee16cc6b5 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -76,210 +76,210 @@ EOF fi done -# echo " - wait"; echo "" - -# ############### -# # BUILD STEPS # -# for PLATFORM_JSON in ${PLATFORMS_JSON_ARRAY[*]}; do -# # echo "$PLATFORM_JSON" | jq -# if [[ ! $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) =~ 'macos' ]]; then - -# cat < Date: Wed, 28 Aug 2019 15:46:02 -0400 Subject: [PATCH 421/528] quick fixes --- .cicd/generate-pipeline.sh | 5 +- .cicd/unpinned.yml | 230 ------------------------------------- 2 files changed, 2 insertions(+), 233 deletions(-) delete mode 100644 .cicd/unpinned.yml diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index a5ee16cc6b5..ad14b5306ef 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -5,11 +5,10 @@ set -eo pipefail export MOJAVE_ANKA_TAG_BASE='clean::cicd::git-ssh::nas::brew::buildkite-agent' export MOJAVE_ANKA_TEMPLATE_NAME='10.14.4_6C_14G_40G' -export PLATFORMS_JSON_ARRAY=() - ( [[ $PINNED == false ]] || [[ $UNPINNED == true ]] ) && UNPINNED_APPEND='-unpinned' # Use files in platforms dir as source of truth for what platforms we need to generate steps for +export PLATFORMS_JSON_ARRAY=() for FILE in $(ls $CICD_DIR/platforms); do # Support if users want to run unpinned @@ -56,7 +55,7 @@ oIFS="$IFS"; IFS=$''; nIFS=$IFS # Needed to fix array splitting (\n won't work) for PLATFORM_JSON in ${PLATFORMS_JSON_ARRAY[*]}; do if [[ $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) =~ 'macos' ]]; then cat < Date: Wed, 28 Aug 2019 15:48:06 -0400 Subject: [PATCH 422/528] quick fixes --- .cicd/generate-pipeline.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index ad14b5306ef..c2ed9b9cc71 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -5,7 +5,7 @@ set -eo pipefail export MOJAVE_ANKA_TAG_BASE='clean::cicd::git-ssh::nas::brew::buildkite-agent' export MOJAVE_ANKA_TEMPLATE_NAME='10.14.4_6C_14G_40G' -( [[ $PINNED == false ]] || [[ $UNPINNED == true ]] ) && UNPINNED_APPEND='-unpinned' +( [[ $PINNED == false ]] || [[ $UNPINNED == true ]] ) && UNPINNED_APPEND='-unpinned' # Used for ensure step # Use files in platforms dir as source of truth for what platforms we need to generate steps for export PLATFORMS_JSON_ARRAY=() From fe80ac97b8fc3a36c64ef3e0785e5475a3a8dcc5 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 28 Aug 2019 15:49:12 -0400 Subject: [PATCH 423/528] quick fixes --- .cicd/generate-pipeline.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index c2ed9b9cc71..a8531264d33 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -11,7 +11,7 @@ export MOJAVE_ANKA_TEMPLATE_NAME='10.14.4_6C_14G_40G' export PLATFORMS_JSON_ARRAY=() for FILE in $(ls $CICD_DIR/platforms); do - # Support if users want to run unpinned + # Prevent using both platform files (only use unpinned or pinned) if ( [[ $PINNED == false ]] || [[ $UNPINNED == true ]] ); then [[ ! $FILE =~ 'unpinned' ]] && continue else From 859148858c9b9310a13c8479b2731b1c0ff8de62 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 28 Aug 2019 16:23:54 -0400 Subject: [PATCH 424/528] quick fixes --- .cicd/platforms/macos-10.14.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/platforms/macos-10.14.sh b/.cicd/platforms/macos-10.14.sh index aa66810c413..885b336c100 100755 --- a/.cicd/platforms/macos-10.14.sh +++ b/.cicd/platforms/macos-10.14.sh @@ -12,7 +12,7 @@ git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ mkdir ../../build && cd ../../build && \ cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ - make -j $(nproc) && \ + make -j $(getconf _NPROCESSORS_ONLN) && \ make install && \ cd ../.. && \ rm -rf clang8/ \ No newline at end of file From f775a62aa01a0f83f4dcf40e85abc3dc91e8e8c5 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 11:08:43 -0400 Subject: [PATCH 425/528] quick fixes --- .cicd/generate-pipeline.sh | 516 +++++++++++++++++++------------------ .cicd/pipeline.yml | 1 - 2 files changed, 262 insertions(+), 255 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index a8531264d33..5b084cadcb8 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -5,280 +5,288 @@ set -eo pipefail export MOJAVE_ANKA_TAG_BASE='clean::cicd::git-ssh::nas::brew::buildkite-agent' export MOJAVE_ANKA_TEMPLATE_NAME='10.14.4_6C_14G_40G' -( [[ $PINNED == false ]] || [[ $UNPINNED == true ]] ) && UNPINNED_APPEND='-unpinned' # Used for ensure step +[[ $PINNED == false || $UNPINNED == true ]] && UNPINNED_APPEND='-unpinned' # Used for ensure step # Use files in platforms dir as source of truth for what platforms we need to generate steps for -export PLATFORMS_JSON_ARRAY=() +export PLATFORMS_JSON_ARRAY='[]' for FILE in $(ls $CICD_DIR/platforms); do # Prevent using both platform files (only use unpinned or pinned) - if ( [[ $PINNED == false ]] || [[ $UNPINNED == true ]] ); then + if [[ $PINNED == false || $UNPINNED == true ]]; then [[ ! $FILE =~ 'unpinned' ]] && continue else [[ $FILE =~ 'unpinned' ]] && continue fi - FILE_NAME=$(echo $FILE | awk '{split($0,a,/\.(d|s)/); print a[1] }') - PLATFORM_NAME=$(echo $FILE_NAME | cut -d- -f1 | sed 's/os/OS/g') - PLATFORM_NAME_UPCASE=$(echo $PLATFORM_NAME | tr a-z A-Z) - VERSION_MAJOR=$(echo $FILE_NAME | cut -d- -f2 | cut -d. -f1) - [[ $(echo $FILE_NAME | cut -d- -f2) =~ '.' ]] && VERSION_MINOR="_$(echo $FILE_NAME | cut -d- -f2 | cut -d. -f2)" - VERSION_FULL=$(echo $FILE_NAME | cut -d- -f2) - OLDIFS=$IFS;IFS="_";set $PLATFORM_NAME;IFS=$OLDIFS - PLATFORM_NAME_FULL="$(capitalize $1)$( [[ ! -z $2 ]] && echo "_$(capitalize $2)" || true ) $VERSION_FULL" - [[ $FILE_NAME =~ 'amazon' ]] && ICON=':aws:' - [[ $FILE_NAME =~ 'ubuntu' ]] && ICON=':ubuntu:' - [[ $FILE_NAME =~ 'centos' ]] && ICON=':centos:' - [[ $FILE_NAME =~ 'macos' ]] && ICON=':darwin:' + export FILE_NAME=$(echo $FILE | awk '{split($0,a,/\.(d|s)/); print a[1] }') + export PLATFORM_NAME=$(echo $FILE_NAME | cut -d- -f1 | sed 's/os/OS/g') + export PLATFORM_NAME_UPCASE=$(echo $PLATFORM_NAME | tr a-z A-Z) + export VERSION_MAJOR=$(echo $FILE_NAME | cut -d- -f2 | cut -d. -f1) + [[ $(echo $FILE_NAME | cut -d- -f2) =~ '.' ]] && export VERSION_MINOR="_$(echo $FILE_NAME | cut -d- -f2 | cut -d. -f2)" + export VERSION_FULL=$(echo $FILE_NAME | cut -d- -f2) + OLDIFS=$IFS + IFS="_" + set $PLATFORM_NAME + IFS=$OLDIFS + export PLATFORM_NAME_FULL="$(capitalize $1)$( [[ ! -z $2 ]] && echo "_$(capitalize $2)" || true ) $VERSION_FULL" + [[ $FILE_NAME =~ 'amazon' ]] && export ICON=':aws:' + [[ $FILE_NAME =~ 'ubuntu' ]] && export ICON=':ubuntu:' + [[ $FILE_NAME =~ 'centos' ]] && export ICON=':centos:' + [[ $FILE_NAME =~ 'macos' ]] && export ICON=':darwin:' . $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/$FILE # returns HASHED_IMAGE_TAG, etc - PLATFORMS_JSON_ARRAY+=("{ - \"FILE_NAME\": \"$FILE_NAME\", - \"PLATFORM_NAME\": \"$PLATFORM_NAME\", - \"PLATFORM_NAME_UPCASE\": \"$PLATFORM_NAME_UPCASE\", - \"VERSION_MAJOR\": $VERSION_MAJOR, - \"VERSION_MINOR\": \"$VERSION_MINOR\", - \"VERSION_FULL\": $VERSION_FULL, - \"PLATFORM_NAME_FULL\": \"$PLATFORM_NAME_FULL\", - \"DOCKERHUB FULL_TAG\": \"$FULL_TAG\", - \"HASHED_IMAGE_TAG\": \"$HASHED_IMAGE_TAG\", - \"ICON\": \"$ICON\" - }") + export PLATFORMS_JSON_ARRAY=$(echo $PLATFORMS_JSON_ARRAY | jq -c '. += [{ + "FILE_NAME": env.FILE_NAME, + "PLATFORM_NAME": env.PLATFORM_NAME, + "PLATFORM_NAME_UPCASE": env.PLATFORM_NAME_UPCASE, + "VERSION_MAJOR": env.VERSION_MAJOR, + "VERSION_MINOR": env.VERSION_MINOR, + "VERSION_FULL": env.VERSION_FULL, + "PLATFORM_NAME_FULL": env.PLATFORM_NAME_FULL, + "DOCKERHUB_FULL_TAG": env.FULL_TAG, + "HASHED_IMAGE_TAG": env.HASHED_IMAGE_TAG, + "ICON": env.ICON + }]') + done -oIFS="$IFS"; IFS=$''; nIFS=$IFS # Needed to fix array splitting (\n won't work) +oIFS="$IFS" +IFS=$'' +nIFS=$IFS # Needed to fix array splitting (\n won't work) ################### # Anka Ensure Tag # -for PLATFORM_JSON in ${PLATFORMS_JSON_ARRAY[*]}; do - if [[ $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) =~ 'macos' ]]; then - cat < Date: Thu, 29 Aug 2019 11:10:22 -0400 Subject: [PATCH 426/528] quick fixes --- .cicd/build.sh | 4 +++- .cicd/generate-pipeline.sh | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index befecab4ed4..8d8aec0d0eb 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -4,6 +4,8 @@ set -eo pipefail mkdir -p $BUILD_DIR +CMAKE_EXTRAS="-DBUILD_MONGO_DB_PLUGIN=true" + if [[ $(uname) == 'Darwin' ]]; then # You can't use chained commands in execute @@ -42,7 +44,7 @@ else # Linux CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" fi - BUILD_COMMANDS="cmake $CMAKE_EXTRAS -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_BUILD_TYPE='Release' .. && make -j$JOBS" + BUILD_COMMANDS="cmake $CMAKE_EXTRAS -DCMAKE_BUILD_TYPE='Release' .. && make -j$JOBS" # Docker Commands if [[ $BUILDKITE == true ]]; then diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 5b084cadcb8..42f61b7e073 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -60,6 +60,7 @@ nIFS=$IFS # Needed to fix array splitting (\n won't work) # Anka Ensure Tag # for PLATFORM_JSON in $(echo $PLATFORMS_JSON_ARRAY | jq .[]); do echo "$PLATFORM_JSON" | jq -r .FILE_NAME +echo HERE # if [[ $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) =~ 'macos' ]]; then # cat < Date: Thu, 29 Aug 2019 11:12:18 -0400 Subject: [PATCH 427/528] quick fixes --- .cicd/generate-pipeline.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 42f61b7e073..ffe9ce0c02d 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -58,7 +58,7 @@ nIFS=$IFS # Needed to fix array splitting (\n won't work) ################### # Anka Ensure Tag # -for PLATFORM_JSON in $(echo $PLATFORMS_JSON_ARRAY | jq .[]); do +echo $PLATFORMS_JSON_ARRAY | jq .[] | while read -r PLATFORM_JSON; do echo "$PLATFORM_JSON" | jq -r .FILE_NAME echo HERE From a563da73a643ea90c7bb1265c3787e0fe310d716 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 11:19:33 -0400 Subject: [PATCH 428/528] quick fixes --- .cicd/generate-pipeline.sh | 453 ++++++++++++++++++------------------- 1 file changed, 224 insertions(+), 229 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index ffe9ce0c02d..abd7b777e9f 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -58,236 +58,231 @@ nIFS=$IFS # Needed to fix array splitting (\n won't work) ################### # Anka Ensure Tag # -echo $PLATFORMS_JSON_ARRAY | jq .[] | while read -r PLATFORM_JSON; do -echo "$PLATFORM_JSON" | jq -r .FILE_NAME -echo HERE - -# if [[ $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) =~ 'macos' ]]; then -# cat < Date: Thu, 29 Aug 2019 11:40:49 -0400 Subject: [PATCH 429/528] quick fixes --- .cicd/platforms/macos-10.14-unpinned.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/platforms/macos-10.14-unpinned.sh b/.cicd/platforms/macos-10.14-unpinned.sh index 2e9f6225ed0..9433c65389f 100755 --- a/.cicd/platforms/macos-10.14-unpinned.sh +++ b/.cicd/platforms/macos-10.14-unpinned.sh @@ -1,3 +1,3 @@ #!/bin/bash brew update -brew install boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen \ No newline at end of file +brew install git boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen openssl mongodb From 25f1be45286e62e438d6eb09e66aa13cefdab851 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 12:12:17 -0400 Subject: [PATCH 430/528] quick fixes --- .cicd/generate-pipeline.sh | 4 +- .cicd/helpers/file-hash.sh | 1 + .cicd/platforms/macos-10.14-unpinned.sh | 3 - .cicd/platforms/macos-10.14.sh | 114 +++++++++++++++--------- 4 files changed, 72 insertions(+), 50 deletions(-) delete mode 100755 .cicd/platforms/macos-10.14-unpinned.sh diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index abd7b777e9f..8cb8620f72e 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -5,8 +5,6 @@ set -eo pipefail export MOJAVE_ANKA_TAG_BASE='clean::cicd::git-ssh::nas::brew::buildkite-agent' export MOJAVE_ANKA_TEMPLATE_NAME='10.14.4_6C_14G_40G' -[[ $PINNED == false || $UNPINNED == true ]] && UNPINNED_APPEND='-unpinned' # Used for ensure step - # Use files in platforms dir as source of truth for what platforms we need to generate steps for export PLATFORMS_JSON_ARRAY='[]' for FILE in $(ls $CICD_DIR/platforms); do @@ -72,7 +70,7 @@ echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do REPO_COMMIT: $BUILDKITE_COMMIT TEMPLATE: $MOJAVE_ANKA_TEMPLATE_NAME TEMPLATE_TAG: $MOJAVE_ANKA_TAG_BASE - TAG_COMMANDS: "git clone ${BUILDKITE_PULL_REQUEST_REPO:-$BUILDKITE_REPO} eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive && ./.cicd/platforms/macos-10.14${UNPINNED_APPEND}.sh && ./.cicd/build.sh && cd .. && rm -rf eos" + TAG_COMMANDS: "git clone ${BUILDKITE_PULL_REQUEST_REPO:-$BUILDKITE_REPO} eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive && ./.cicd/platforms/macos-10.14.sh && cd .. && rm -rf eos" PROJECT_TAG: $(echo "$PLATFORM_JSON" | jq -r .HASHED_IMAGE_TAG) timeout: ${TIMEOUT:-320} skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_ENSURE_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)} diff --git a/.cicd/helpers/file-hash.sh b/.cicd/helpers/file-hash.sh index e41456dc9f6..4a2c058f585 100755 --- a/.cicd/helpers/file-hash.sh +++ b/.cicd/helpers/file-hash.sh @@ -3,5 +3,6 @@ set -eo pipefail [[ -z $1 ]] && echo "Please provide the file to be hashed" && exit 1 FILE_NAME=$(basename $1 | awk '{split($0,a,/\.(d|s)/); print a[1] }') export DETERMINED_HASH=$(sha1sum $1 | sha1sum | awk '{ print $1 }') +( [[ $FILE_NAME =~ 'macos' ]] && [[ $PINNED == false || $UNPINNED == true ]] ) && UNPINNED_APPEND="${FILE_NAME}-unpinned'" export HASHED_IMAGE_TAG="eos-${FILE_NAME}-${DETERMINED_HASH}" export FULL_TAG="eosio/producer:$HASHED_IMAGE_TAG" diff --git a/.cicd/platforms/macos-10.14-unpinned.sh b/.cicd/platforms/macos-10.14-unpinned.sh deleted file mode 100755 index 9433c65389f..00000000000 --- a/.cicd/platforms/macos-10.14-unpinned.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -brew update -brew install git boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen openssl mongodb diff --git a/.cicd/platforms/macos-10.14.sh b/.cicd/platforms/macos-10.14.sh index 134359bafdf..c86ca6edd8c 100755 --- a/.cicd/platforms/macos-10.14.sh +++ b/.cicd/platforms/macos-10.14.sh @@ -1,47 +1,73 @@ #!/bin/bash brew update -brew install git boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen openssl mongodb ccache -git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 -cd clang8 -git checkout 18e41dc -cd tools -git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git -cd lld -git checkout d60a035 -cd ../ -git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git -cd polly -git checkout 1bc06e5 -cd ../ -git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang -cd clang -git checkout a03da8b -cd tools -mkdir extra -cd extra -git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git -cd clang-tools-extra -git checkout 6b34834 -cd ../../../../../projects/ -git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git -cd libcxx -git checkout 1853712 -cd ../ -git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git -cd libcxxabi -git checkout d7338a4 -cd ../ -git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git -cd libunwind -git checkout 57f6739 -cd ../ -git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git -cd compiler-rt -git checkout 5bc7979 -mkdir ../../build -cd ../../build -cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. -make -j $(getconf _NPROCESSORS_ONLN) -sudo make install +brew install git boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen openssl mongodb + +if [[ $PINNED != false || $UNPINNED != true ]]; then + git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 + cd clang8 + git checkout 18e41dc + cd tools + git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git + cd lld + git checkout d60a035 + cd ../ + git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git + cd polly + git checkout 1bc06e5 + cd ../ + git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang + cd clang + git checkout a03da8b + cd tools + mkdir extra + cd extra + git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git + cd clang-tools-extra + git checkout 6b34834 + cd ../../../../../projects/ + git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git + cd libcxx + git checkout 1853712 + cd ../ + git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git + cd libcxxabi + git checkout d7338a4 + cd ../ + git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git + cd libunwind + git checkout 57f6739 + cd ../ + git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git + cd compiler-rt + git checkout 5bc7979 + mkdir ../../build + cd ../../build + cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. + make -j $(getconf _NPROCESSORS_ONLN) + sudo make install + cd ../.. + rm -rf clang8 +fi + + +cd /tmp +curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz +tar -xzf mongo-c-driver-1.13.0.tar.gz +cd mongo-c-driver-1.13.0 +mkdir -p cmake-build +cd cmake-build +cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX='/usr/local' -DENABLE_BSON=ON -DENABLE_SSL=DARWIN -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SASL=OFF -DENABLE_SNAPPY=OFF .. +make -j12 +make install cd ../.. -rm -rf clang8 +rm mongo-c-driver-1.13.0.tar.gz + +cd /tmp +curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz +tar -xzf mongo-cxx-driver-r3.4.0.tar.gz +cd mongo-cxx-driver-r3.4.0/build +cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX='/usr/local' .. +make -j12 VERBOSE=1 +make install +cd ../.. +rm -f mongo-cxx-driver-r3.4.0.tar.gz From 7ebb8cdec48540ddcf3d61b8f3fa94cc6a31cde9 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Thu, 29 Aug 2019 12:20:50 -0400 Subject: [PATCH 431/528] Added mongo install steps for Travis. --- .cicd/build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index 8d8aec0d0eb..0942ff8b297 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -9,9 +9,9 @@ CMAKE_EXTRAS="-DBUILD_MONGO_DB_PLUGIN=true" if [[ $(uname) == 'Darwin' ]]; then # You can't use chained commands in execute - cd $BUILD_DIR - [[ $TRAVIS == true ]] && ccache -s + [[ $TRAVIS == true ]] && ccache -s && ./$CICD_DIR/platforms/macos-10.14.sh [[ $PINNED == true ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$HELPERS_DIR/clang.make" + cd $BUILD_DIR cmake $CMAKE_EXTRAS .. make -j$JOBS From ce90675d623b58959ad3dc6054d999b3bdacca78 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 12:21:11 -0400 Subject: [PATCH 432/528] quick fixes --- .cicd/platforms/macos-10.14.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.cicd/platforms/macos-10.14.sh b/.cicd/platforms/macos-10.14.sh index c86ca6edd8c..3d3f977d7a3 100755 --- a/.cicd/platforms/macos-10.14.sh +++ b/.cicd/platforms/macos-10.14.sh @@ -1,6 +1,6 @@ #!/bin/bash brew update -brew install git boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen openssl mongodb +brew install git boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen openssl if [[ $PINNED != false || $UNPINNED != true ]]; then git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 @@ -49,6 +49,15 @@ if [[ $PINNED != false || $UNPINNED != true ]]; then rm -rf clang8 fi +cd /tmp +curl -OL https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-3.6.3.tgz +tar -xzf mongodb-osx-ssl-x86_64-3.6.3.tgz +mkdir -p /tmp/mongodb +touch /tmp/mongodb/mongod.log +rm -f mongodb-osx-ssl-x86_64-3.6.3.tgz +mkdir -p /tmp/mongodb +ln -s /tmp/mongodb-osx-x86_64-3.6.3 /tmp/mongodb +ln -s /tmp/mongodb/bin/mongod /usr/local/bin/mongod cd /tmp curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz From 882dadd54536d1b780a8277a1b481842a224a3fd Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 12:22:26 -0400 Subject: [PATCH 433/528] quick fixes --- .cicd/serial-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index 6c02a17f412..940f9be16ad 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -4,7 +4,7 @@ set -eo pipefail [[ -z $1 ]] && TEST_NAME="-L nonparallelizable_tests" || TEST_NAME="-R ^$1$" -TEST="mkdir -p ./mongodb && mongod --dbpath ./mongodb --fork --logpath mongod.log && ctest $TEST_NAME --output-on-failure -T Test" +TEST="mongod --dbpath /tmp/mongodb --fork --logpath /tmp/mongod.log && ctest $TEST_NAME --output-on-failure -T Test" if [[ $(uname) == 'Darwin' ]]; then From 80eddacbe5c702116d490529ff6cfe432d0367fe Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 12:22:49 -0400 Subject: [PATCH 434/528] quick fixes --- .cicd/generate-pipeline.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 8cb8620f72e..65af55a0035 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -70,7 +70,7 @@ echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do REPO_COMMIT: $BUILDKITE_COMMIT TEMPLATE: $MOJAVE_ANKA_TEMPLATE_NAME TEMPLATE_TAG: $MOJAVE_ANKA_TAG_BASE - TAG_COMMANDS: "git clone ${BUILDKITE_PULL_REQUEST_REPO:-$BUILDKITE_REPO} eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive && ./.cicd/platforms/macos-10.14.sh && cd .. && rm -rf eos" + TAG_COMMANDS: "git clone ${BUILDKITE_PULL_REQUEST_REPO:-$BUILDKITE_REPO} eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive && ./.cicd/platforms/macos-10.14.sh && ./.cicd/build.sh && cd .. && rm -rf eos" PROJECT_TAG: $(echo "$PLATFORM_JSON" | jq -r .HASHED_IMAGE_TAG) timeout: ${TIMEOUT:-320} skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_ENSURE_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)} From b368ecf9ba0133c5f0fe885613ec8b5822645522 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 12:27:34 -0400 Subject: [PATCH 435/528] quick fixes --- .cicd/helpers/file-hash.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/helpers/file-hash.sh b/.cicd/helpers/file-hash.sh index 4a2c058f585..0a9ea6b741a 100755 --- a/.cicd/helpers/file-hash.sh +++ b/.cicd/helpers/file-hash.sh @@ -3,6 +3,6 @@ set -eo pipefail [[ -z $1 ]] && echo "Please provide the file to be hashed" && exit 1 FILE_NAME=$(basename $1 | awk '{split($0,a,/\.(d|s)/); print a[1] }') export DETERMINED_HASH=$(sha1sum $1 | sha1sum | awk '{ print $1 }') -( [[ $FILE_NAME =~ 'macos' ]] && [[ $PINNED == false || $UNPINNED == true ]] ) && UNPINNED_APPEND="${FILE_NAME}-unpinned'" +( [[ $FILE_NAME =~ 'macos' ]] && [[ $PINNED == false || $UNPINNED == true ]] ) && FILE_NAME="${FILE_NAME}-unpinned'" export HASHED_IMAGE_TAG="eos-${FILE_NAME}-${DETERMINED_HASH}" export FULL_TAG="eosio/producer:$HASHED_IMAGE_TAG" From 9450eff0bc8bdb216cf9d9ed94c36d1f91e731ac Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 12:30:01 -0400 Subject: [PATCH 436/528] quick fixes --- .cicd/helpers/file-hash.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/helpers/file-hash.sh b/.cicd/helpers/file-hash.sh index 0a9ea6b741a..7c2b7947843 100755 --- a/.cicd/helpers/file-hash.sh +++ b/.cicd/helpers/file-hash.sh @@ -3,6 +3,6 @@ set -eo pipefail [[ -z $1 ]] && echo "Please provide the file to be hashed" && exit 1 FILE_NAME=$(basename $1 | awk '{split($0,a,/\.(d|s)/); print a[1] }') export DETERMINED_HASH=$(sha1sum $1 | sha1sum | awk '{ print $1 }') -( [[ $FILE_NAME =~ 'macos' ]] && [[ $PINNED == false || $UNPINNED == true ]] ) && FILE_NAME="${FILE_NAME}-unpinned'" +( [[ $FILE_NAME =~ 'macos' ]] && [[ $PINNED == false || $UNPINNED == true ]] ) && FILE_NAME="${FILE_NAME}-unpinned" export HASHED_IMAGE_TAG="eos-${FILE_NAME}-${DETERMINED_HASH}" export FULL_TAG="eosio/producer:$HASHED_IMAGE_TAG" From e54d65753c790e09e31b1180e05abb531922e025 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 12:37:31 -0400 Subject: [PATCH 437/528] quick fixes --- .cicd/generate-pipeline.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 65af55a0035..2ccd91ff0bc 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -10,7 +10,7 @@ export PLATFORMS_JSON_ARRAY='[]' for FILE in $(ls $CICD_DIR/platforms); do # Prevent using both platform files (only use unpinned or pinned) - if [[ $PINNED == false || $UNPINNED == true ]]; then + if [[ $PINNED == false || $UNPINNED == true ]] && [[ ! $FILE =~ 'macos' ]]; then [[ ! $FILE =~ 'unpinned' ]] && continue else [[ $FILE =~ 'unpinned' ]] && continue @@ -79,6 +79,7 @@ EOF fi done + echo " - wait"; echo "" ############### From 7abb1212527254a3102fa73eb2551745a2dc5ce6 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 12:42:26 -0400 Subject: [PATCH 438/528] quick fixes --- .cicd/platforms/macos-10.14.sh | 10 +++++----- .cicd/serial-tests.sh | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.cicd/platforms/macos-10.14.sh b/.cicd/platforms/macos-10.14.sh index 3d3f977d7a3..8854a5dbf01 100755 --- a/.cicd/platforms/macos-10.14.sh +++ b/.cicd/platforms/macos-10.14.sh @@ -52,12 +52,12 @@ fi cd /tmp curl -OL https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-3.6.3.tgz tar -xzf mongodb-osx-ssl-x86_64-3.6.3.tgz -mkdir -p /tmp/mongodb -touch /tmp/mongodb/mongod.log +mkdir -p ~/mongodb +touch ~/mongodb/mongod.log rm -f mongodb-osx-ssl-x86_64-3.6.3.tgz -mkdir -p /tmp/mongodb -ln -s /tmp/mongodb-osx-x86_64-3.6.3 /tmp/mongodb -ln -s /tmp/mongodb/bin/mongod /usr/local/bin/mongod +mkdir -p ~/mongodb +ln -s ~/mongodb-osx-x86_64-3.6.3 ~/mongodb +ln -s ~/mongodb/bin/mongod /usr/local/bin/mongod cd /tmp curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index 940f9be16ad..178f2234df2 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -4,7 +4,7 @@ set -eo pipefail [[ -z $1 ]] && TEST_NAME="-L nonparallelizable_tests" || TEST_NAME="-R ^$1$" -TEST="mongod --dbpath /tmp/mongodb --fork --logpath /tmp/mongod.log && ctest $TEST_NAME --output-on-failure -T Test" +TEST="mongod --dbpath ~/mongodb --fork --logpath ~/mongod.log && ctest $TEST_NAME --output-on-failure -T Test" if [[ $(uname) == 'Darwin' ]]; then From fd8e8898b0bfc8e07eb98d6065d5673f9b0839e6 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 12:43:46 -0400 Subject: [PATCH 439/528] quick fixes --- .cicd/generate-pipeline.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 2ccd91ff0bc..5397f848aae 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -284,4 +284,4 @@ EOF fi done -IFS=$oIFS +IFS=$oIFS \ No newline at end of file From 85c5d383ab7aa98c258436a20aed938fe3d69393 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Thu, 29 Aug 2019 12:46:28 -0400 Subject: [PATCH 440/528] Darwin on Travis needs UNPINNED=true. --- .cicd/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index 0942ff8b297..ce08068b77f 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -9,7 +9,7 @@ CMAKE_EXTRAS="-DBUILD_MONGO_DB_PLUGIN=true" if [[ $(uname) == 'Darwin' ]]; then # You can't use chained commands in execute - [[ $TRAVIS == true ]] && ccache -s && ./$CICD_DIR/platforms/macos-10.14.sh + [[ $TRAVIS == true ]] && export UNPINNED=true && ccache -s && ./$CICD_DIR/platforms/macos-10.14.sh [[ $PINNED == true ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$HELPERS_DIR/clang.make" cd $BUILD_DIR cmake $CMAKE_EXTRAS .. From 89abe58bbb74a2d310984b007a9090b2ee514201 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Thu, 29 Aug 2019 13:38:26 -0400 Subject: [PATCH 441/528] Darwin on Travis needs UNPINNED=true. --- .cicd/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index ce08068b77f..abddebc45ba 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -9,7 +9,7 @@ CMAKE_EXTRAS="-DBUILD_MONGO_DB_PLUGIN=true" if [[ $(uname) == 'Darwin' ]]; then # You can't use chained commands in execute - [[ $TRAVIS == true ]] && export UNPINNED=true && ccache -s && ./$CICD_DIR/platforms/macos-10.14.sh + [[ $TRAVIS == true ]] && export UNPINNED=true && export PINNED=false && ccache -s && ./$CICD_DIR/platforms/macos-10.14.sh [[ $PINNED == true ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$HELPERS_DIR/clang.make" cd $BUILD_DIR cmake $CMAKE_EXTRAS .. From d16c21d59a4f0fd57861d35cc3bb1715bdb15bce Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 13:39:37 -0400 Subject: [PATCH 442/528] quick fixes --- .cicd/platforms/macos-10.14.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/platforms/macos-10.14.sh b/.cicd/platforms/macos-10.14.sh index 8854a5dbf01..24079ea0983 100755 --- a/.cicd/platforms/macos-10.14.sh +++ b/.cicd/platforms/macos-10.14.sh @@ -67,7 +67,7 @@ mkdir -p cmake-build cd cmake-build cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX='/usr/local' -DENABLE_BSON=ON -DENABLE_SSL=DARWIN -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SASL=OFF -DENABLE_SNAPPY=OFF .. make -j12 -make install +sudo make install cd ../.. rm mongo-c-driver-1.13.0.tar.gz @@ -77,6 +77,6 @@ tar -xzf mongo-cxx-driver-r3.4.0.tar.gz cd mongo-cxx-driver-r3.4.0/build cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX='/usr/local' .. make -j12 VERBOSE=1 -make install +sudo make install cd ../.. rm -f mongo-cxx-driver-r3.4.0.tar.gz From b96a994fe867c423a2bf5e290868de69bd77e9f1 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 13:42:53 -0400 Subject: [PATCH 443/528] quick fixes --- .cicd/platforms/macos-10.14.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/platforms/macos-10.14.sh b/.cicd/platforms/macos-10.14.sh index 24079ea0983..802e66e55c0 100755 --- a/.cicd/platforms/macos-10.14.sh +++ b/.cicd/platforms/macos-10.14.sh @@ -66,7 +66,7 @@ cd mongo-c-driver-1.13.0 mkdir -p cmake-build cd cmake-build cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX='/usr/local' -DENABLE_BSON=ON -DENABLE_SSL=DARWIN -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SASL=OFF -DENABLE_SNAPPY=OFF .. -make -j12 +make -j $(getconf _NPROCESSORS_ONLN) sudo make install cd ../.. rm mongo-c-driver-1.13.0.tar.gz @@ -76,7 +76,7 @@ curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mon tar -xzf mongo-cxx-driver-r3.4.0.tar.gz cd mongo-cxx-driver-r3.4.0/build cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX='/usr/local' .. -make -j12 VERBOSE=1 +make -j $(getconf _NPROCESSORS_ONLN) VERBOSE=1 sudo make install cd ../.. rm -f mongo-cxx-driver-r3.4.0.tar.gz From 6b42412640d933e174da68c305334554b5c4a0f9 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 13:43:13 -0400 Subject: [PATCH 444/528] quick fixes --- .cicd/generate-pipeline.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 5397f848aae..a669c21da34 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -47,7 +47,6 @@ for FILE in $(ls $CICD_DIR/platforms); do "ICON": env.ICON }]') - done oIFS="$IFS" From 4667e16d88ba14eb5748a4ddd4de37893b5bfabf Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 14:08:13 -0400 Subject: [PATCH 445/528] skip steps --- .cicd/generate-pipeline.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index a669c21da34..f944ef49e56 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -9,6 +9,10 @@ export MOJAVE_ANKA_TEMPLATE_NAME='10.14.4_6C_14G_40G' export PLATFORMS_JSON_ARRAY='[]' for FILE in $(ls $CICD_DIR/platforms); do + # Ability to skip mac or linux by not even creating the json block + ( [[ $SKIP_MAC == true ]] && [[ $FILE =~ 'macos' ]] ) && continue + ( [[ $SKIP_LINUX == true ]] && [[ ! $FILE =~ 'macos' ]] ) && continue + # Prevent using both platform files (only use unpinned or pinned) if [[ $PINNED == false || $UNPINNED == true ]] && [[ ! $FILE =~ 'macos' ]]; then [[ ! $FILE =~ 'unpinned' ]] && continue @@ -20,7 +24,7 @@ for FILE in $(ls $CICD_DIR/platforms); do export PLATFORM_NAME=$(echo $FILE_NAME | cut -d- -f1 | sed 's/os/OS/g') export PLATFORM_NAME_UPCASE=$(echo $PLATFORM_NAME | tr a-z A-Z) export VERSION_MAJOR=$(echo $FILE_NAME | cut -d- -f2 | cut -d. -f1) - [[ $(echo $FILE_NAME | cut -d- -f2) =~ '.' ]] && export VERSION_MINOR="_$(echo $FILE_NAME | cut -d- -f2 | cut -d. -f2)" + [[ $(echo $FILE_NAME | cut -d- -f2) =~ '.' ]] && export VERSION_MINOR="_$(echo $FILE_NAME | cut -d- -f2 | cut -d. -f2)" || export VERSION_MINOR='' export VERSION_FULL=$(echo $FILE_NAME | cut -d- -f2) OLDIFS=$IFS IFS="_" From c0868c38f600ce1d0bb7320c168082a7f3590a33 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 14:10:31 -0400 Subject: [PATCH 446/528] removmongod --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index e8ebde66ab2..b263b1b2c60 100644 --- a/.travis.yml +++ b/.travis.yml @@ -46,7 +46,6 @@ matrix: - openssl - boost@1.70 - ccache - - mongodb env: - PATH="/usr/local/opt/ccache/libexec:$PATH" script: "ccache --max-size=1G && ./.cicd/build.sh && ./.cicd/parallel-tests.sh && ./.cicd/serial-tests.sh" From e291439f7e6a0281cf8e58af2f029514b01b8961 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 14:13:22 -0400 Subject: [PATCH 447/528] logic fix --- .cicd/platforms/macos-10.14.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/platforms/macos-10.14.sh b/.cicd/platforms/macos-10.14.sh index 802e66e55c0..ca9d377dab3 100755 --- a/.cicd/platforms/macos-10.14.sh +++ b/.cicd/platforms/macos-10.14.sh @@ -2,7 +2,7 @@ brew update brew install git boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen openssl -if [[ $PINNED != false || $UNPINNED != true ]]; then +if [[ ! $PINNED == true || ! $UNPINNED == false ]]; then git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 cd clang8 git checkout 18e41dc From 2674501d295fd1142cda79049041389a0d3f7399 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 14:13:45 -0400 Subject: [PATCH 448/528] logic fix --- .cicd/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index abddebc45ba..930e02ba1c8 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -9,7 +9,7 @@ CMAKE_EXTRAS="-DBUILD_MONGO_DB_PLUGIN=true" if [[ $(uname) == 'Darwin' ]]; then # You can't use chained commands in execute - [[ $TRAVIS == true ]] && export UNPINNED=true && export PINNED=false && ccache -s && ./$CICD_DIR/platforms/macos-10.14.sh + [[ $TRAVIS == true ]] && export PINNED=false && ccache -s && ./$CICD_DIR/platforms/macos-10.14.sh [[ $PINNED == true ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$HELPERS_DIR/clang.make" cd $BUILD_DIR cmake $CMAKE_EXTRAS .. From 786b21eae17e0adc95e197c7a7b0f76ddd434476 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 14:31:41 -0400 Subject: [PATCH 449/528] quick fixes --- .cicd/platforms/macos-10.14.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/platforms/macos-10.14.sh b/.cicd/platforms/macos-10.14.sh index ca9d377dab3..67ca81754f1 100755 --- a/.cicd/platforms/macos-10.14.sh +++ b/.cicd/platforms/macos-10.14.sh @@ -2,7 +2,7 @@ brew update brew install git boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen openssl -if [[ ! $PINNED == true || ! $UNPINNED == false ]]; then +if [[ ! $PINNED == false || $UNPINNED == true ]]; then git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 cd clang8 git checkout 18e41dc From 55e5864287f3d364c3d3b92044af0f8ba55ccdaa Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 14:35:09 -0400 Subject: [PATCH 450/528] quick fixes --- .cicd/generate-pipeline.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index f944ef49e56..11f09c436c3 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -64,7 +64,7 @@ echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do cat < Date: Thu, 29 Aug 2019 14:52:29 -0400 Subject: [PATCH 451/528] quick fixes --- .cicd/platforms/macos-10.14.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/platforms/macos-10.14.sh b/.cicd/platforms/macos-10.14.sh index 67ca81754f1..44527fa8303 100755 --- a/.cicd/platforms/macos-10.14.sh +++ b/.cicd/platforms/macos-10.14.sh @@ -2,7 +2,7 @@ brew update brew install git boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen openssl -if [[ ! $PINNED == false || $UNPINNED == true ]]; then +if [[ ! $PINNED == false ]] || [[ $UNPINNED == true ]]; then git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 cd clang8 git checkout 18e41dc From 436d6b285d8f38a952421d62ea8e2e139064c075 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 14:57:27 -0400 Subject: [PATCH 452/528] quick fixes --- .cicd/platforms/macos-10.14.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.cicd/platforms/macos-10.14.sh b/.cicd/platforms/macos-10.14.sh index 44527fa8303..514a1e9ad19 100755 --- a/.cicd/platforms/macos-10.14.sh +++ b/.cicd/platforms/macos-10.14.sh @@ -2,6 +2,8 @@ brew update brew install git boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen openssl +echo "PINNED: $PINNED" +echo "UNPINNED: $UNPINNED" if [[ ! $PINNED == false ]] || [[ $UNPINNED == true ]]; then git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 cd clang8 From a4864ed15addb11206a11ac3607400c07c148db9 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 15:21:03 -0400 Subject: [PATCH 453/528] quick fixes --- .cicd/generate-pipeline.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 11f09c436c3..a4d242a54e1 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -73,7 +73,9 @@ echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do REPO_COMMIT: $BUILDKITE_COMMIT TEMPLATE: $MOJAVE_ANKA_TEMPLATE_NAME TEMPLATE_TAG: $MOJAVE_ANKA_TAG_BASE - TAG_COMMANDS: "git clone ${BUILDKITE_PULL_REQUEST_REPO:-$BUILDKITE_REPO} eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive && ./.cicd/platforms/macos-10.14.sh && ./.cicd/build.sh && cd .. && rm -rf eos" + PINNED: $PINNED + UNPINNED: $UNPINNED + TAG_COMMANDS: "git clone ${BUILDKITE_PULL_REQUEST_REPO:-$BUILDKITE_REPO} eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive && . ./.cicd/platforms/macos-10.14.sh && ./.cicd/build.sh && cd .. && rm -rf eos" PROJECT_TAG: $(echo "$PLATFORM_JSON" | jq -r .HASHED_IMAGE_TAG) timeout: ${TIMEOUT:-320} skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_ENSURE_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)} From 60a7a1a96dc70bd893ba4e4895751f528c710b60 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 15:27:53 -0400 Subject: [PATCH 454/528] quick fixes --- .cicd/helpers/file-hash.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/helpers/file-hash.sh b/.cicd/helpers/file-hash.sh index 7c2b7947843..eeefb2874ed 100755 --- a/.cicd/helpers/file-hash.sh +++ b/.cicd/helpers/file-hash.sh @@ -2,7 +2,7 @@ set -eo pipefail [[ -z $1 ]] && echo "Please provide the file to be hashed" && exit 1 FILE_NAME=$(basename $1 | awk '{split($0,a,/\.(d|s)/); print a[1] }') -export DETERMINED_HASH=$(sha1sum $1 | sha1sum | awk '{ print $1 }') +export DETERMINED_HASH=$(sha1sum $1 | awk '{ print $1 }') ( [[ $FILE_NAME =~ 'macos' ]] && [[ $PINNED == false || $UNPINNED == true ]] ) && FILE_NAME="${FILE_NAME}-unpinned" export HASHED_IMAGE_TAG="eos-${FILE_NAME}-${DETERMINED_HASH}" export FULL_TAG="eosio/producer:$HASHED_IMAGE_TAG" From 46260b34f8113b7405d15d972ade651938de9c2f Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 15:32:45 -0400 Subject: [PATCH 455/528] quick fixes --- .cicd/pipeline.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 4ef3681c346..da88a49bc82 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -32,7 +32,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_18}${SKIP_CONTRACT_BUILDER} + skip: ${SKIP_UBUNTU_18}${SKIP_CONTRACT_BUILDER}${SKIP_LINUX} - label: ":centos: CentOS 7.6 - Package Builder" command: @@ -46,7 +46,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: ${SKIP_CENTOS_7}${SKIP_PACKAGE_BUILDER} + skip: ${SKIP_CENTOS_7}${SKIP_PACKAGE_BUILDER}${SKIP_LINUX} - label: ":ubuntu: Ubuntu 16.04 - Package Builder" command: @@ -60,7 +60,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_16}${SKIP_PACKAGE_BUILDER} + skip: ${SKIP_UBUNTU_16}${SKIP_PACKAGE_BUILDER}${SKIP_LINUX} - label: ":ubuntu: Ubuntu 18.04 - Package Builder" command: @@ -74,7 +74,7 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_18}${SKIP_PACKAGE_BUILDER} + skip: ${SKIP_UBUNTU_18}${SKIP_PACKAGE_BUILDER}${SKIP_LINUX} - label: ":darwin: Mojave - Package Builder" command: @@ -93,7 +93,7 @@ steps: agents: - "queue=mac-anka-node-fleet" timeout: 10 - skip: ${SKIP_MOJAVE}${SKIP_PACKAGE_BUILDER} + skip: ${SKIP_MOJAVE}${SKIP_PACKAGE_BUILDER}${SKIP_MAC} - label: ":git: Git Submodule Regression Check" command: From 2ace3ffbde7aa9ba6e1f6bfd1a78ffe422aad8ac Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 15:38:54 -0400 Subject: [PATCH 456/528] quick fixes --- .cicd/generate-pipeline.sh | 2 +- .cicd/platforms/macos-10.14.sh | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index a4d242a54e1..e3b6a32dd54 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -75,7 +75,7 @@ echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do TEMPLATE_TAG: $MOJAVE_ANKA_TAG_BASE PINNED: $PINNED UNPINNED: $UNPINNED - TAG_COMMANDS: "git clone ${BUILDKITE_PULL_REQUEST_REPO:-$BUILDKITE_REPO} eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive && . ./.cicd/platforms/macos-10.14.sh && ./.cicd/build.sh && cd .. && rm -rf eos" + TAG_COMMANDS: "git clone ${BUILDKITE_PULL_REQUEST_REPO:-$BUILDKITE_REPO} eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive && export PINNED=$PINNED && export UNPINNED=$UNPINNED && . ./.cicd/platforms/macos-10.14.sh && ./.cicd/build.sh && cd .. && rm -rf eos" PROJECT_TAG: $(echo "$PLATFORM_JSON" | jq -r .HASHED_IMAGE_TAG) timeout: ${TIMEOUT:-320} skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_ENSURE_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)} diff --git a/.cicd/platforms/macos-10.14.sh b/.cicd/platforms/macos-10.14.sh index 514a1e9ad19..cd9b12a0579 100755 --- a/.cicd/platforms/macos-10.14.sh +++ b/.cicd/platforms/macos-10.14.sh @@ -1,10 +1,11 @@ #!/bin/bash +set -eo pipefail brew update brew install git boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen openssl echo "PINNED: $PINNED" echo "UNPINNED: $UNPINNED" -if [[ ! $PINNED == false ]] || [[ $UNPINNED == true ]]; then +if [[ ! $PINNED == false || $UNPINNED == true ]]; then git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 cd clang8 git checkout 18e41dc From 59da192342116ea48274154f3c29e1fe5ce98536 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 15:48:28 -0400 Subject: [PATCH 457/528] quick fixes --- .cicd/platforms/macos-10.14.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/.cicd/platforms/macos-10.14.sh b/.cicd/platforms/macos-10.14.sh index cd9b12a0579..f7d194b60f4 100755 --- a/.cicd/platforms/macos-10.14.sh +++ b/.cicd/platforms/macos-10.14.sh @@ -3,8 +3,6 @@ set -eo pipefail brew update brew install git boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen openssl -echo "PINNED: $PINNED" -echo "UNPINNED: $UNPINNED" if [[ ! $PINNED == false || $UNPINNED == true ]]; then git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 cd clang8 From 6080e7da4e54902c5bff0713f8ca7271592ee467 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 15:51:16 -0400 Subject: [PATCH 458/528] quick fixes --- .cicd/generate-pipeline.sh | 2 +- .cicd/platforms/macos-10.14.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index e3b6a32dd54..6719959703b 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -75,7 +75,7 @@ echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do TEMPLATE_TAG: $MOJAVE_ANKA_TAG_BASE PINNED: $PINNED UNPINNED: $UNPINNED - TAG_COMMANDS: "git clone ${BUILDKITE_PULL_REQUEST_REPO:-$BUILDKITE_REPO} eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive && export PINNED=$PINNED && export UNPINNED=$UNPINNED && . ./.cicd/platforms/macos-10.14.sh && ./.cicd/build.sh && cd .. && rm -rf eos" + TAG_COMMANDS: "git clone ${BUILDKITE_PULL_REQUEST_REPO:-$BUILDKITE_REPO} eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive && export PINNED=$PINNED && export UNPINNED=$UNPINNED && . ./.cicd/platforms/macos-10.14.sh && cd ~/eos && ./.cicd/build.sh && cd .. && rm -rf eos" PROJECT_TAG: $(echo "$PLATFORM_JSON" | jq -r .HASHED_IMAGE_TAG) timeout: ${TIMEOUT:-320} skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_ENSURE_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)} diff --git a/.cicd/platforms/macos-10.14.sh b/.cicd/platforms/macos-10.14.sh index f7d194b60f4..b4308533ae0 100755 --- a/.cicd/platforms/macos-10.14.sh +++ b/.cicd/platforms/macos-10.14.sh @@ -80,4 +80,4 @@ cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX= make -j $(getconf _NPROCESSORS_ONLN) VERBOSE=1 sudo make install cd ../.. -rm -f mongo-cxx-driver-r3.4.0.tar.gz +rm -f mongo-cxx-driver-r3.4.0.tar.gz \ No newline at end of file From 0570d6ee4a11ad6f8865f2e3da3689e7134da1f1 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 15:58:16 -0400 Subject: [PATCH 459/528] quick fixes --- .cicd/platforms/macos-10.14.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/platforms/macos-10.14.sh b/.cicd/platforms/macos-10.14.sh index b4308533ae0..e42cbcb79a0 100755 --- a/.cicd/platforms/macos-10.14.sh +++ b/.cicd/platforms/macos-10.14.sh @@ -57,7 +57,7 @@ mkdir -p ~/mongodb touch ~/mongodb/mongod.log rm -f mongodb-osx-ssl-x86_64-3.6.3.tgz mkdir -p ~/mongodb -ln -s ~/mongodb-osx-x86_64-3.6.3 ~/mongodb +ln -s /tmp/mongodb-osx-x86_64-3.6.3 ~/mongodb ln -s ~/mongodb/bin/mongod /usr/local/bin/mongod cd /tmp From a5a9a0f482753008fad38ee9fba40657dde179e3 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Thu, 29 Aug 2019 16:21:26 -0400 Subject: [PATCH 460/528] Because 'brew install' fails when packages already exist... --- .cicd/platforms/macos-10.14.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/platforms/macos-10.14.sh b/.cicd/platforms/macos-10.14.sh index e42cbcb79a0..e619ad8fe4c 100755 --- a/.cicd/platforms/macos-10.14.sh +++ b/.cicd/platforms/macos-10.14.sh @@ -1,7 +1,7 @@ #!/bin/bash set -eo pipefail brew update -brew install git boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen openssl +brew install git boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen openssl || true if [[ ! $PINNED == false || $UNPINNED == true ]]; then git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 From 4de86fffbf0aae245921a6ad70336bb3c811797d Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 16:39:25 -0400 Subject: [PATCH 461/528] quick fixes --- .cicd/generate-pipeline.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 6719959703b..c759a05e25b 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -75,7 +75,7 @@ echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do TEMPLATE_TAG: $MOJAVE_ANKA_TAG_BASE PINNED: $PINNED UNPINNED: $UNPINNED - TAG_COMMANDS: "git clone ${BUILDKITE_PULL_REQUEST_REPO:-$BUILDKITE_REPO} eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive && export PINNED=$PINNED && export UNPINNED=$UNPINNED && . ./.cicd/platforms/macos-10.14.sh && cd ~/eos && ./.cicd/build.sh && cd .. && rm -rf eos" + TAG_COMMANDS: "git clone ${BUILDKITE_PULL_REQUEST_REPO:-$BUILDKITE_REPO} eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive && export PINNED=$PINNED && export UNPINNED=$UNPINNED && . ./.cicd/platforms/macos-10.14.sh && cd ~/eos && cd .. && rm -rf eos" PROJECT_TAG: $(echo "$PLATFORM_JSON" | jq -r .HASHED_IMAGE_TAG) timeout: ${TIMEOUT:-320} skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_ENSURE_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)} @@ -102,7 +102,7 @@ echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-60} + timeout: ${TIMEOUT:-180} skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_BUILD} EOF @@ -126,6 +126,7 @@ EOF always-pull: true debug: true wait-network: true + timeout: ${TIMEOUT:-180} agents: - "queue=mac-anka-large-node-fleet" skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_BUILD} @@ -174,6 +175,7 @@ EOF always-pull: true debug: true wait-network: true + timeout: ${TIMEOUT:-10} agents: - "queue=mac-anka-node-fleet" skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_UNIT_TESTS} @@ -226,6 +228,7 @@ EOF always-pull: true debug: true wait-network: true + timeout: ${TIMEOUT:-10} agents: - "queue=mac-anka-node-fleet" skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_SERIAL_TESTS} @@ -255,7 +258,7 @@ echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} + timeout: ${TIMEOUT:-180} skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_LONG_RUNNING_TESTS:-true} EOF @@ -280,6 +283,7 @@ EOF always-pull: true debug: true wait-network: true + timeout: ${TIMEOUT:-180} agents: - "queue=mac-anka-large-node-fleet" skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_LONG_RUNNING_TESTS:-true} From 18e50387457de47591fc47105442f8560f17589d Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 16:40:04 -0400 Subject: [PATCH 462/528] quick fixes --- .cicd/pipeline.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index da88a49bc82..85bd4bac37a 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -18,7 +18,7 @@ steps: node --max-old-space-size=32768 test-metrics.js agents: queue: "automation-eos-builder-fleet" - timeout: 10 + timeout: ${TIMEOUT:-10} soft_fail: true - wait @@ -92,7 +92,7 @@ steps: wait-network: true agents: - "queue=mac-anka-node-fleet" - timeout: 10 + timeout: ${TIMEOUT:-10} skip: ${SKIP_MOJAVE}${SKIP_PACKAGE_BUILDER}${SKIP_MAC} - label: ":git: Git Submodule Regression Check" @@ -100,4 +100,4 @@ steps: - "./.cicd/submodule-regression-checker.sh" agents: queue: "automation-basic-builder-fleet" - timeout: 5 \ No newline at end of file + timeout: ${TIMEOUT:-5} \ No newline at end of file From a61e0279ae3ec55a464b8a1c74c1146e0743cb03 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 29 Aug 2019 16:43:48 -0400 Subject: [PATCH 463/528] Create long-running-test.sh --- scripts/long-running-test.sh | 54 ++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 scripts/long-running-test.sh diff --git a/scripts/long-running-test.sh b/scripts/long-running-test.sh new file mode 100755 index 00000000000..dd1af61cdd4 --- /dev/null +++ b/scripts/long-running-test.sh @@ -0,0 +1,54 @@ +#!/bin/bash +set -eo pipefail +# variables +echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':evergreen_tree: ')Configuring Environment" +GIT_ROOT="$(dirname $BASH_SOURCE[0])/.." +[[ -z "$TEST" ]] && export TEST=$1 +cd $GIT_ROOT/build +# mongoDB +if [[ ! -z "$(pgrep mongod)" ]]; then + echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':leaves: ')Killing old MongoDB" + $(pgrep mongod | xargs kill -9) || : +fi +echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':leaves: ')Starting new MongoDB" +echo "mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb') $([[ -f ~/etc/mongod.conf ]] && echo '-f ~/etc/mongod.conf')" +eval mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb') $([[ -f ~/etc/mongod.conf ]] && echo '-f ~/etc/mongod.conf') +# tests +if [[ -z "$TEST" ]]; then # run all serial tests + # count tests + echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':microscope: ')Running Long-Running Tests" + TEST_COUNT=$(ctest -N -L long_running_tests | grep -i 'Total Tests: ' | cut -d ':' -f 2 | awk '{print $1}') + if [[ $TEST_COUNT > 0 ]]; then + echo "$TEST_COUNT tests found." + # run tests + set +e # defer ctest error handling to end + echo '$ ctest -L long_running_tests --output-on-failure -T Test' + ctest -L long_running_tests --output-on-failure -T Test + EXIT_STATUS=$? + echo 'Done running long-running tests.' + else + echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':no_entry: ')ERROR: No tests registered with ctest! Exiting..." + EXIT_STATUS='1' + fi +else # run specific serial test + # ensure test exists + echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':microscope: ')Running $TEST" + TEST_COUNT=$(ctest -N -R ^$TEST$ | grep -i 'Total Tests: ' | cut -d ':' -f 2 | awk '{print $1}') + if [[ $TEST_COUNT > 0 ]]; then + echo "$TEST found." + # run tests + set +e # defer ctest error handling to end + echo "$ ctest -R ^$TEST$ --output-on-failure -T Test" + ctest -R ^$TEST$ --output-on-failure -T Test + EXIT_STATUS=$? + echo "Done running $TEST." + else + echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':no_entry: ')ERROR: No tests matching \"$TEST\" registered with ctest! Exiting..." + EXIT_STATUS='1' + fi +fi +if [[ ! -z "$(pgrep mongod)" ]]; then + echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':leaves: ')Killing MongoDB" + $(pgrep mongod | xargs kill -9) || : +fi +exit $EXIT_STATUS \ No newline at end of file From 8ae985ff691e519a36559625a95b5c44876481f9 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 29 Aug 2019 16:45:24 -0400 Subject: [PATCH 464/528] Create parallel-test.sh --- scripts/parallel-test.sh | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100755 scripts/parallel-test.sh diff --git a/scripts/parallel-test.sh b/scripts/parallel-test.sh new file mode 100755 index 00000000000..6a9038caf85 --- /dev/null +++ b/scripts/parallel-test.sh @@ -0,0 +1,23 @@ +#!/bin/bash +set -eo pipefail +# variables +echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':evergreen_tree: ')Configuring Environment" +[[ -z "$CPUS" ]] && export CPUS=$(getconf _NPROCESSORS_ONLN) +GIT_ROOT="$(dirname $BASH_SOURCE[0])/.." +cd $GIT_ROOT/build +# count tests +echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':microscope: ')Running Parallelizable Tests" +TEST_COUNT=$(ctest -N -LE _tests | grep -i 'Total Tests: ' | cut -d ':' -f 2 | awk '{print $1}') +if [[ $TEST_COUNT > 0 ]]; then + echo "$TEST_COUNT tests found." +else + echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':no_entry: ')ERROR: No tests registered with ctest! Exiting..." + exit 1 +fi +# run tests +set +e # defer ctest error handling to end +echo "$ ctest -j $CPUS -LE _tests --output-on-failure -T Test" +ctest -j $CPUS -LE _tests --output-on-failure -T Test +EXIT_STATUS=$? +echo 'Done running parallelizable tests.' +exit $EXIT_STATUS \ No newline at end of file From 8c7a11cf54a308cc221313abaa2e4a3a7e5bb9a7 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 29 Aug 2019 16:45:40 -0400 Subject: [PATCH 465/528] Create serial-test.sh --- scripts/serial-test.sh | 54 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 scripts/serial-test.sh diff --git a/scripts/serial-test.sh b/scripts/serial-test.sh new file mode 100755 index 00000000000..db423244ce8 --- /dev/null +++ b/scripts/serial-test.sh @@ -0,0 +1,54 @@ +#!/bin/bash +set -eo pipefail +# variables +echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':evergreen_tree: ')Configuring Environment" +GIT_ROOT="$(dirname $BASH_SOURCE[0])/.." +[[ -z "$TEST" ]] && export TEST=$1 +cd $GIT_ROOT/build +# mongoDB +if [[ ! -z "$(pgrep mongod)" ]]; then + echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':leaves: ')Killing old MongoDB" + $(pgrep mongod | xargs kill -9) || : +fi +echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':leaves: ')Starting new MongoDB" +echo "mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb') $(if [[ -f ~/etc/mongod.conf ]]; then echo '-f ~/etc/mongod.conf'; elif [[ -f /usr/local/etc/mongod.conf ]]; then echo '-f /usr/local/etc/mongod.conf'; fi)" +eval mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb') $(if [[ -f ~/etc/mongod.conf ]]; then echo '-f ~/etc/mongod.conf'; elif [[ -f /usr/local/etc/mongod.conf ]]; then echo '-f /usr/local/etc/mongod.conf'; fi) +# tests +if [[ -z "$TEST" ]]; then # run all serial tests + # count tests + echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':microscope: ')Running Non-Parallelizable Tests" + TEST_COUNT=$(ctest -N -L nonparallelizable_tests | grep -i 'Total Tests: ' | cut -d ':' -f 2 | awk '{print $1}') + if [[ $TEST_COUNT > 0 ]]; then + echo "$TEST_COUNT tests found." + # run tests + set +e # defer ctest error handling to end + echo '$ ctest -L nonparallelizable_tests --output-on-failure -T Test' + ctest -L nonparallelizable_tests --output-on-failure -T Test + EXIT_STATUS=$? + echo 'Done running non-parallelizable tests.' + else + echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':no_entry: ')ERROR: No tests registered with ctest! Exiting..." + EXIT_STATUS='1' + fi +else # run specific serial test + # ensure test exists + echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':microscope: ')Running $TEST" + TEST_COUNT=$(ctest -N -R ^$TEST$ | grep -i 'Total Tests: ' | cut -d ':' -f 2 | awk '{print $1}') + if [[ $TEST_COUNT > 0 ]]; then + echo "$TEST found." + # run tests + set +e # defer ctest error handling to end + echo "$ ctest -R ^$TEST$ --output-on-failure -T Test" + ctest -R ^$TEST$ --output-on-failure -T Test + EXIT_STATUS=$? + echo "Done running $TEST." + else + echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':no_entry: ')ERROR: No tests matching \"$TEST\" registered with ctest! Exiting..." + EXIT_STATUS='1' + fi +fi +if [[ ! -z "$(pgrep mongod)" ]]; then + echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':leaves: ')Killing MongoDB" + $(pgrep mongod | xargs kill -9) || : +fi +exit $EXIT_STATUS \ No newline at end of file From 0191aa090ba9384f2b0416bb0efba5bb7dfe12d8 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Thu, 29 Aug 2019 17:10:53 -0400 Subject: [PATCH 466/528] Testing missing mongod. --- .cicd/platforms/macos-10.14.sh | 7 ++----- .cicd/serial-tests.sh | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/.cicd/platforms/macos-10.14.sh b/.cicd/platforms/macos-10.14.sh index e619ad8fe4c..cabc346a719 100755 --- a/.cicd/platforms/macos-10.14.sh +++ b/.cicd/platforms/macos-10.14.sh @@ -50,15 +50,12 @@ if [[ ! $PINNED == false || $UNPINNED == true ]]; then rm -rf clang8 fi -cd /tmp +cd ~ curl -OL https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-3.6.3.tgz tar -xzf mongodb-osx-ssl-x86_64-3.6.3.tgz mkdir -p ~/mongodb -touch ~/mongodb/mongod.log rm -f mongodb-osx-ssl-x86_64-3.6.3.tgz -mkdir -p ~/mongodb -ln -s /tmp/mongodb-osx-x86_64-3.6.3 ~/mongodb -ln -s ~/mongodb/bin/mongod /usr/local/bin/mongod +ln -s ~/mongodb-osx-x86_64-3.6.3 ~/mongodb cd /tmp curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index 178f2234df2..babea5e23e3 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -10,7 +10,7 @@ if [[ $(uname) == 'Darwin' ]]; then # You can't use chained commands in execute cd $BUILD_DIR - bash -c "$TEST" + bash -c "export PATH=\$PATH:~/mongodb/bin && $TEST" else # Linux From e2502e9f6c498599f6c5ddef2e0f6b99bd42a6c0 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 17:26:15 -0400 Subject: [PATCH 467/528] quick fixes --- .cicd/serial-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index babea5e23e3..5a6e376b7bb 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -4,7 +4,7 @@ set -eo pipefail [[ -z $1 ]] && TEST_NAME="-L nonparallelizable_tests" || TEST_NAME="-R ^$1$" -TEST="mongod --dbpath ~/mongodb --fork --logpath ~/mongod.log && ctest $TEST_NAME --output-on-failure -T Test" +TEST="mkdir ~/mongodb && mongod --dbpath ~/mongodb --fork --logpath ~/mongod.log && ctest $TEST_NAME --output-on-failure -T Test" if [[ $(uname) == 'Darwin' ]]; then From c82e9f34aa3c8902f9ec2fbb0849f966db4f2eee Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 29 Aug 2019 17:28:26 -0400 Subject: [PATCH 468/528] Add description to general.sh.capitalize() --- .cicd/helpers/general.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.cicd/helpers/general.sh b/.cicd/helpers/general.sh index 41f0b38fc0f..3607a2daa36 100644 --- a/.cicd/helpers/general.sh +++ b/.cicd/helpers/general.sh @@ -5,6 +5,8 @@ export HELPERS_DIR=$CICD_DIR/helpers export JOBS=${JOBS:-"$(getconf _NPROCESSORS_ONLN)"} export MOUNTED_DIR='/workdir' -function capitalize() { +# capitalize each word in a string +function capitalize() +{ echo $1 | awk '{$1=toupper(substr($1,1,1))substr($1,2)}1' } \ No newline at end of file From 6e00349ec533a71b465519fad4ebd776c4d51be1 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 29 Aug 2019 17:31:03 -0400 Subject: [PATCH 469/528] quick fixes --- .cicd/platforms/macos-10.14.sh | 1 - .cicd/serial-tests.sh | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.cicd/platforms/macos-10.14.sh b/.cicd/platforms/macos-10.14.sh index cabc346a719..6b92c5a0bbf 100755 --- a/.cicd/platforms/macos-10.14.sh +++ b/.cicd/platforms/macos-10.14.sh @@ -53,7 +53,6 @@ fi cd ~ curl -OL https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-3.6.3.tgz tar -xzf mongodb-osx-ssl-x86_64-3.6.3.tgz -mkdir -p ~/mongodb rm -f mongodb-osx-ssl-x86_64-3.6.3.tgz ln -s ~/mongodb-osx-x86_64-3.6.3 ~/mongodb diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index 5a6e376b7bb..73f313bf40b 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -4,7 +4,7 @@ set -eo pipefail [[ -z $1 ]] && TEST_NAME="-L nonparallelizable_tests" || TEST_NAME="-R ^$1$" -TEST="mkdir ~/mongodb && mongod --dbpath ~/mongodb --fork --logpath ~/mongod.log && ctest $TEST_NAME --output-on-failure -T Test" +TEST="mkdir -p ~/mongodb && mongod --dbpath ~/mongodb --fork --logpath ~/mongod.log && ctest $TEST_NAME --output-on-failure -T Test" if [[ $(uname) == 'Darwin' ]]; then From 8c1c59587ec4057925de0737ddc0b2692675b305 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 29 Aug 2019 17:31:46 -0400 Subject: [PATCH 470/528] Created /.cicd/helpers/general.sh.buildkite-intrinsics() --- .cicd/helpers/general.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.cicd/helpers/general.sh b/.cicd/helpers/general.sh index 3607a2daa36..3002a0f8f7b 100644 --- a/.cicd/helpers/general.sh +++ b/.cicd/helpers/general.sh @@ -9,4 +9,16 @@ export MOUNTED_DIR='/workdir' function capitalize() { echo $1 | awk '{$1=toupper(substr($1,1,1))substr($1,2)}1' +} + +# load buildkite intrinsic environment variables for use in docker run +function buildkite-intrinsics() +{ + BK_ENV='' + if [[ -f $BUILDKITE_ENV_FILE ]]; then + while read -r var; do + BK_ENV="$BK_ENV --env ${var%%=*}" + done < "$BUILDKITE_ENV_FILE" + fi + return "$BK_ENV" } \ No newline at end of file From 933f53e207eefae899085a330a691cf7e21dff69 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 29 Aug 2019 17:38:42 -0400 Subject: [PATCH 471/528] All scripts now use general.sh.buildkite-intrinsics() to load Buildkite variables --- .cicd/build.sh | 12 ++---------- .cicd/package.sh | 12 ++---------- .cicd/parallel-tests.sh | 12 ++---------- .cicd/serial-tests.sh | 12 ++---------- 4 files changed, 8 insertions(+), 40 deletions(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index 4102875ccc2..a7e71594f17 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -58,15 +58,7 @@ else # Linux COMMANDS="$PRE_COMMANDS && $COMMANDS" - # Load BUILDKITE Environment Variables for use in docker run - if [[ -f $BUILDKITE_ENV_FILE ]]; then - evars="" - while read -r var; do - evars="$evars --env ${var%%=*}" - done < "$BUILDKITE_ENV_FILE" - fi - - echo "docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\"" - eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" + echo "$ docker run $ARGS $(buildkite-intrinsics) $FULL_TAG bash -c \"$COMMANDS\"" + eval docker run $ARGS $(buildkite-intrinsics) $FULL_TAG bash -c \"$COMMANDS\" fi \ No newline at end of file diff --git a/.cicd/package.sh b/.cicd/package.sh index f1b4e6d23c6..0a397566d72 100755 --- a/.cicd/package.sh +++ b/.cicd/package.sh @@ -40,16 +40,8 @@ else # Linux fi COMMANDS="$PRE_COMMANDS && $PACKAGE_COMMANDS" - - # Load BUILDKITE Environment Variables for use in docker run - if [[ -f $BUILDKITE_ENV_FILE ]]; then - evars="" - while read -r var; do - evars="$evars --env ${var%%=*}" - done < "$BUILDKITE_ENV_FILE" - fi - - eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" + echo "docker run $ARGS $(buildkite-intrinsics) $FULL_TAG bash -c \"$COMMANDS\"" + eval docker run $ARGS $(buildkite-intrinsics) $FULL_TAG bash -c \"$COMMANDS\" cd build/packages [[ -d x86_64 ]] && cd 'x86_64' # backwards-compatibility with release/1.6.x diff --git a/.cicd/parallel-tests.sh b/.cicd/parallel-tests.sh index 888e7e6be27..700fe11ff6d 100755 --- a/.cicd/parallel-tests.sh +++ b/.cicd/parallel-tests.sh @@ -17,15 +17,7 @@ else # Linux . $HELPERS_DIR/docker-hash.sh COMMANDS="cd $MOUNTED_DIR/build && $TEST" - - # Load BUILDKITE Environment Variables for use in docker run - if [[ -f $BUILDKITE_ENV_FILE ]]; then - evars="" - while read -r var; do - evars="$evars --env ${var%%=*}" - done < "$BUILDKITE_ENV_FILE" - fi - - eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" + echo "$ docker run $ARGS $(buildkite-intrinsics) $FULL_TAG bash -c \"$COMMANDS\"" + eval docker run $ARGS $(buildkite-intrinsics) $FULL_TAG bash -c \"$COMMANDS\" fi \ No newline at end of file diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index 770a0670d43..b9729b82b8d 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -22,15 +22,7 @@ else # Linux [[ $IMAGE_TAG == 'centos-7.6' ]] && PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:\\\$PATH" COMMANDS="$PRE_COMMANDS && $TEST" - - # Load BUILDKITE Environment Variables for use in docker run - if [[ -f $BUILDKITE_ENV_FILE ]]; then - evars="" - while read -r var; do - evars="$evars --env ${var%%=*}" - done < "$BUILDKITE_ENV_FILE" - fi - echo "docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\"" - eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" + echo "$ docker run $ARGS $(buildkite-intrinsics) $FULL_TAG bash -c \"$COMMANDS\"" + eval docker run $ARGS $(buildkite-intrinsics) $FULL_TAG bash -c \"$COMMANDS\" fi \ No newline at end of file From 8e48a0f4198565de1a0af3b507977303d1d34891 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 29 Aug 2019 17:41:32 -0400 Subject: [PATCH 472/528] Change return statement to echo statement --- .cicd/helpers/general.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/helpers/general.sh b/.cicd/helpers/general.sh index 3002a0f8f7b..085d95a34b1 100644 --- a/.cicd/helpers/general.sh +++ b/.cicd/helpers/general.sh @@ -20,5 +20,5 @@ function buildkite-intrinsics() BK_ENV="$BK_ENV --env ${var%%=*}" done < "$BUILDKITE_ENV_FILE" fi - return "$BK_ENV" + echo "$BK_ENV" } \ No newline at end of file From 3837fbb4ec450bb69d5f368bab82c6dbed511eb2 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 29 Aug 2019 17:49:22 -0400 Subject: [PATCH 473/528] Remove unnecessary whitespace --- .cicd/build.sh | 13 -------- .cicd/generate-serial-tests.sh | 6 +--- .cicd/helpers/clang.make | 6 +--- .cicd/installation-build.sh | 11 +------ .cicd/long-running-tests.sh | 11 ------- .cicd/package.sh | 12 ------- .cicd/parallel-tests.sh | 8 ----- .cicd/serial-tests.sh | 10 ------ .cicd/submodule-regression-checker.sh | 46 ++++++++++++--------------- 9 files changed, 23 insertions(+), 100 deletions(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index a7e71594f17..86ae531c6a7 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -1,29 +1,21 @@ #!/usr/bin/env bash set -eo pipefail . ./.cicd/helpers/general.sh - mkdir -p $BUILD_DIR - if [[ $(uname) == 'Darwin' ]]; then - # You can't use chained commands in execute cd $BUILD_DIR [[ $TRAVIS == true ]] && ccache -s [[ $PINNED == true ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$HELPERS_DIR/clang.make" cmake $CMAKE_EXTRAS .. make -j$JOBS - else # Linux - ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} - . $HELPERS_DIR/docker-hash.sh - PRE_COMMANDS="cd $MOUNTED_DIR/build" # PRE_COMMANDS: Executed pre-cmake # CMAKE_EXTRAS: Executed within and right before the cmake path (cmake CMAKE_EXTRAS ..) [[ ! $IMAGE_TAG =~ 'unpinned' ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$MOUNTED_DIR/.cicd/helpers/clang.make -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" - if [[ $IMAGE_TAG == 'amazon_linux-2' ]]; then PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib64/ccache:\\\$PATH" elif [[ $IMAGE_TAG == 'centos-7.6' ]]; then @@ -41,9 +33,7 @@ else # Linux PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" fi - BUILD_COMMANDS="cmake $CMAKE_EXTRAS -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_BUILD_TYPE='Release' .. && make -j$JOBS" - # Docker Commands if [[ $BUILDKITE == true ]]; then # Generate Base Images @@ -55,10 +45,7 @@ else # Linux ARGS="$ARGS -v /usr/lib/ccache -v $HOME/.ccache:/opt/.ccache -e JOBS -e TRAVIS -e CCACHE_DIR=/opt/.ccache" COMMANDS="ccache -s && $BUILD_COMMANDS" fi - COMMANDS="$PRE_COMMANDS && $COMMANDS" - echo "$ docker run $ARGS $(buildkite-intrinsics) $FULL_TAG bash -c \"$COMMANDS\"" eval docker run $ARGS $(buildkite-intrinsics) $FULL_TAG bash -c \"$COMMANDS\" - fi \ No newline at end of file diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index 162c73f26e0..28f6ae77a4f 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -1,9 +1,7 @@ #!/usr/bin/env bash set -eo pipefail . ./.cicd/helpers/general.sh - SERIAL_TESTS=$(cat tests/CMakeLists.txt | grep nonparallelizable_tests | awk -F" " '{ print $2 }') - # Use dockerfiles as source of truth for what platforms to use ## Linux for DOCKERFILE in $(ls $CICD_DIR/docker); do @@ -58,6 +56,4 @@ cat < /dev/null git submodule update --init &> /dev/null while read -r a b; do - BASE_MAP[$a]=$b + BASE_MAP[$a]=$b done < <(git submodule --quiet foreach --recursive 'echo $path `git log -1 --format=%ct`') - for k in "${!BASE_MAP[@]}"; do - base_ts=${BASE_MAP[$k]} - pr_ts=${PR_MAP[$k]} - echo "submodule $k" - echo " timestamp on $CURRENT_BRANCH: $pr_ts" - echo " timestamp on $BASE_BRANCH: $base_ts" - if (( $pr_ts < $base_ts)); then - echo "$k is older on $CURRENT_BRANCH than $BASE_BRANCH; investigating..." - - if for c in `git log $CURRENT_BRANCH ^$BASE_BRANCH --pretty=format:"%H"`; do git show --pretty="" --name-only $c; done | grep -q "^$k$"; then - echo "ERROR: $k has regressed" - exit 1 - else - echo "$k was not in the diff; no regression detected" + base_ts=${BASE_MAP[$k]} + pr_ts=${PR_MAP[$k]} + echo "submodule $k" + echo " timestamp on $CURRENT_BRANCH: $pr_ts" + echo " timestamp on $BASE_BRANCH: $base_ts" + if (( $pr_ts < $base_ts)); then + echo "$k is older on $CURRENT_BRANCH than $BASE_BRANCH; investigating..." + if for c in `git log $CURRENT_BRANCH ^$BASE_BRANCH --pretty=format:"%H"`; do git show --pretty="" --name-only $c; done | grep -q "^$k$"; then + echo "ERROR: $k has regressed" + exit 1 + else + echo "$k was not in the diff; no regression detected" + fi fi - fi -done +done \ No newline at end of file From 45bdef2b858c70a759a8c5507ba04c9d3301d30c Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 29 Aug 2019 18:12:14 -0400 Subject: [PATCH 474/528] Change "#!/usr/bin/env bash" to "#!/bin/bash" --- .cicd/build.sh | 2 +- .cicd/generate-base-images.sh | 2 +- .cicd/generate-serial-tests.sh | 2 +- .cicd/installation-build.sh | 2 +- .cicd/long-running-tests.sh | 2 +- .cicd/package.sh | 2 +- .cicd/parallel-tests.sh | 2 +- .cicd/serial-tests.sh | 2 +- .cicd/submodule-regression-checker.sh | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index 86ae531c6a7..de44b8f9cbd 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/bash set -eo pipefail . ./.cicd/helpers/general.sh mkdir -p $BUILD_DIR diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index 94abce495cf..f0ecbf3e9cb 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/bash set -eo pipefail . ./.cicd/helpers/general.sh . $HELPERS_DIR/docker-hash.sh diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index 28f6ae77a4f..78f2648404d 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/bash set -eo pipefail . ./.cicd/helpers/general.sh SERIAL_TESTS=$(cat tests/CMakeLists.txt | grep nonparallelizable_tests | awk -F" " '{ print $2 }') diff --git a/.cicd/installation-build.sh b/.cicd/installation-build.sh index 95326f9e2bd..f74844423c7 100755 --- a/.cicd/installation-build.sh +++ b/.cicd/installation-build.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/bash set -eo pipefail . ./.cicd/helpers/general.sh export ENABLE_INSTALL=true diff --git a/.cicd/long-running-tests.sh b/.cicd/long-running-tests.sh index 8a2086a1664..f1d358f0568 100755 --- a/.cicd/long-running-tests.sh +++ b/.cicd/long-running-tests.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/bash set -eo pipefail . ./.cicd/helpers/general.sh TEST="ctest -L long_running_tests --output-on-failure -T Test" diff --git a/.cicd/package.sh b/.cicd/package.sh index f11b56300d4..64739db5e52 100755 --- a/.cicd/package.sh +++ b/.cicd/package.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/bash set -eo pipefail . ./.cicd/helpers/general.sh mkdir -p $BUILD_DIR diff --git a/.cicd/parallel-tests.sh b/.cicd/parallel-tests.sh index 650c1d3ae79..b8a57d1642f 100755 --- a/.cicd/parallel-tests.sh +++ b/.cicd/parallel-tests.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/bash set -eo pipefail . ./.cicd/helpers/general.sh TEST="ctest -j$JOBS -LE _tests --output-on-failure -T Test" diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index 747aca38e43..37ad7c50dde 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/bash set -eo pipefail . ./.cicd/helpers/general.sh [[ -z $1 ]] && TEST_NAME="-L nonparallelizable_tests" || TEST_NAME="-R ^$1$" diff --git a/.cicd/submodule-regression-checker.sh b/.cicd/submodule-regression-checker.sh index 237fe9a9fe0..d0dc7bf117d 100755 --- a/.cicd/submodule-regression-checker.sh +++ b/.cicd/submodule-regression-checker.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/bash set -eo pipefail declare -A PR_MAP declare -A BASE_MAP From fcaef568db8722d7efc7781698d886e051f5df8a Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 29 Aug 2019 18:14:02 -0400 Subject: [PATCH 475/528] Don't forget to use general.sh.buildkite-intrinsics() in long-running-test.sh --- .cicd/long-running-tests.sh | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.cicd/long-running-tests.sh b/.cicd/long-running-tests.sh index f1d358f0568..37eee4775c1 100755 --- a/.cicd/long-running-tests.sh +++ b/.cicd/long-running-tests.sh @@ -12,12 +12,6 @@ else # Linux PRE_COMMANDS="cd $MOUNTED_DIR/build" [[ $IMAGE_TAG == 'centos-7.6' ]] && PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:\\\$PATH" COMMANDS="$PRE_COMMANDS && $TEST" - # Load BUILDKITE Environment Variables for use in docker run - if [[ -f $BUILDKITE_ENV_FILE ]]; then - evars="" - while read -r var; do - evars="$evars --env ${var%%=*}" - done < "$BUILDKITE_ENV_FILE" - fi - eval docker run $ARGS $evars $FULL_TAG bash -c \"$COMMANDS\" + echo "$ docker run $ARGS $(buildkite-intrinsics) $FULL_TAG bash -c \"$COMMANDS\"" + eval docker run $ARGS $(buildkite-intrinsics) $FULL_TAG bash -c \"$COMMANDS\" fi \ No newline at end of file From 868de85df9026cd362acca26b40e827ca5dca9c8 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 29 Aug 2019 18:25:03 -0400 Subject: [PATCH 476/528] Renamed scripts to match repo naming scheme --- .cicd/generate-serial-tests.sh | 4 ++-- ...-running-tests.sh => long-running-test.sh} | 0 .cicd/{parallel-tests.sh => parallel-test.sh} | 0 .cicd/pipeline.yml | 22 +++++++++---------- .cicd/{serial-tests.sh => serial-test.sh} | 0 ...ecker.sh => submodule-regression-check.sh} | 0 .cicd/unpinned.yml | 20 ++++++++--------- 7 files changed, 23 insertions(+), 23 deletions(-) rename .cicd/{long-running-tests.sh => long-running-test.sh} (100%) rename .cicd/{parallel-tests.sh => parallel-test.sh} (100%) rename .cicd/{serial-tests.sh => serial-test.sh} (100%) rename .cicd/{submodule-regression-checker.sh => submodule-regression-check.sh} (100%) diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index 78f2648404d..58b3218f3c4 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -21,7 +21,7 @@ cat < Date: Thu, 29 Aug 2019 18:40:25 -0400 Subject: [PATCH 477/528] Add CentOS-specific configuration to the test scripts --- scripts/long-running-test.sh | 8 ++++++++ scripts/parallel-test.sh | 8 ++++++++ scripts/serial-test.sh | 8 ++++++++ 3 files changed, 24 insertions(+) diff --git a/scripts/long-running-test.sh b/scripts/long-running-test.sh index dd1af61cdd4..086195054ab 100755 --- a/scripts/long-running-test.sh +++ b/scripts/long-running-test.sh @@ -4,6 +4,14 @@ set -eo pipefail echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':evergreen_tree: ')Configuring Environment" GIT_ROOT="$(dirname $BASH_SOURCE[0])/.." [[ -z "$TEST" ]] && export TEST=$1 +if [[ "$(uname)" == 'Linux' ]]; then + . /etc/os-release + if [[ "$ID" == 'centos' ]]; then + [[ -f /opt/rh/devtoolset-8/enable ]] && source /opt/rh/devtoolset-8/enable + [[ -f /opt/rh/rh-python36/enable ]] && source /opt/rh/rh-python36/enable + [[ -z "$(which ccache)" && -f /usr/lib64/ccache ]] && export "PATH=/usr/lib64/ccache:$PATH" + fi +fi cd $GIT_ROOT/build # mongoDB if [[ ! -z "$(pgrep mongod)" ]]; then diff --git a/scripts/parallel-test.sh b/scripts/parallel-test.sh index 6a9038caf85..197096d50c5 100755 --- a/scripts/parallel-test.sh +++ b/scripts/parallel-test.sh @@ -4,6 +4,14 @@ set -eo pipefail echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':evergreen_tree: ')Configuring Environment" [[ -z "$CPUS" ]] && export CPUS=$(getconf _NPROCESSORS_ONLN) GIT_ROOT="$(dirname $BASH_SOURCE[0])/.." +if [[ "$(uname)" == 'Linux' ]]; then + . /etc/os-release + if [[ "$ID" == 'centos' ]]; then + [[ -f /opt/rh/devtoolset-8/enable ]] && source /opt/rh/devtoolset-8/enable + [[ -f /opt/rh/rh-python36/enable ]] && source /opt/rh/rh-python36/enable + [[ -z "$(which ccache)" && -f /usr/lib64/ccache ]] && export "PATH=/usr/lib64/ccache:$PATH" + fi +fi cd $GIT_ROOT/build # count tests echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':microscope: ')Running Parallelizable Tests" diff --git a/scripts/serial-test.sh b/scripts/serial-test.sh index db423244ce8..62a07598753 100755 --- a/scripts/serial-test.sh +++ b/scripts/serial-test.sh @@ -4,6 +4,14 @@ set -eo pipefail echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':evergreen_tree: ')Configuring Environment" GIT_ROOT="$(dirname $BASH_SOURCE[0])/.." [[ -z "$TEST" ]] && export TEST=$1 +if [[ "$(uname)" == 'Linux' ]]; then + . /etc/os-release + if [[ "$ID" == 'centos' ]]; then + [[ -f /opt/rh/devtoolset-8/enable ]] && source /opt/rh/devtoolset-8/enable + [[ -f /opt/rh/rh-python36/enable ]] && source /opt/rh/rh-python36/enable + [[ -z "$(which ccache)" && -f /usr/lib64/ccache ]] && export "PATH=/usr/lib64/ccache:$PATH" + fi +fi cd $GIT_ROOT/build # mongoDB if [[ ! -z "$(pgrep mongod)" ]]; then From 8c02f14ac14d0fb3ad02f3a1b9856cdc6ad4305a Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 29 Aug 2019 18:41:30 -0400 Subject: [PATCH 478/528] Remove dev-toolset-8 and ccache from CentOS-specific test setup --- scripts/long-running-test.sh | 2 -- scripts/parallel-test.sh | 2 -- scripts/serial-test.sh | 2 -- 3 files changed, 6 deletions(-) diff --git a/scripts/long-running-test.sh b/scripts/long-running-test.sh index 086195054ab..6ff5673d67c 100755 --- a/scripts/long-running-test.sh +++ b/scripts/long-running-test.sh @@ -7,9 +7,7 @@ GIT_ROOT="$(dirname $BASH_SOURCE[0])/.." if [[ "$(uname)" == 'Linux' ]]; then . /etc/os-release if [[ "$ID" == 'centos' ]]; then - [[ -f /opt/rh/devtoolset-8/enable ]] && source /opt/rh/devtoolset-8/enable [[ -f /opt/rh/rh-python36/enable ]] && source /opt/rh/rh-python36/enable - [[ -z "$(which ccache)" && -f /usr/lib64/ccache ]] && export "PATH=/usr/lib64/ccache:$PATH" fi fi cd $GIT_ROOT/build diff --git a/scripts/parallel-test.sh b/scripts/parallel-test.sh index 197096d50c5..9c333b5babd 100755 --- a/scripts/parallel-test.sh +++ b/scripts/parallel-test.sh @@ -7,9 +7,7 @@ GIT_ROOT="$(dirname $BASH_SOURCE[0])/.." if [[ "$(uname)" == 'Linux' ]]; then . /etc/os-release if [[ "$ID" == 'centos' ]]; then - [[ -f /opt/rh/devtoolset-8/enable ]] && source /opt/rh/devtoolset-8/enable [[ -f /opt/rh/rh-python36/enable ]] && source /opt/rh/rh-python36/enable - [[ -z "$(which ccache)" && -f /usr/lib64/ccache ]] && export "PATH=/usr/lib64/ccache:$PATH" fi fi cd $GIT_ROOT/build diff --git a/scripts/serial-test.sh b/scripts/serial-test.sh index 62a07598753..918dcb6ed5a 100755 --- a/scripts/serial-test.sh +++ b/scripts/serial-test.sh @@ -7,9 +7,7 @@ GIT_ROOT="$(dirname $BASH_SOURCE[0])/.." if [[ "$(uname)" == 'Linux' ]]; then . /etc/os-release if [[ "$ID" == 'centos' ]]; then - [[ -f /opt/rh/devtoolset-8/enable ]] && source /opt/rh/devtoolset-8/enable [[ -f /opt/rh/rh-python36/enable ]] && source /opt/rh/rh-python36/enable - [[ -z "$(which ccache)" && -f /usr/lib64/ccache ]] && export "PATH=/usr/lib64/ccache:$PATH" fi fi cd $GIT_ROOT/build From d16261e8477e6cbefad20506b9258a9ad28335e7 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 29 Aug 2019 18:44:19 -0400 Subject: [PATCH 479/528] Call test scripts instead of building test commands from scratch --- .cicd/long-running-test.sh | 15 ++++----------- .cicd/parallel-test.sh | 13 ++++--------- .cicd/serial-test.sh | 16 ++++------------ 3 files changed, 12 insertions(+), 32 deletions(-) diff --git a/.cicd/long-running-test.sh b/.cicd/long-running-test.sh index 37eee4775c1..fde383fd2de 100755 --- a/.cicd/long-running-test.sh +++ b/.cicd/long-running-test.sh @@ -1,17 +1,10 @@ #!/bin/bash set -eo pipefail . ./.cicd/helpers/general.sh -TEST="ctest -L long_running_tests --output-on-failure -T Test" -if [[ $(uname) == 'Darwin' ]]; then - # You can't use chained commands in execute - cd $BUILD_DIR - bash -c "$TEST" +if [[ $(uname) == 'Darwin' ]]; then # macOS + ./scripts/long-running-test.sh else # Linux - ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} . $HELPERS_DIR/docker-hash.sh - PRE_COMMANDS="cd $MOUNTED_DIR/build" - [[ $IMAGE_TAG == 'centos-7.6' ]] && PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:\\\$PATH" - COMMANDS="$PRE_COMMANDS && $TEST" - echo "$ docker run $ARGS $(buildkite-intrinsics) $FULL_TAG bash -c \"$COMMANDS\"" - eval docker run $ARGS $(buildkite-intrinsics) $FULL_TAG bash -c \"$COMMANDS\" + echo "$ docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c \"$MOUNTED_DIR/scripts/long-running-test.sh\"" + eval docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c "$MOUNTED_DIR/scripts/long-running-test.sh" fi \ No newline at end of file diff --git a/.cicd/parallel-test.sh b/.cicd/parallel-test.sh index b8a57d1642f..ed171eee713 100755 --- a/.cicd/parallel-test.sh +++ b/.cicd/parallel-test.sh @@ -1,15 +1,10 @@ #!/bin/bash set -eo pipefail . ./.cicd/helpers/general.sh -TEST="ctest -j$JOBS -LE _tests --output-on-failure -T Test" -if [[ $(uname) == 'Darwin' ]]; then - # You can't use chained commands in execute - cd $BUILD_DIR - bash -c "$TEST" +if [[ $(uname) == 'Darwin' ]]; then # macOS + ./scripts/parallel-test.sh else # Linux - ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} . $HELPERS_DIR/docker-hash.sh - COMMANDS="cd $MOUNTED_DIR/build && $TEST" - echo "$ docker run $ARGS $(buildkite-intrinsics) $FULL_TAG bash -c \"$COMMANDS\"" - eval docker run $ARGS $(buildkite-intrinsics) $FULL_TAG bash -c \"$COMMANDS\" + echo "$ docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c \"$MOUNTED_DIR/scripts/parallel-test.sh\"" + eval docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c "$MOUNTED_DIR/scripts/parallel-test.sh" fi \ No newline at end of file diff --git a/.cicd/serial-test.sh b/.cicd/serial-test.sh index 37ad7c50dde..6e194a0e48f 100755 --- a/.cicd/serial-test.sh +++ b/.cicd/serial-test.sh @@ -1,18 +1,10 @@ #!/bin/bash set -eo pipefail . ./.cicd/helpers/general.sh -[[ -z $1 ]] && TEST_NAME="-L nonparallelizable_tests" || TEST_NAME="-R ^$1$" -TEST="mkdir -p ./mongodb && mongod --dbpath ./mongodb --fork --logpath mongod.log && ctest $TEST_NAME --output-on-failure -T Test" -if [[ $(uname) == 'Darwin' ]]; then - # You can't use chained commands in execute - cd $BUILD_DIR - bash -c "$TEST" +if [[ $(uname) == 'Darwin' ]]; then # macOS + ./scripts/serial-test.sh else # Linux - ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} . $HELPERS_DIR/docker-hash.sh - PRE_COMMANDS="cd $MOUNTED_DIR/build" - [[ $IMAGE_TAG == 'centos-7.6' ]] && PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable && export PATH=/usr/lib64/ccache:\\\$PATH" - COMMANDS="$PRE_COMMANDS && $TEST" - echo "$ docker run $ARGS $(buildkite-intrinsics) $FULL_TAG bash -c \"$COMMANDS\"" - eval docker run $ARGS $(buildkite-intrinsics) $FULL_TAG bash -c \"$COMMANDS\" + echo "$ docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c \"$MOUNTED_DIR/scripts/serial-test.sh\"" + eval docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c "$MOUNTED_DIR/scripts/serial-test.sh" fi \ No newline at end of file From 10326041e4ac4829c2bce6b0e29025851c6387b3 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 29 Aug 2019 18:49:44 -0400 Subject: [PATCH 480/528] Replace individual test scripts with test runner --- .cicd/generate-serial-tests.sh | 4 ++-- .cicd/long-running-test.sh | 10 ---------- .cicd/parallel-test.sh | 10 ---------- .cicd/pipeline.yml | 20 ++++++++++---------- .cicd/{serial-test.sh => test.sh} | 6 +++--- .cicd/unpinned.yml | 20 ++++++++++---------- 6 files changed, 25 insertions(+), 45 deletions(-) delete mode 100755 .cicd/long-running-test.sh delete mode 100755 .cicd/parallel-test.sh rename .cicd/{serial-test.sh => test.sh} (61%) diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index 58b3218f3c4..8ddfa589a39 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -21,7 +21,7 @@ cat < Date: Thu, 29 Aug 2019 19:02:34 -0400 Subject: [PATCH 481/528] Add comments to test runner --- .cicd/test.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.cicd/test.sh b/.cicd/test.sh index d57a82be4bf..621abbdc7cc 100755 --- a/.cicd/test.sh +++ b/.cicd/test.sh @@ -1,6 +1,8 @@ #!/bin/bash set -eo pipefail +# variables . ./.cicd/helpers/general.sh +# tests if [[ $(uname) == 'Darwin' ]]; then # macOS ./"$@" else # Linux From e4ffaf92b9be69d00e54896a4a59a6a008cc7850 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 29 Aug 2019 19:04:47 -0400 Subject: [PATCH 482/528] Test Runner: Catch and re-throw errors --- .cicd/test.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.cicd/test.sh b/.cicd/test.sh index 621abbdc7cc..7dde9ad42fb 100755 --- a/.cicd/test.sh +++ b/.cicd/test.sh @@ -5,8 +5,15 @@ set -eo pipefail # tests if [[ $(uname) == 'Darwin' ]]; then # macOS ./"$@" + EXIT_STATUS=$? else # Linux . $HELPERS_DIR/docker-hash.sh echo "$ docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c \"$MOUNTED_DIR/$@\"" eval docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c "$MOUNTED_DIR/$@" + EXIT_STATUS=$? +fi +# re-throw +if [[ "$EXIT_STATUS" != 0 ]]; then + echo "Failing due to non-zero exit status from ctest: $EXIT_STATUS" + exit $EXIT_STATUS fi \ No newline at end of file From c228f551024af01c45945b8b299c2202ceb60fa3 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 29 Aug 2019 19:21:39 -0400 Subject: [PATCH 483/528] Test Runner: Export Buildkite artifacts --- .cicd/test.sh | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.cicd/test.sh b/.cicd/test.sh index 7dde9ad42fb..f01ea6b7a60 100755 --- a/.cicd/test.sh +++ b/.cicd/test.sh @@ -12,6 +12,23 @@ else # Linux eval docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c "$MOUNTED_DIR/$@" EXIT_STATUS=$? fi +# buildkite +if [[ "$BUILDKITE" == 'true' ]]; then + cd build + # upload artifacts + echo '+++ :arrow_up: Uploading Artifacts' + echo 'Compressing core dumps...' + [[ $((`ls -1 core.* 2>/dev/null | wc -l`)) != 0 ]] && tar czf core.tar.gz core.* || : # collect core dumps + echo 'Exporting xUnit XML' + mv -f ./Testing/$(ls ./Testing/ | grep '2' | tail -n 1)/Test.xml test-results.xml + echo 'Uploading artifacts' + [[ -f config.ini ]] && buildkite-agent artifact upload config.ini + [[ -f core.tar.gz ]] && buildkite-agent artifact upload core.tar.gz + [[ -f genesis.json ]] && buildkite-agent artifact upload genesis.json + [[ -f mongod.log ]] && buildkite-agent artifact upload mongod.log + buildkite-agent artifact upload test-results.xml + echo 'Done uploading artifacts.' +fi # re-throw if [[ "$EXIT_STATUS" != 0 ]]; then echo "Failing due to non-zero exit status from ctest: $EXIT_STATUS" From a20d27ab9e3398d4bea0015c28c7fabf88eba668 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Thu, 29 Aug 2019 19:35:48 -0400 Subject: [PATCH 484/528] Add shell prompt to mongoDB echo statement --- scripts/long-running-test.sh | 2 +- scripts/serial-test.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/long-running-test.sh b/scripts/long-running-test.sh index 6ff5673d67c..35c369647cd 100755 --- a/scripts/long-running-test.sh +++ b/scripts/long-running-test.sh @@ -17,7 +17,7 @@ if [[ ! -z "$(pgrep mongod)" ]]; then $(pgrep mongod | xargs kill -9) || : fi echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':leaves: ')Starting new MongoDB" -echo "mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb') $([[ -f ~/etc/mongod.conf ]] && echo '-f ~/etc/mongod.conf')" +echo "$ mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb') $([[ -f ~/etc/mongod.conf ]] && echo '-f ~/etc/mongod.conf')" eval mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb') $([[ -f ~/etc/mongod.conf ]] && echo '-f ~/etc/mongod.conf') # tests if [[ -z "$TEST" ]]; then # run all serial tests diff --git a/scripts/serial-test.sh b/scripts/serial-test.sh index 918dcb6ed5a..c139de185fc 100755 --- a/scripts/serial-test.sh +++ b/scripts/serial-test.sh @@ -17,7 +17,7 @@ if [[ ! -z "$(pgrep mongod)" ]]; then $(pgrep mongod | xargs kill -9) || : fi echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':leaves: ')Starting new MongoDB" -echo "mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb') $(if [[ -f ~/etc/mongod.conf ]]; then echo '-f ~/etc/mongod.conf'; elif [[ -f /usr/local/etc/mongod.conf ]]; then echo '-f /usr/local/etc/mongod.conf'; fi)" +echo "$ mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb') $(if [[ -f ~/etc/mongod.conf ]]; then echo '-f ~/etc/mongod.conf'; elif [[ -f /usr/local/etc/mongod.conf ]]; then echo '-f /usr/local/etc/mongod.conf'; fi)" eval mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb') $(if [[ -f ~/etc/mongod.conf ]]; then echo '-f ~/etc/mongod.conf'; elif [[ -f /usr/local/etc/mongod.conf ]]; then echo '-f /usr/local/etc/mongod.conf'; fi) # tests if [[ -z "$TEST" ]]; then # run all serial tests From 93e4b5175622d80c62bcaac24240efcfd9e48ac4 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Thu, 29 Aug 2019 21:22:19 -0400 Subject: [PATCH 485/528] Extend timeout for Mac test steps. --- .cicd/generate-pipeline.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index c759a05e25b..426ee8845c0 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -175,7 +175,7 @@ EOF always-pull: true debug: true wait-network: true - timeout: ${TIMEOUT:-10} + timeout: ${TIMEOUT:-20} agents: - "queue=mac-anka-node-fleet" skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_UNIT_TESTS} @@ -228,7 +228,7 @@ EOF always-pull: true debug: true wait-network: true - timeout: ${TIMEOUT:-10} + timeout: ${TIMEOUT:-20} agents: - "queue=mac-anka-node-fleet" skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_SERIAL_TESTS} From 3c710e795730d1c49e8dfb5051b0661f11cd1808 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Fri, 30 Aug 2019 09:25:49 -0400 Subject: [PATCH 486/528] LRT step needs to run LRTs. --- .cicd/generate-pipeline.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 426ee8845c0..af3f08d0544 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -252,7 +252,7 @@ echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do - label: "$(echo "$PLATFORM_JSON" | jq -r .ICON) $(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_FULL) - Long-Running Tests" command: - "buildkite-agent artifact download build.tar.gz . --step '$(echo "$PLATFORM_JSON" | jq -r .ICON) $(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_FULL) - Build' && tar -xzf build.tar.gz" - - "./.cicd/parallel-tests.sh" + - "./.cicd/long-running-tests.sh" env: IMAGE_TAG: $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) BUILDKITE_AGENT_ACCESS_TOKEN: From 8ce69b4f3870adc5bce42f43f667a1d24436cae6 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Fri, 30 Aug 2019 10:01:41 -0400 Subject: [PATCH 487/528] Ensure there is a data directory for mongoDB --- scripts/long-running-test.sh | 5 +++-- scripts/serial-test.sh | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/scripts/long-running-test.sh b/scripts/long-running-test.sh index 35c369647cd..1b2b86db8ae 100755 --- a/scripts/long-running-test.sh +++ b/scripts/long-running-test.sh @@ -17,8 +17,9 @@ if [[ ! -z "$(pgrep mongod)" ]]; then $(pgrep mongod | xargs kill -9) || : fi echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':leaves: ')Starting new MongoDB" -echo "$ mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb') $([[ -f ~/etc/mongod.conf ]] && echo '-f ~/etc/mongod.conf')" -eval mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb') $([[ -f ~/etc/mongod.conf ]] && echo '-f ~/etc/mongod.conf') +[[ ! -d ~/data/mongodb && ! -d mongodata ]] && mkdir mongodata +echo "$ mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb' || echo "--dbpath $(pwd)/mongodata") $([[ -f ~/etc/mongod.conf ]] && echo '-f ~/etc/mongod.conf')" +eval mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb' || echo "--dbpath $(pwd)/mongodata") $([[ -f ~/etc/mongod.conf ]] && echo '-f ~/etc/mongod.conf') # tests if [[ -z "$TEST" ]]; then # run all serial tests # count tests diff --git a/scripts/serial-test.sh b/scripts/serial-test.sh index c139de185fc..84c8729009d 100755 --- a/scripts/serial-test.sh +++ b/scripts/serial-test.sh @@ -17,8 +17,9 @@ if [[ ! -z "$(pgrep mongod)" ]]; then $(pgrep mongod | xargs kill -9) || : fi echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':leaves: ')Starting new MongoDB" -echo "$ mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb') $(if [[ -f ~/etc/mongod.conf ]]; then echo '-f ~/etc/mongod.conf'; elif [[ -f /usr/local/etc/mongod.conf ]]; then echo '-f /usr/local/etc/mongod.conf'; fi)" -eval mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb') $(if [[ -f ~/etc/mongod.conf ]]; then echo '-f ~/etc/mongod.conf'; elif [[ -f /usr/local/etc/mongod.conf ]]; then echo '-f /usr/local/etc/mongod.conf'; fi) +[[ ! -d ~/data/mongodb && ! -d mongodata ]] && mkdir mongodata +echo "$ mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb' || echo "--dbpath $(pwd)/mongodata") $(if [[ -f ~/etc/mongod.conf ]]; then echo '-f ~/etc/mongod.conf'; elif [[ -f /usr/local/etc/mongod.conf ]]; then echo '-f /usr/local/etc/mongod.conf'; fi)" +eval mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb' || echo "--dbpath $(pwd)/mongodata") $(if [[ -f ~/etc/mongod.conf ]]; then echo '-f ~/etc/mongod.conf'; elif [[ -f /usr/local/etc/mongod.conf ]]; then echo '-f /usr/local/etc/mongod.conf'; fi) # tests if [[ -z "$TEST" ]]; then # run all serial tests # count tests From bd9c12fd876d77db738b4647c01a89bc3d52cf99 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 30 Aug 2019 10:03:56 -0400 Subject: [PATCH 488/528] package building to generate script --- .cicd/generate-pipeline.sh | 94 ++++++++++++++++++++++++++++++++++++++ .cicd/pipeline.yml | 88 ----------------------------------- 2 files changed, 94 insertions(+), 88 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index af3f08d0544..72da7700f91 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -293,4 +293,98 @@ EOF fi done + +cat < Date: Fri, 30 Aug 2019 10:07:15 -0400 Subject: [PATCH 489/528] SKIPS for unpinned --- .cicd/generate-pipeline.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 72da7700f91..61f07d3f5aa 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -15,6 +15,8 @@ for FILE in $(ls $CICD_DIR/platforms); do # Prevent using both platform files (only use unpinned or pinned) if [[ $PINNED == false || $UNPINNED == true ]] && [[ ! $FILE =~ 'macos' ]]; then + export SKIP_CONTRACT_BUILDER=true + export SKIP_PACKAGE_BUILDER=true [[ ! $FILE =~ 'unpinned' ]] && continue else [[ $FILE =~ 'unpinned' ]] && continue From c02940b6e7e67742149e08a09d763ac963c08fb6 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 30 Aug 2019 10:08:25 -0400 Subject: [PATCH 490/528] SKIPS for unpinned --- .cicd/pipeline.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 0813a5a8c33..51f602fb864 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -6,6 +6,8 @@ steps: agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} + + - wait - label: ":git: Git Submodule Regression Check" command: From 52d062e47fbc1faafcd660653c2330903eef3c97 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 30 Aug 2019 10:16:09 -0400 Subject: [PATCH 491/528] SKIPS for unpinned --- .cicd/pipeline.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 51f602fb864..97f68bad002 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,6 +1,9 @@ steps: - wait + - wait + + - label: ":pipeline: Generate Pipeline Steps" command: "./.cicd/generate-pipeline.sh | buildkite-agent pipeline upload" agents: From bbf05ae682e56c263691edcdf16971aeb7f3ec2f Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 30 Aug 2019 10:16:44 -0400 Subject: [PATCH 492/528] SKIPS for unpinned --- .cicd/pipeline.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 97f68bad002..51f602fb864 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,9 +1,6 @@ steps: - wait - - wait - - - label: ":pipeline: Generate Pipeline Steps" command: "./.cicd/generate-pipeline.sh | buildkite-agent pipeline upload" agents: From 09f8cfde61477d57735bac6f30070b6faba9286f Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 30 Aug 2019 10:17:09 -0400 Subject: [PATCH 493/528] SKIPS for unpinned --- .cicd/generate-pipeline.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 61f07d3f5aa..68aa7b22c55 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -82,6 +82,8 @@ echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do timeout: ${TIMEOUT:-320} skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_ENSURE_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)} + - wait + EOF fi done From 3f71ff352ef03b2c6ccb6797d7f37dfbd891254f Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 30 Aug 2019 10:18:10 -0400 Subject: [PATCH 494/528] SKIPS for unpinned --- .cicd/generate-pipeline.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 68aa7b22c55..61f07d3f5aa 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -82,8 +82,6 @@ echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do timeout: ${TIMEOUT:-320} skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_ENSURE_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)} - - wait - EOF fi done From 46ba9b497d78b7b7d301e963467b9d21a6a0c36c Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 30 Aug 2019 10:23:53 -0400 Subject: [PATCH 495/528] SKIPS for unpinned --- .cicd/generate-pipeline.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 61f07d3f5aa..08fdae7c28a 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -15,8 +15,8 @@ for FILE in $(ls $CICD_DIR/platforms); do # Prevent using both platform files (only use unpinned or pinned) if [[ $PINNED == false || $UNPINNED == true ]] && [[ ! $FILE =~ 'macos' ]]; then - export SKIP_CONTRACT_BUILDER=true - export SKIP_PACKAGE_BUILDER=true + export SKIP_CONTRACT_BUILDER=${SKIP_CONTRACT_BUILDER:-true} + export SKIP_PACKAGE_BUILDER=${SKIP_PACKAGE_BUILDER:-true} [[ ! $FILE =~ 'unpinned' ]] && continue else [[ $FILE =~ 'unpinned' ]] && continue From 2d5093ba193f94e421f5aa9dccb5b91e719db7ca Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Fri, 30 Aug 2019 10:32:54 -0400 Subject: [PATCH 496/528] Don't forget to point Travis at the new test runner --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index e8ebde66ab2..450683c0e32 100644 --- a/.travis.yml +++ b/.travis.yml @@ -49,7 +49,7 @@ matrix: - mongodb env: - PATH="/usr/local/opt/ccache/libexec:$PATH" -script: "ccache --max-size=1G && ./.cicd/build.sh && ./.cicd/parallel-tests.sh && ./.cicd/serial-tests.sh" +script: "ccache --max-size=1G && ./.cicd/build.sh && ./.cicd/test.sh scripts/parallel-test.sh && ./.cicd/test.sh scripts/serial-test.sh" notifications: webhooks: secure: gmqODqoFAil2cR7v++ibqRNECBOSD/VJX+2qPa7XptkVWmVMzbII5CNgBQAscjFsp9arHPMXCCzkBi847PCSiHdsnYFQ4T273FLRWr3cDbLjfmR+BJ7dGKvQnlpSi2Ze2TtAPJyRl+iv+cxDj7cWE5zw2c4xbgh1a/cNO+/ayUfFkyMEIfVWRsHkdkra4gOLywou0XRLHr4CX1V60uU7uuqATnIMMi7gQYwiKKtZqjkbf8wcBvZirDhjQ6lDPN5tnZo6L4QHmqjtzNJg/UrD4h+zES53dLVI4uxlXRAwwpw+mJOFA3QE/3FT+bMQjLCffUz4gZaWcdgebPYzrwSWUbJoFdWAOwcTqivQY0FIQzcz/r6uGWcwWTavzkPEbg68BVM2BZId/0110J6feeTkpJ3MPV+UsIoGTvbg50vi/I06icftuZ/cLqDj3+Emifm7Jlr1sRTSdqtYAJj/2ImUfsb46cwgjAVhFOTvc+KuPgJQgvOXV7bZkxEr5qDWo8Al2sV8BWb83j1rMlZ4LfERokImDVqxu2kkcunchzvhtYFTesSpmwegVpwceCtOtO0rEUgATnfTEHzk2rm8nuz4UtidsQnluUKqmKD0QCqHXFfn+3ZRJsDqr+iCYdxv1BAeAVc9q1L7bgrKDMGiJgkxuhZ2v3J2SflWLvjZjFDduuc= From 0650d81b48b5fa63d7bf04d8ec3918be923babbb Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 30 Aug 2019 10:45:55 -0400 Subject: [PATCH 497/528] -V to test to get travis to pass --- .cicd/generate-pipeline.sh | 4 ++-- .cicd/serial-tests.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 08fdae7c28a..f1813283fc1 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -2,8 +2,8 @@ set -eo pipefail . ./.cicd/helpers/general.sh -export MOJAVE_ANKA_TAG_BASE='clean::cicd::git-ssh::nas::brew::buildkite-agent' -export MOJAVE_ANKA_TEMPLATE_NAME='10.14.4_6C_14G_40G' +export MOJAVE_ANKA_TAG_BASE=${MOJAVE_ANKA_TAG_BASE:-'clean::cicd::git-ssh::nas::brew::buildkite-agent'} +export MOJAVE_ANKA_TEMPLATE_NAME=${MOJAVE_ANKA_TEMPLATE_NAME:-'10.14.4_6C_14G_40G'} # Use files in platforms dir as source of truth for what platforms we need to generate steps for export PLATFORMS_JSON_ARRAY='[]' diff --git a/.cicd/serial-tests.sh b/.cicd/serial-tests.sh index 73f313bf40b..ffde827a12f 100755 --- a/.cicd/serial-tests.sh +++ b/.cicd/serial-tests.sh @@ -4,7 +4,7 @@ set -eo pipefail [[ -z $1 ]] && TEST_NAME="-L nonparallelizable_tests" || TEST_NAME="-R ^$1$" -TEST="mkdir -p ~/mongodb && mongod --dbpath ~/mongodb --fork --logpath ~/mongod.log && ctest $TEST_NAME --output-on-failure -T Test" +TEST="mkdir -p ~/mongodb && mongod --dbpath ~/mongodb --fork --logpath ~/mongod.log && ctest $TEST_NAME --output-on-failure -V -T Test" if [[ $(uname) == 'Darwin' ]]; then From 2fe92600ed8deff56b571e823dadc1e026ae5aa5 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Fri, 30 Aug 2019 10:51:30 -0400 Subject: [PATCH 498/528] test-result.xml is exported in test runner, delete from YAML generation --- .cicd/generate-serial-tests.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index 8ddfa589a39..246e58fee77 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -22,7 +22,6 @@ cat < Date: Fri, 30 Aug 2019 10:56:55 -0400 Subject: [PATCH 499/528] Increase timeouts on non-parallelizable tests --- .cicd/generate-serial-tests.sh | 2 +- .cicd/pipeline.yml | 9 +++++---- .cicd/unpinned.yml | 9 +++++---- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.cicd/generate-serial-tests.sh b/.cicd/generate-serial-tests.sh index 246e58fee77..37c3dd00de4 100755 --- a/.cicd/generate-serial-tests.sh +++ b/.cicd/generate-serial-tests.sh @@ -27,7 +27,7 @@ cat < Date: Fri, 30 Aug 2019 11:01:24 -0400 Subject: [PATCH 500/528] LRT split --- .cicd/generate-pipeline.sh | 17 ++++++++++++----- .cicd/long-running-tests.sh | 4 +++- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index f1813283fc1..c52145e5116 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -201,7 +201,7 @@ echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do - label: "$(echo "$PLATFORM_JSON" | jq -r .ICON) $(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_FULL) - $TEST_NAME" command: - "buildkite-agent artifact download build.tar.gz . --step '$(echo "$PLATFORM_JSON" | jq -r .ICON) $(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_FULL) - Build' && tar -xzf build.tar.gz" - - "./.cicd/parallel-tests.sh" + - "./.cicd/serial_tests.sh $TEST_NAME" env: IMAGE_TAG: $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) BUILDKITE_AGENT_ACCESS_TOKEN: @@ -241,7 +241,6 @@ EOF done IFS=$nIFS - done @@ -250,8 +249,13 @@ done echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do if [[ ! $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) =~ 'macos' ]]; then + IFS=$oIFS + LR_TESTS=$(cat tests/CMakeLists.txt | grep long_running_tests | awk -F" " '{ print $2 }') + + for TEST_NAME in $LR_TESTS; do + cat < Date: Fri, 30 Aug 2019 11:01:40 -0400 Subject: [PATCH 501/528] LRT split --- .cicd/generate-pipeline.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index c52145e5116..ec413f484b6 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -258,7 +258,7 @@ echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do - label: "$(echo "$PLATFORM_JSON" | jq -r .ICON) $(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_FULL) - $TEST_NAME" command: - "buildkite-agent artifact download build.tar.gz . --step '$(echo "$PLATFORM_JSON" | jq -r .ICON) $(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_FULL) - Build' && tar -xzf build.tar.gz" - - "./.cicd/long-running-tests.sh" + - "./.cicd/long-running-tests.sh $TEST_NAME" env: IMAGE_TAG: $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) BUILDKITE_AGENT_ACCESS_TOKEN: From 6104747bc6ff825ac434e7a524a3210da2a807c2 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 30 Aug 2019 11:01:57 -0400 Subject: [PATCH 502/528] LRT split --- .cicd/generate-pipeline.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index ec413f484b6..5b35b609c81 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -284,14 +284,12 @@ EOF inherit-environment-vars: true vm-name: ${MOJAVE_ANKA_TEMPLATE_NAME} vm-registry-tag: "${MOJAVE_ANKA_TAG_BASE}::$(echo "$PLATFORM_JSON" | jq -r .HASHED_IMAGE_TAG)" - modify-cpu: 12 - modify-ram: 24 always-pull: true debug: true wait-network: true timeout: ${TIMEOUT:-180} agents: - - "queue=mac-anka-large-node-fleet" + - "queue=mac-anka-node-fleet" skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_LONG_RUNNING_TESTS:-true} EOF From 8183f0e879d6cbddc93c5408f622d0e515e9d732 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 30 Aug 2019 11:06:13 -0400 Subject: [PATCH 503/528] quick fixes --- .cicd/generate-pipeline.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 5b35b609c81..d8196946d64 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -247,12 +247,12 @@ done ############# # LRT TESTS # echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do - if [[ ! $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) =~ 'macos' ]]; then IFS=$oIFS LR_TESTS=$(cat tests/CMakeLists.txt | grep long_running_tests | awk -F" " '{ print $2 }') for TEST_NAME in $LR_TESTS; do + if [[ ! $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) =~ 'macos' ]]; then cat < Date: Fri, 30 Aug 2019 12:04:00 -0400 Subject: [PATCH 504/528] mongo = true for mac --- .cicd/build.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index de44b8f9cbd..119b95e4156 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -2,6 +2,7 @@ set -eo pipefail . ./.cicd/helpers/general.sh mkdir -p $BUILD_DIR +CMAKE_EXTRAS="-DBUILD_MONGO_DB_PLUGIN=true" if [[ $(uname) == 'Darwin' ]]; then # You can't use chained commands in execute cd $BUILD_DIR @@ -33,7 +34,7 @@ else # Linux PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" fi - BUILD_COMMANDS="cmake $CMAKE_EXTRAS -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_BUILD_TYPE='Release' .. && make -j$JOBS" + BUILD_COMMANDS="cmake $CMAKE_EXTRAS -DCMAKE_BUILD_TYPE='Release' .. && make -j$JOBS" # Docker Commands if [[ $BUILDKITE == true ]]; then # Generate Base Images From 63030c3a44dd73c603f1341451507b03086bb3f2 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 30 Aug 2019 12:05:39 -0400 Subject: [PATCH 505/528] quick fixes --- .cicd/generate-pipeline.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index d8196946d64..5575523c365 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -201,7 +201,7 @@ echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do - label: "$(echo "$PLATFORM_JSON" | jq -r .ICON) $(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_FULL) - $TEST_NAME" command: - "buildkite-agent artifact download build.tar.gz . --step '$(echo "$PLATFORM_JSON" | jq -r .ICON) $(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_FULL) - Build' && tar -xzf build.tar.gz" - - "./.cicd/serial_tests.sh $TEST_NAME" + - "./.cicd/serial-tests.sh $TEST_NAME" env: IMAGE_TAG: $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) BUILDKITE_AGENT_ACCESS_TOKEN: From 19d939d61a94abc18f662857ed29577617267e6a Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 30 Aug 2019 13:07:14 -0400 Subject: [PATCH 506/528] quick fixes --- .cicd/generate-pipeline.sh | 18 ++- .cicd/package.sh | 4 - .cicd/pipeline.yml | 234 ------------------------------------- .cicd/test.sh | 1 + 4 files changed, 9 insertions(+), 248 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 5575523c365..94a19b7e9c9 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/bash set -eo pipefail . ./.cicd/helpers/general.sh @@ -149,7 +149,7 @@ echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do - label: "$(echo "$PLATFORM_JSON" | jq -r .ICON) $(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_FULL) - Unit Tests" command: - "buildkite-agent artifact download build.tar.gz . --step '$(echo "$PLATFORM_JSON" | jq -r .ICON) $(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_FULL) - Build' && tar -xzf build.tar.gz" - - "./.cicd/parallel-tests.sh" + - "./.cicd/test.sh scripts/parallel-test.sh" env: IMAGE_TAG: $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) BUILDKITE_AGENT_ACCESS_TOKEN: @@ -167,7 +167,7 @@ EOF command: - "git clone \$BUILDKITE_REPO eos && cd eos && git checkout \$BUILDKITE_COMMIT && git submodule update --init --recursive" - "cd eos && buildkite-agent artifact download build.tar.gz . --step '$(echo "$PLATFORM_JSON" | jq -r .ICON) $(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_FULL) - Build' && tar -xzf build.tar.gz" - - "cd eos && ./.cicd/parallel-tests.sh" + - "cd eos && ./.cicd/test.sh scripts/parallel-test.sh" plugins: - chef/anka#v0.5.1: no-volume: true @@ -201,7 +201,7 @@ echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do - label: "$(echo "$PLATFORM_JSON" | jq -r .ICON) $(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_FULL) - $TEST_NAME" command: - "buildkite-agent artifact download build.tar.gz . --step '$(echo "$PLATFORM_JSON" | jq -r .ICON) $(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_FULL) - Build' && tar -xzf build.tar.gz" - - "./.cicd/serial-tests.sh $TEST_NAME" + - "./.cicd/test.sh scripts/serial-test.sh $TEST_NAME" env: IMAGE_TAG: $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) BUILDKITE_AGENT_ACCESS_TOKEN: @@ -219,8 +219,7 @@ EOF command: - "git clone \$BUILDKITE_REPO eos && cd eos && git checkout \$BUILDKITE_COMMIT && git submodule update --init --recursive" - "cd eos && buildkite-agent artifact download build.tar.gz . --step '$(echo "$PLATFORM_JSON" | jq -r .ICON) $(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_FULL) - Build' && tar -xzf build.tar.gz" - - "cd eos && ./.cicd/serial-tests.sh $TEST_NAME" - - "cd eos && mv build/Testing/\$(ls build/Testing/ | grep '20' | tail -n 1)/Test.xml test-results.xml && buildkite-agent artifact upload test-results.xml" + - "cd eos && ./.cicd/test.sh scripts/serial-test.sh $TEST_NAME" plugins: - chef/anka#v0.5.1: no-volume: true @@ -249,7 +248,7 @@ done echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do IFS=$oIFS - LR_TESTS=$(cat tests/CMakeLists.txt | grep long_running_tests | awk -F" " '{ print $2 }') + LR_TESTS=$(cat tests/CMakeLists.txt | grep long_running_tests | grep -v "^#" | awk -F" " '{ print $2 }') for TEST_NAME in $LR_TESTS; do if [[ ! $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) =~ 'macos' ]]; then @@ -258,7 +257,7 @@ echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do - label: "$(echo "$PLATFORM_JSON" | jq -r .ICON) $(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_FULL) - $TEST_NAME" command: - "buildkite-agent artifact download build.tar.gz . --step '$(echo "$PLATFORM_JSON" | jq -r .ICON) $(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_FULL) - Build' && tar -xzf build.tar.gz" - - "./.cicd/long-running-tests.sh $TEST_NAME" + - "./.cicd/test.sh scripts/long-running-test.sh $TEST_NAME" env: IMAGE_TAG: $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) BUILDKITE_AGENT_ACCESS_TOKEN: @@ -276,8 +275,7 @@ EOF command: - "git clone \$BUILDKITE_REPO eos && cd eos && git checkout \$BUILDKITE_COMMIT && git submodule update --init --recursive" - "cd eos && buildkite-agent artifact download build.tar.gz . --step '$(echo "$PLATFORM_JSON" | jq -r .ICON) $(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_FULL) - Build' && tar -xzf build.tar.gz" - - "cd eos && ./.cicd/long-running-tests.sh $TEST_NAME" - - "cd eos && mv build/Testing/\$(ls build/Testing/ | grep '20' | tail -n 1)/Test.xml test-results.xml && buildkite-agent artifact upload test-results.xml" + - "cd eos && ./.cicd/test.sh scripts/long-running-test.sh $TEST_NAME" plugins: - chef/anka#v0.5.1: no-volume: true diff --git a/.cicd/package.sh b/.cicd/package.sh index d007f71b853..a43670ccee1 100755 --- a/.cicd/package.sh +++ b/.cicd/package.sh @@ -18,13 +18,9 @@ if [[ $(uname) == 'Darwin' ]]; then done else # Linux ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} -<<<<<<< HEAD . $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/$IMAGE_TAG.dockerfile -======= - . $HELPERS_DIR/docker-hash.sh ->>>>>>> zach-test-scripts PRE_COMMANDS="cd $MOUNTED_DIR/build/packages && chmod 755 ./*.sh" if [[ "$IMAGE_TAG" =~ "ubuntu" ]]; then ARTIFACT='*.deb' diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index c11a62808e1..84890038e10 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -1,246 +1,12 @@ steps: - wait -<<<<<<< HEAD - label: ":pipeline: Generate Pipeline Steps" command: "./.cicd/generate-pipeline.sh | buildkite-agent pipeline upload" agents: queue: "automation-eos-builder-fleet" timeout: ${TIMEOUT:-10} -======= - - label: ":aws: Amazon_Linux 2 - Build" - command: - - "./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "amazon_linux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_AMAZON_LINUX_2 - - - label: ":centos: CentOS 7.6 - Build" - command: - - "./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_CENTOS_7 - - - label: ":ubuntu: Ubuntu 16.04 - Build" - command: - - "./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_16 - - - label: ":ubuntu: Ubuntu 18.04 - Build" - command: - - "./.cicd/build.sh" - - "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_UBUNTU_18 - - - label: ":darwin: macOS 10.14 - Build" - command: - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && ./.cicd/anka/macos-10.14.sh" - - "cd eos && ./.cicd/build.sh" - - "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz" - env: - PINNED: "true" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - modify-cpu: 12 - modify-ram: 24 - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-large-node-fleet" - skip: ${SKIP_MOJAVE} - - - wait - - - label: ":aws: Amazon_Linux 2 - Unit Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - - "./.cicd/test.sh scripts/parallel-test.sh" - env: - IMAGE_TAG: "amazon_linux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_AMAZON_LINUX_2}${SKIP_UNIT_TESTS} - - - label: ":centos: CentOS 7.6 - Unit Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - - "./.cicd/test.sh scripts/parallel-test.sh" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_CENTOS_7}${SKIP_UNIT_TESTS} - - - label: ":ubuntu: Ubuntu 16.04 - Unit Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - - "./.cicd/test.sh scripts/parallel-test.sh" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_16}${SKIP_UNIT_TESTS} - - - label: ":ubuntu: Ubuntu 18.04 - Unit Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - - "./.cicd/test.sh scripts/parallel-test.sh" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: ${SKIP_UBUNTU_18}${SKIP_UNIT_TESTS} - - - label: ":darwin: macOS 10.14 - Unit Tests" - command: - - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb libusb" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && ./.cicd/test.sh scripts/parallel-test.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-node-fleet" - skip: ${SKIP_MOJAVE}${SKIP_UNIT_TESTS} - - - label: ":pipeline: Generate Serial Test Steps" - command: "./.cicd/generate-serial-tests.sh | buildkite-agent pipeline upload" - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} - skip: $SKIP_GENERATE_SERIAL_TESTS - - - label: ":aws: Amazon_Linux 2 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':aws: Amazon_Linux 2 - Build' && tar -xzf build.tar.gz" - - "./.cicd/test.sh scripts/long-running-test.sh" - env: - IMAGE_TAG: "amazon_linux-2" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-90} - skip: ${SKIP_AMAZON_LINUX_2}${SKIP_LONG_RUNNING_TESTS:-true} - - - label: ":centos: CentOS 7.6 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':centos: CentOS 7.6 - Build' && tar -xzf build.tar.gz" - - "./.cicd/test.sh scripts/long-running-test.sh" - env: - IMAGE_TAG: "centos-7.6" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-90} - skip: ${SKIP_CENTOS_7}${SKIP_LONG_RUNNING_TESTS:-true} - - - label: ":ubuntu: Ubuntu 16.04 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 16.04 - Build' && tar -xzf build.tar.gz" - - "./.cicd/test.sh scripts/long-running-test.sh" - env: - IMAGE_TAG: "ubuntu-16.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-90} - skip: ${SKIP_UBUNTU_16}${SKIP_LONG_RUNNING_TESTS:-true} - - - label: ":ubuntu: Ubuntu 18.04 - Long-Running Tests" - command: - - "buildkite-agent artifact download build.tar.gz . --step ':ubuntu: Ubuntu 18.04 - Build' && tar -xzf build.tar.gz" - - "./.cicd/test.sh scripts/long-running-test.sh" - env: - IMAGE_TAG: "ubuntu-18.04" - BUILDKITE_AGENT_ACCESS_TOKEN: - agents: - queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-90} - skip: ${SKIP_UBUNTU_18}${SKIP_LONG_RUNNING_TESTS:-true} - - - label: ":darwin: macOS 10.14 - Long-Running Tests" - command: - - "brew install git cmake automake libtool openssl wget gmp llvm@4 python python@2 doxygen graphviz mongodb libusb" - - "git clone $BUILDKITE_REPO eos && cd eos && git checkout $BUILDKITE_COMMIT && git submodule update --init --recursive" - - "cd eos && buildkite-agent artifact download build.tar.gz . --step ':darwin: macOS 10.14 - Build' && tar -xzf build.tar.gz" - - "cd eos && ./.cicd/test.sh scripts/long-running-test.sh" - plugins: - - chef/anka#v0.5.1: - no-volume: true - inherit-environment-vars: true - vm-name: 10.14.4_6C_14G_40G - vm-registry-tag: "clean::cicd::git-ssh::nas::brew::buildkite-agent" - modify-cpu: 12 - modify-ram: 24 - always-pull: true - debug: true - wait-network: true - agents: - - "queue=mac-anka-large-node-fleet" - timeout: ${TIMEOUT:-90} - skip: ${SKIP_MOJAVE}${SKIP_LONG_RUNNING_TESTS:-true} - - - wait: - continue_on_failure: true - - - label: ":bar_chart: Test Metrics" - command: | - echo '+++ :compression: Extracting Test Metrics Code' - tar -zxf .cicd/metrics/test-metrics.tar.gz - echo '+++ :javascript: Running test-metrics.js' - node --max-old-space-size=32768 test-metrics.js - agents: - queue: "automation-eos-builder-fleet" - timeout: 10 - soft_fail: true - ->>>>>>> zach-test-scripts - wait - label: ":git: Git Submodule Regression Check" diff --git a/.cicd/test.sh b/.cicd/test.sh index f01ea6b7a60..2f8e4e4d6b3 100755 --- a/.cicd/test.sh +++ b/.cicd/test.sh @@ -4,6 +4,7 @@ set -eo pipefail . ./.cicd/helpers/general.sh # tests if [[ $(uname) == 'Darwin' ]]; then # macOS + export PATH=$PATH:~/mongodb/bin ./"$@" EXIT_STATUS=$? else # Linux From 2274adf831afecddb3232dbfacfb61971fa68f3c Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 30 Aug 2019 13:10:15 -0400 Subject: [PATCH 507/528] quick fixes --- .cicd/helpers/general.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.cicd/helpers/general.sh b/.cicd/helpers/general.sh index 32bc218e857..1acac9fdac7 100644 --- a/.cicd/helpers/general.sh +++ b/.cicd/helpers/general.sh @@ -12,6 +12,7 @@ function capitalize() { else echo $1 fi +} # load buildkite intrinsic environment variables for use in docker run function buildkite-intrinsics() { From f903258398b2fca6830d81512c5520d20e3f9c2e Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 30 Aug 2019 13:28:55 -0400 Subject: [PATCH 508/528] quick fixes --- .cicd/test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/test.sh b/.cicd/test.sh index 2f8e4e4d6b3..116cdef73ea 100755 --- a/.cicd/test.sh +++ b/.cicd/test.sh @@ -8,7 +8,7 @@ if [[ $(uname) == 'Darwin' ]]; then # macOS ./"$@" EXIT_STATUS=$? else # Linux - . $HELPERS_DIR/docker-hash.sh + . $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/$IMAGE_TAG.dockerfile echo "$ docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c \"$MOUNTED_DIR/$@\"" eval docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c "$MOUNTED_DIR/$@" EXIT_STATUS=$? From b47bbc7013a7f871bfd5f470e2e3954cef67aba7 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 30 Aug 2019 13:30:23 -0400 Subject: [PATCH 509/528] quick fixes --- .cicd/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index 22f089bfd64..0ecd7da5d13 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -8,7 +8,7 @@ CMAKE_EXTRAS="-DBUILD_MONGO_DB_PLUGIN=true" if [[ $(uname) == 'Darwin' ]]; then # You can't use chained commands in execute [[ $TRAVIS == true ]] && export PINNED=false && ccache -s && ./$CICD_DIR/platforms/macos-10.14.sh - [[ $PINNED == true ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$HELPERS_DIR/clang.make" + ( [[ ! $PINNED == false || $UNPINNED == true ]] ) && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$HELPERS_DIR/clang.make" cd $BUILD_DIR cmake $CMAKE_EXTRAS .. make -j$JOBS From 064669d1768740eac436b3d1742b1564d4568b29 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 30 Aug 2019 13:59:45 -0400 Subject: [PATCH 510/528] quick fixes --- .cicd/generate-pipeline.sh | 2 +- .cicd/test.sh | 6 +++--- scripts/serial-test.sh | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 94a19b7e9c9..6556c1ddd26 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -207,7 +207,7 @@ echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do BUILDKITE_AGENT_ACCESS_TOKEN: agents: queue: "automation-eos-builder-fleet" - timeout: ${TIMEOUT:-10} + timeout: ${TIMEOUT:-20} skip: \${SKIP_$(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_UPCASE)_$(echo "$PLATFORM_JSON" | jq -r .VERSION_MAJOR)$(echo "$PLATFORM_JSON" | jq -r .VERSION_MINOR)}\${SKIP_SERIAL_TESTS} EOF diff --git a/.cicd/test.sh b/.cicd/test.sh index 116cdef73ea..06b27eaafba 100755 --- a/.cicd/test.sh +++ b/.cicd/test.sh @@ -5,12 +5,12 @@ set -eo pipefail # tests if [[ $(uname) == 'Darwin' ]]; then # macOS export PATH=$PATH:~/mongodb/bin - ./"$@" + ./"$@" $2 EXIT_STATUS=$? else # Linux . $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/$IMAGE_TAG.dockerfile - echo "$ docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c \"$MOUNTED_DIR/$@\"" - eval docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c "$MOUNTED_DIR/$@" + echo "$ docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c \"$MOUNTED_DIR/$@ $2\"" + eval docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c "$MOUNTED_DIR/$@ $2" EXIT_STATUS=$? fi # buildkite diff --git a/scripts/serial-test.sh b/scripts/serial-test.sh index 84c8729009d..338d255fd15 100755 --- a/scripts/serial-test.sh +++ b/scripts/serial-test.sh @@ -30,7 +30,7 @@ if [[ -z "$TEST" ]]; then # run all serial tests # run tests set +e # defer ctest error handling to end echo '$ ctest -L nonparallelizable_tests --output-on-failure -T Test' - ctest -L nonparallelizable_tests --output-on-failure -T Test + ctest -L nonparallelizable_tests -V --output-on-failure -T Test EXIT_STATUS=$? echo 'Done running non-parallelizable tests.' else From 7a18e9afdcf97d57299a3faa43f152b1b56604dd Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 30 Aug 2019 14:24:04 -0400 Subject: [PATCH 511/528] quick fixes --- .cicd/generate-pipeline.sh | 2 ++ .cicd/test.sh | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 6556c1ddd26..f604411e512 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -9,6 +9,8 @@ export MOJAVE_ANKA_TEMPLATE_NAME=${MOJAVE_ANKA_TEMPLATE_NAME:-'10.14.4_6C_14G_40 export PLATFORMS_JSON_ARRAY='[]' for FILE in $(ls $CICD_DIR/platforms); do + [[ ! $FILE =~ 'amazon' ]] && continue + # Ability to skip mac or linux by not even creating the json block ( [[ $SKIP_MAC == true ]] && [[ $FILE =~ 'macos' ]] ) && continue ( [[ $SKIP_LINUX == true ]] && [[ ! $FILE =~ 'macos' ]] ) && continue diff --git a/.cicd/test.sh b/.cicd/test.sh index 06b27eaafba..116cdef73ea 100755 --- a/.cicd/test.sh +++ b/.cicd/test.sh @@ -5,12 +5,12 @@ set -eo pipefail # tests if [[ $(uname) == 'Darwin' ]]; then # macOS export PATH=$PATH:~/mongodb/bin - ./"$@" $2 + ./"$@" EXIT_STATUS=$? else # Linux . $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/$IMAGE_TAG.dockerfile - echo "$ docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c \"$MOUNTED_DIR/$@ $2\"" - eval docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c "$MOUNTED_DIR/$@ $2" + echo "$ docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c \"$MOUNTED_DIR/$@\"" + eval docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c "$MOUNTED_DIR/$@" EXIT_STATUS=$? fi # buildkite From abcd0a5c012ed29ee1db70e93fbdb1f261c14f39 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 30 Aug 2019 14:55:31 -0400 Subject: [PATCH 512/528] quick fixes --- scripts/serial-test.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/serial-test.sh b/scripts/serial-test.sh index 338d255fd15..b728629e113 100755 --- a/scripts/serial-test.sh +++ b/scripts/serial-test.sh @@ -21,6 +21,7 @@ echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':leaves: ')Starting new MongoD echo "$ mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb' || echo "--dbpath $(pwd)/mongodata") $(if [[ -f ~/etc/mongod.conf ]]; then echo '-f ~/etc/mongod.conf'; elif [[ -f /usr/local/etc/mongod.conf ]]; then echo '-f /usr/local/etc/mongod.conf'; fi)" eval mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb' || echo "--dbpath $(pwd)/mongodata") $(if [[ -f ~/etc/mongod.conf ]]; then echo '-f ~/etc/mongod.conf'; elif [[ -f /usr/local/etc/mongod.conf ]]; then echo '-f /usr/local/etc/mongod.conf'; fi) # tests +echo "TEST: $TEST" if [[ -z "$TEST" ]]; then # run all serial tests # count tests echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':microscope: ')Running Non-Parallelizable Tests" From f905156298b59800df0bb1dccb7c10c5442a255b Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 30 Aug 2019 15:12:59 -0400 Subject: [PATCH 513/528] quick fixes --- .cicd/generate-pipeline.sh | 2 +- .cicd/helpers/general.sh | 1 + scripts/serial-test.sh | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index f604411e512..88258c27882 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -193,7 +193,7 @@ done # SERIAL TESTS # echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do IFS=$oIFS - SERIAL_TESTS=$(cat tests/CMakeLists.txt | grep nonparallelizable_tests | awk -F" " '{ print $2 }') + SERIAL_TESTS=$(cat tests/CMakeLists.txt | grep nonparallelizable_tests | grep -v "^#" | awk -F" " '{ print $2 }') for TEST_NAME in $SERIAL_TESTS; do diff --git a/.cicd/helpers/general.sh b/.cicd/helpers/general.sh index 1acac9fdac7..0da308d030e 100644 --- a/.cicd/helpers/general.sh +++ b/.cicd/helpers/general.sh @@ -13,6 +13,7 @@ function capitalize() { echo $1 fi } + # load buildkite intrinsic environment variables for use in docker run function buildkite-intrinsics() { diff --git a/scripts/serial-test.sh b/scripts/serial-test.sh index b728629e113..d81fda97f96 100755 --- a/scripts/serial-test.sh +++ b/scripts/serial-test.sh @@ -3,7 +3,7 @@ set -eo pipefail # variables echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':evergreen_tree: ')Configuring Environment" GIT_ROOT="$(dirname $BASH_SOURCE[0])/.." -[[ -z "$TEST" ]] && export TEST=$1 +export TEST=${TEST:-$1} if [[ "$(uname)" == 'Linux' ]]; then . /etc/os-release if [[ "$ID" == 'centos' ]]; then From b9c5e4a49b00b9bf2ac0404ac15d706906051f22 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 30 Aug 2019 15:15:56 -0400 Subject: [PATCH 514/528] quick fixes --- .cicd/test.sh | 2 +- scripts/serial-test.sh | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.cicd/test.sh b/.cicd/test.sh index 116cdef73ea..a0f3dd73361 100755 --- a/.cicd/test.sh +++ b/.cicd/test.sh @@ -10,7 +10,7 @@ if [[ $(uname) == 'Darwin' ]]; then # macOS else # Linux . $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/$IMAGE_TAG.dockerfile echo "$ docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c \"$MOUNTED_DIR/$@\"" - eval docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c "$MOUNTED_DIR/$@" + eval docker run --rm --init -v $(pwd):$MOUNTED_DIR $(buildkite-intrinsics) $FULL_TAG bash -c \"$MOUNTED_DIR/$@\" EXIT_STATUS=$? fi # buildkite diff --git a/scripts/serial-test.sh b/scripts/serial-test.sh index d81fda97f96..338d255fd15 100755 --- a/scripts/serial-test.sh +++ b/scripts/serial-test.sh @@ -3,7 +3,7 @@ set -eo pipefail # variables echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':evergreen_tree: ')Configuring Environment" GIT_ROOT="$(dirname $BASH_SOURCE[0])/.." -export TEST=${TEST:-$1} +[[ -z "$TEST" ]] && export TEST=$1 if [[ "$(uname)" == 'Linux' ]]; then . /etc/os-release if [[ "$ID" == 'centos' ]]; then @@ -21,7 +21,6 @@ echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':leaves: ')Starting new MongoD echo "$ mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb' || echo "--dbpath $(pwd)/mongodata") $(if [[ -f ~/etc/mongod.conf ]]; then echo '-f ~/etc/mongod.conf'; elif [[ -f /usr/local/etc/mongod.conf ]]; then echo '-f /usr/local/etc/mongod.conf'; fi)" eval mongod --fork --logpath $(pwd)/mongod.log $([[ -d ~/data/mongodb ]] && echo '--dbpath ~/data/mongodb' || echo "--dbpath $(pwd)/mongodata") $(if [[ -f ~/etc/mongod.conf ]]; then echo '-f ~/etc/mongod.conf'; elif [[ -f /usr/local/etc/mongod.conf ]]; then echo '-f /usr/local/etc/mongod.conf'; fi) # tests -echo "TEST: $TEST" if [[ -z "$TEST" ]]; then # run all serial tests # count tests echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':microscope: ')Running Non-Parallelizable Tests" From 6e878fdb26ec68ad1b52fd70bcf173907419ee97 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Fri, 30 Aug 2019 15:29:56 -0400 Subject: [PATCH 515/528] quick fixes --- .cicd/generate-pipeline.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 88258c27882..5a343971a84 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -9,8 +9,6 @@ export MOJAVE_ANKA_TEMPLATE_NAME=${MOJAVE_ANKA_TEMPLATE_NAME:-'10.14.4_6C_14G_40 export PLATFORMS_JSON_ARRAY='[]' for FILE in $(ls $CICD_DIR/platforms); do - [[ ! $FILE =~ 'amazon' ]] && continue - # Ability to skip mac or linux by not even creating the json block ( [[ $SKIP_MAC == true ]] && [[ $FILE =~ 'macos' ]] ) && continue ( [[ $SKIP_LINUX == true ]] && [[ ! $FILE =~ 'macos' ]] ) && continue From 4086890a28b0294f645c7cfd7ece45f32763c0ee Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Fri, 30 Aug 2019 15:58:57 -0400 Subject: [PATCH 516/528] Fix whitespace to match repo --- .cicd/build.sh | 6 -- .cicd/generate-base-images.sh | 1 - .cicd/generate-pipeline.sh | 188 +++++++++++++--------------------- .cicd/helpers/file-hash.sh | 2 +- .cicd/helpers/general.sh | 3 +- .cicd/package.sh | 2 - 6 files changed, 75 insertions(+), 127 deletions(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index 0ecd7da5d13..53272cc4853 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -2,9 +2,7 @@ set -eo pipefail . ./.cicd/helpers/general.sh mkdir -p $BUILD_DIR - CMAKE_EXTRAS="-DBUILD_MONGO_DB_PLUGIN=true" - if [[ $(uname) == 'Darwin' ]]; then # You can't use chained commands in execute [[ $TRAVIS == true ]] && export PINNED=false && ccache -s && ./$CICD_DIR/platforms/macos-10.14.sh @@ -14,9 +12,7 @@ if [[ $(uname) == 'Darwin' ]]; then make -j$JOBS else # Linux ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"} - . $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/$IMAGE_TAG.dockerfile - PRE_COMMANDS="cd $MOUNTED_DIR/build" # PRE_COMMANDS: Executed pre-cmake # CMAKE_EXTRAS: Executed within and right before the cmake path (cmake CMAKE_EXTRAS ..) @@ -38,9 +34,7 @@ else # Linux PRE_COMMANDS="$PRE_COMMANDS && export PATH=/usr/lib/ccache:\\\$PATH" CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'" fi - BUILD_COMMANDS="cmake $CMAKE_EXTRAS -DCMAKE_BUILD_TYPE='Release' .. && make -j$JOBS" - # Docker Commands if [[ $BUILDKITE == true ]]; then # Generate Base Images diff --git a/.cicd/generate-base-images.sh b/.cicd/generate-base-images.sh index 38dd5391259..32992fe117c 100755 --- a/.cicd/generate-base-images.sh +++ b/.cicd/generate-base-images.sh @@ -2,7 +2,6 @@ set -eo pipefail . ./.cicd/helpers/general.sh . $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/${IMAGE_TAG}.dockerfile - # look for Docker image echo "+++ :mag_right: Looking for $FULL_TAG" ORG_REPO=$(echo $FULL_TAG | cut -d: -f1) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 5a343971a84..3020d818461 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -1,69 +1,59 @@ #!/bin/bash set -eo pipefail . ./.cicd/helpers/general.sh - export MOJAVE_ANKA_TAG_BASE=${MOJAVE_ANKA_TAG_BASE:-'clean::cicd::git-ssh::nas::brew::buildkite-agent'} export MOJAVE_ANKA_TEMPLATE_NAME=${MOJAVE_ANKA_TEMPLATE_NAME:-'10.14.4_6C_14G_40G'} - # Use files in platforms dir as source of truth for what platforms we need to generate steps for export PLATFORMS_JSON_ARRAY='[]' for FILE in $(ls $CICD_DIR/platforms); do - - # Ability to skip mac or linux by not even creating the json block - ( [[ $SKIP_MAC == true ]] && [[ $FILE =~ 'macos' ]] ) && continue - ( [[ $SKIP_LINUX == true ]] && [[ ! $FILE =~ 'macos' ]] ) && continue - - # Prevent using both platform files (only use unpinned or pinned) - if [[ $PINNED == false || $UNPINNED == true ]] && [[ ! $FILE =~ 'macos' ]]; then - export SKIP_CONTRACT_BUILDER=${SKIP_CONTRACT_BUILDER:-true} - export SKIP_PACKAGE_BUILDER=${SKIP_PACKAGE_BUILDER:-true} - [[ ! $FILE =~ 'unpinned' ]] && continue - else - [[ $FILE =~ 'unpinned' ]] && continue - fi - - export FILE_NAME=$(echo $FILE | awk '{split($0,a,/\.(d|s)/); print a[1] }') - export PLATFORM_NAME=$(echo $FILE_NAME | cut -d- -f1 | sed 's/os/OS/g') - export PLATFORM_NAME_UPCASE=$(echo $PLATFORM_NAME | tr a-z A-Z) - export VERSION_MAJOR=$(echo $FILE_NAME | cut -d- -f2 | cut -d. -f1) - [[ $(echo $FILE_NAME | cut -d- -f2) =~ '.' ]] && export VERSION_MINOR="_$(echo $FILE_NAME | cut -d- -f2 | cut -d. -f2)" || export VERSION_MINOR='' - export VERSION_FULL=$(echo $FILE_NAME | cut -d- -f2) - OLDIFS=$IFS - IFS="_" - set $PLATFORM_NAME - IFS=$OLDIFS - export PLATFORM_NAME_FULL="$(capitalize $1)$( [[ ! -z $2 ]] && echo "_$(capitalize $2)" || true ) $VERSION_FULL" - [[ $FILE_NAME =~ 'amazon' ]] && export ICON=':aws:' - [[ $FILE_NAME =~ 'ubuntu' ]] && export ICON=':ubuntu:' - [[ $FILE_NAME =~ 'centos' ]] && export ICON=':centos:' - [[ $FILE_NAME =~ 'macos' ]] && export ICON=':darwin:' - - . $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/$FILE # returns HASHED_IMAGE_TAG, etc - - export PLATFORMS_JSON_ARRAY=$(echo $PLATFORMS_JSON_ARRAY | jq -c '. += [{ - "FILE_NAME": env.FILE_NAME, - "PLATFORM_NAME": env.PLATFORM_NAME, - "PLATFORM_NAME_UPCASE": env.PLATFORM_NAME_UPCASE, - "VERSION_MAJOR": env.VERSION_MAJOR, - "VERSION_MINOR": env.VERSION_MINOR, - "VERSION_FULL": env.VERSION_FULL, - "PLATFORM_NAME_FULL": env.PLATFORM_NAME_FULL, - "DOCKERHUB_FULL_TAG": env.FULL_TAG, - "HASHED_IMAGE_TAG": env.HASHED_IMAGE_TAG, - "ICON": env.ICON - }]') - + # Ability to skip mac or linux by not even creating the json block + ( [[ $SKIP_MAC == true ]] && [[ $FILE =~ 'macos' ]] ) && continue + ( [[ $SKIP_LINUX == true ]] && [[ ! $FILE =~ 'macos' ]] ) && continue + # Prevent using both platform files (only use unpinned or pinned) + if [[ $PINNED == false || $UNPINNED == true ]] && [[ ! $FILE =~ 'macos' ]]; then + export SKIP_CONTRACT_BUILDER=${SKIP_CONTRACT_BUILDER:-true} + export SKIP_PACKAGE_BUILDER=${SKIP_PACKAGE_BUILDER:-true} + [[ ! $FILE =~ 'unpinned' ]] && continue + else + [[ $FILE =~ 'unpinned' ]] && continue + fi + export FILE_NAME=$(echo $FILE | awk '{split($0,a,/\.(d|s)/); print a[1] }') + export PLATFORM_NAME=$(echo $FILE_NAME | cut -d- -f1 | sed 's/os/OS/g') + export PLATFORM_NAME_UPCASE=$(echo $PLATFORM_NAME | tr a-z A-Z) + export VERSION_MAJOR=$(echo $FILE_NAME | cut -d- -f2 | cut -d. -f1) + [[ $(echo $FILE_NAME | cut -d- -f2) =~ '.' ]] && export VERSION_MINOR="_$(echo $FILE_NAME | cut -d- -f2 | cut -d. -f2)" || export VERSION_MINOR='' + export VERSION_FULL=$(echo $FILE_NAME | cut -d- -f2) + OLDIFS=$IFS + IFS="_" + set $PLATFORM_NAME + IFS=$OLDIFS + export PLATFORM_NAME_FULL="$(capitalize $1)$( [[ ! -z $2 ]] && echo "_$(capitalize $2)" || true ) $VERSION_FULL" + [[ $FILE_NAME =~ 'amazon' ]] && export ICON=':aws:' + [[ $FILE_NAME =~ 'ubuntu' ]] && export ICON=':ubuntu:' + [[ $FILE_NAME =~ 'centos' ]] && export ICON=':centos:' + [[ $FILE_NAME =~ 'macos' ]] && export ICON=':darwin:' + . $HELPERS_DIR/file-hash.sh $CICD_DIR/platforms/$FILE # returns HASHED_IMAGE_TAG, etc + export PLATFORMS_JSON_ARRAY=$(echo $PLATFORMS_JSON_ARRAY | jq -c '. += [{ + "FILE_NAME": env.FILE_NAME, + "PLATFORM_NAME": env.PLATFORM_NAME, + "PLATFORM_NAME_UPCASE": env.PLATFORM_NAME_UPCASE, + "VERSION_MAJOR": env.VERSION_MAJOR, + "VERSION_MINOR": env.VERSION_MINOR, + "VERSION_FULL": env.VERSION_FULL, + "PLATFORM_NAME_FULL": env.PLATFORM_NAME_FULL, + "DOCKERHUB_FULL_TAG": env.FULL_TAG, + "HASHED_IMAGE_TAG": env.HASHED_IMAGE_TAG, + "ICON": env.ICON + }]') done - oIFS="$IFS" IFS=$'' nIFS=$IFS # Needed to fix array splitting (\n won't work) - ################### # Anka Ensure Tag # echo $PLATFORMS_JSON_ARRAY | jq -cr ".[]" | while read -r PLATFORM_JSON; do - if [[ $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) =~ 'macos' ]]; then - cat < Date: Fri, 30 Aug 2019 15:59:17 -0400 Subject: [PATCH 517/528] Add comments to macos-10.14.sh --- .cicd/platforms/macos-10.14.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.cicd/platforms/macos-10.14.sh b/.cicd/platforms/macos-10.14.sh index 6b92c5a0bbf..900b8ca0a99 100755 --- a/.cicd/platforms/macos-10.14.sh +++ b/.cicd/platforms/macos-10.14.sh @@ -2,7 +2,7 @@ set -eo pipefail brew update brew install git boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen openssl || true - +# install clang from source if [[ ! $PINNED == false || $UNPINNED == true ]]; then git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 cd clang8 @@ -49,13 +49,13 @@ if [[ ! $PINNED == false || $UNPINNED == true ]]; then cd ../.. rm -rf clang8 fi - +# install mongoDB cd ~ curl -OL https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-3.6.3.tgz tar -xzf mongodb-osx-ssl-x86_64-3.6.3.tgz rm -f mongodb-osx-ssl-x86_64-3.6.3.tgz ln -s ~/mongodb-osx-x86_64-3.6.3 ~/mongodb - +# install mongo-c-driver from source cd /tmp curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz tar -xzf mongo-c-driver-1.13.0.tar.gz @@ -67,7 +67,7 @@ make -j $(getconf _NPROCESSORS_ONLN) sudo make install cd ../.. rm mongo-c-driver-1.13.0.tar.gz - +# install mongo-cxx-driver from source cd /tmp curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz tar -xzf mongo-cxx-driver-r3.4.0.tar.gz From 78e921bac2e9d92bc68d0fc79148f769a7aa5b78 Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 3 Sep 2019 09:59:34 -0400 Subject: [PATCH 518/528] Merge in unittests/CMakeLists.txt from r1.8.x branch. --- unittests/CMakeLists.txt | 34 ---------------------------------- 1 file changed, 34 deletions(-) diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt index 31f6b801392..82e723e5563 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -36,40 +36,6 @@ link_directories(${LLVM_LIBRARY_DIR}) add_subdirectory(contracts) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts.hpp.in ${CMAKE_CURRENT_BINARY_DIR}/include/contracts.hpp ESCAPE_QUOTES) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz1.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz1.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz2.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz2.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz3.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz3.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz4.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz4.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz5.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz5.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz6.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz6.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz7.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz7.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz8.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz8.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz9.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz9.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz10.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz10.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz11.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz11.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz12.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz12.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz13.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz13.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz14.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz14.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/fuzz15.wasm ${CMAKE_CURRENT_BINARY_DIR}/fuzz15.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/big_allocation.wasm ${CMAKE_CURRENT_BINARY_DIR}/big_allocation.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/crash_section_size_too_big.wasm ${CMAKE_CURRENT_BINARY_DIR}/crash_section_size_too_big.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/leak_no_destructor.wasm ${CMAKE_CURRENT_BINARY_DIR}/leak_no_destructor.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/leak_readExports.wasm ${CMAKE_CURRENT_BINARY_DIR}/leak_readExports.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/leak_readFunctions.wasm ${CMAKE_CURRENT_BINARY_DIR}/leak_readFunctions.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/leak_readFunctions_2.wasm ${CMAKE_CURRENT_BINARY_DIR}/leak_readFunctions_2.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/leak_readFunctions_3.wasm ${CMAKE_CURRENT_BINARY_DIR}/leak_readFunctions_3.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/leak_readGlobals.wasm ${CMAKE_CURRENT_BINARY_DIR}/leak_readGlobals.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/leak_readImports.wasm ${CMAKE_CURRENT_BINARY_DIR}/leak_readImports.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/leak_wasm_binary_cpp_L1249.wasm ${CMAKE_CURRENT_BINARY_DIR}/leak_wasm_binary_cpp_L1249.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/readFunctions_slowness_out_of_memory.wasm ${CMAKE_CURRENT_BINARY_DIR}/readFunctions_slowness_out_of_memory.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/locals-yc.wasm ${CMAKE_CURRENT_BINARY_DIR}/locals-yc.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/locals-s.wasm ${CMAKE_CURRENT_BINARY_DIR}/locals-s.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/slowwasm_localsets.wasm ${CMAKE_CURRENT_BINARY_DIR}/slowwasm_localsets.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/getcode_deepindent.wasm ${CMAKE_CURRENT_BINARY_DIR}/getcode_deepindent.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/indent-mismatch.wasm ${CMAKE_CURRENT_BINARY_DIR}/indent-mismatch.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/deep_loops_ext_report.wasm ${CMAKE_CURRENT_BINARY_DIR}/deep_loops_ext_report.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/80k_deep_loop_with_ret.wasm ${CMAKE_CURRENT_BINARY_DIR}/80k_deep_loop_with_ret.wasm COPYONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/contracts/80k_deep_loop_with_void.wasm ${CMAKE_CURRENT_BINARY_DIR}/80k_deep_loop_with_void.wasm COPYONLY) ### BUILD UNIT TEST EXECUTABLE ### file(GLOB UNIT_TESTS "*.cpp") # find all unit test suites From 86dd2dd7371047cf12319aa943fbfc82a9f4abed Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 3 Sep 2019 10:12:15 -0400 Subject: [PATCH 519/528] Match r1.8.x submodule. --- libraries/chainbase | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/chainbase b/libraries/chainbase index b769749d533..664b4ae2136 160000 --- a/libraries/chainbase +++ b/libraries/chainbase @@ -1 +1 @@ -Subproject commit b769749d53303ec1a037d483c631d02268cbf012 +Subproject commit 664b4ae2136fa4b67c5b3b8f23ed3dfe95e44b66 From 3ca5be4a5241302a21b913bb709419284c99780d Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Tue, 3 Sep 2019 14:52:11 -0400 Subject: [PATCH 520/528] added automation-basic-builder-fleet to generate --- .cicd/pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/pipeline.yml b/.cicd/pipeline.yml index 84890038e10..34cde520dc8 100644 --- a/.cicd/pipeline.yml +++ b/.cicd/pipeline.yml @@ -4,7 +4,7 @@ steps: - label: ":pipeline: Generate Pipeline Steps" command: "./.cicd/generate-pipeline.sh | buildkite-agent pipeline upload" agents: - queue: "automation-eos-builder-fleet" + queue: "automation-basic-builder-fleet" timeout: ${TIMEOUT:-10} - wait From c9b9d38024b0cb510fce272501ee51ce7dcbcc6d Mon Sep 17 00:00:00 2001 From: Scott Arnette Date: Tue, 3 Sep 2019 16:40:10 -0400 Subject: [PATCH 521/528] Remove verbose output on serial tests. Remove mongo dependency on Travis. --- .cicd/build.sh | 2 +- scripts/serial-test.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index 53272cc4853..acb07c798c8 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -5,7 +5,7 @@ mkdir -p $BUILD_DIR CMAKE_EXTRAS="-DBUILD_MONGO_DB_PLUGIN=true" if [[ $(uname) == 'Darwin' ]]; then # You can't use chained commands in execute - [[ $TRAVIS == true ]] && export PINNED=false && ccache -s && ./$CICD_DIR/platforms/macos-10.14.sh + [[ $TRAVIS == true ]] && export PINNED=false && ccache -s && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER_LAUNCHER=ccache" ( [[ ! $PINNED == false || $UNPINNED == true ]] ) && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$HELPERS_DIR/clang.make" cd $BUILD_DIR cmake $CMAKE_EXTRAS .. diff --git a/scripts/serial-test.sh b/scripts/serial-test.sh index 338d255fd15..84c8729009d 100755 --- a/scripts/serial-test.sh +++ b/scripts/serial-test.sh @@ -30,7 +30,7 @@ if [[ -z "$TEST" ]]; then # run all serial tests # run tests set +e # defer ctest error handling to end echo '$ ctest -L nonparallelizable_tests --output-on-failure -T Test' - ctest -L nonparallelizable_tests -V --output-on-failure -T Test + ctest -L nonparallelizable_tests --output-on-failure -T Test EXIT_STATUS=$? echo 'Done running non-parallelizable tests.' else From 4d7cf6d4e2927e000ac453813d95c788f57e3d66 Mon Sep 17 00:00:00 2001 From: Zach Butler Date: Tue, 3 Sep 2019 17:00:20 -0400 Subject: [PATCH 522/528] Fix Mojave Package Builder step label --- .cicd/generate-pipeline.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 3020d818461..ad62d3364db 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -327,7 +327,7 @@ cat < Date: Tue, 3 Sep 2019 17:01:45 -0400 Subject: [PATCH 523/528] Moved "Git Submodule Regression Check" YAML into generate-pipeline.sh --- .cicd/generate-pipeline.sh | 8 ++++++++ .cicd/pipeline.yml | 11 +---------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index ad62d3364db..a87ac156bd0 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -346,6 +346,14 @@ cat < Date: Tue, 3 Sep 2019 17:08:10 -0400 Subject: [PATCH 524/528] Created "Brew Updater" step --- .cicd/generate-pipeline.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index a87ac156bd0..640890dfcae 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -355,5 +355,16 @@ cat < Date: Tue, 3 Sep 2019 17:15:21 -0400 Subject: [PATCH 525/528] Move "Ubuntu 18.04 - Contract Builder" step to end --- .cicd/generate-pipeline.sh | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 640890dfcae..0605984ee8a 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -274,17 +274,6 @@ cat < Date: Tue, 3 Sep 2019 17:22:43 -0400 Subject: [PATCH 526/528] Removed dead code --- .cicd/generate-pipeline.sh | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 0605984ee8a..c085b8487bd 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -348,18 +348,15 @@ cat < Date: Tue, 3 Sep 2019 20:30:18 -0400 Subject: [PATCH 527/528] Add mac script back. --- .cicd/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cicd/build.sh b/.cicd/build.sh index acb07c798c8..4acfd81ead7 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -5,7 +5,7 @@ mkdir -p $BUILD_DIR CMAKE_EXTRAS="-DBUILD_MONGO_DB_PLUGIN=true" if [[ $(uname) == 'Darwin' ]]; then # You can't use chained commands in execute - [[ $TRAVIS == true ]] && export PINNED=false && ccache -s && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER_LAUNCHER=ccache" + [[ $TRAVIS == true ]] && export PINNED=false && ccache -s && CMAKE_EXTRAS="-DCMAKE_CXX_COMPILER_LAUNCHER=ccache" && ./$CICD_DIR/platforms/macos-10.14.sh ( [[ ! $PINNED == false || $UNPINNED == true ]] ) && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$HELPERS_DIR/clang.make" cd $BUILD_DIR cmake $CMAKE_EXTRAS .. From 1f36d42b81d7edc57d2304070a896f13f446e306 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Wed, 4 Sep 2019 15:48:46 -0400 Subject: [PATCH 528/528] added versions to platform files --- .cicd/platforms/amazon_linux-2-unpinned.dockerfile | 1 + .cicd/platforms/amazon_linux-2.dockerfile | 1 + .cicd/platforms/centos-7.6-unpinned.dockerfile | 1 + .cicd/platforms/centos-7.6.dockerfile | 1 + .cicd/platforms/macos-10.14.sh | 1 + .cicd/platforms/ubuntu-16.04.dockerfile | 1 + .cicd/platforms/ubuntu-18.04-unpinned.dockerfile | 1 + .cicd/platforms/ubuntu-18.04.dockerfile | 1 + 8 files changed, 8 insertions(+) diff --git a/.cicd/platforms/amazon_linux-2-unpinned.dockerfile b/.cicd/platforms/amazon_linux-2-unpinned.dockerfile index 4f5be999930..4c6d1e3db36 100644 --- a/.cicd/platforms/amazon_linux-2-unpinned.dockerfile +++ b/.cicd/platforms/amazon_linux-2-unpinned.dockerfile @@ -1,4 +1,5 @@ FROM amazonlinux:2.0.20190508 +ENV VERSION 1 # install dependencies. RUN yum update -y && \ yum install -y which git sudo procps-ng util-linux autoconf automake \ diff --git a/.cicd/platforms/amazon_linux-2.dockerfile b/.cicd/platforms/amazon_linux-2.dockerfile index 7886e0cdfc4..3f930fcb4de 100644 --- a/.cicd/platforms/amazon_linux-2.dockerfile +++ b/.cicd/platforms/amazon_linux-2.dockerfile @@ -1,4 +1,5 @@ FROM amazonlinux:2.0.20190508 +ENV VERSION 1 # install dependencies. RUN yum update -y && \ yum install -y which git sudo procps-ng util-linux autoconf automake \ diff --git a/.cicd/platforms/centos-7.6-unpinned.dockerfile b/.cicd/platforms/centos-7.6-unpinned.dockerfile index b129c613400..cb6bdbb369c 100644 --- a/.cicd/platforms/centos-7.6-unpinned.dockerfile +++ b/.cicd/platforms/centos-7.6-unpinned.dockerfile @@ -1,4 +1,5 @@ FROM centos:7.6.1810 +ENV VERSION 1 # install dependencies. RUN yum update -y && \ yum --enablerepo=extras install -y centos-release-scl && \ diff --git a/.cicd/platforms/centos-7.6.dockerfile b/.cicd/platforms/centos-7.6.dockerfile index 8fd3d25376e..9dc0fc25265 100644 --- a/.cicd/platforms/centos-7.6.dockerfile +++ b/.cicd/platforms/centos-7.6.dockerfile @@ -1,4 +1,5 @@ FROM centos:7.6.1810 +ENV VERSION 1 # install dependencies. RUN yum update -y && \ yum --enablerepo=extras install -y centos-release-scl && \ diff --git a/.cicd/platforms/macos-10.14.sh b/.cicd/platforms/macos-10.14.sh index 900b8ca0a99..0be904d60c0 100755 --- a/.cicd/platforms/macos-10.14.sh +++ b/.cicd/platforms/macos-10.14.sh @@ -1,5 +1,6 @@ #!/bin/bash set -eo pipefail +VERSION=1 brew update brew install git boost@1.70 cmake python@2 python libtool libusb graphviz automake wget gmp llvm@4 pkgconfig doxygen openssl || true # install clang from source diff --git a/.cicd/platforms/ubuntu-16.04.dockerfile b/.cicd/platforms/ubuntu-16.04.dockerfile index a325a97586e..6bfbe1b1769 100644 --- a/.cicd/platforms/ubuntu-16.04.dockerfile +++ b/.cicd/platforms/ubuntu-16.04.dockerfile @@ -1,4 +1,5 @@ FROM ubuntu:16.04 +ENV VERSION 1 # install dependencies. RUN apt-get update && apt-get upgrade -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential git automake \ diff --git a/.cicd/platforms/ubuntu-18.04-unpinned.dockerfile b/.cicd/platforms/ubuntu-18.04-unpinned.dockerfile index 79daf269c19..fe682400ea9 100644 --- a/.cicd/platforms/ubuntu-18.04-unpinned.dockerfile +++ b/.cicd/platforms/ubuntu-18.04-unpinned.dockerfile @@ -1,4 +1,5 @@ FROM ubuntu:18.04 +ENV VERSION 1 # install dependencies. RUN apt-get update && apt-get upgrade -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y git make \ diff --git a/.cicd/platforms/ubuntu-18.04.dockerfile b/.cicd/platforms/ubuntu-18.04.dockerfile index ddbeeaed970..02544dfa051 100644 --- a/.cicd/platforms/ubuntu-18.04.dockerfile +++ b/.cicd/platforms/ubuntu-18.04.dockerfile @@ -1,4 +1,5 @@ FROM ubuntu:18.04 +ENV VERSION 1 # install dependencies. RUN apt-get update && apt-get upgrade -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y git make \