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

Commit 37d9df6

Browse files
authored
Merge pull request #10092 from EOSIO/release/2.0.x
Merge release/2.0.x into master
2 parents 58f90b9 + f651c24 commit 37d9df6

40 files changed

+1231
-407
lines changed

.cicd/build.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ set -eo pipefail
33
[[ "$ENABLE_INSTALL" == 'true' ]] || echo '--- :evergreen_tree: Configuring Environment'
44
. ./.cicd/helpers/general.sh
55
mkdir -p "$BUILD_DIR"
6-
CMAKE_EXTRAS="-DCMAKE_BUILD_TYPE=\"Release\" -DENABLE_MULTIVERSION_PROTOCOL_TEST=\"true\" -DBUILD_MONGO_DB_PLUGIN=\"true\""
6+
[[ -z "$DCMAKE_BUILD_TYPE" ]] && export DCMAKE_BUILD_TYPE='Release'
7+
CMAKE_EXTRAS="-DCMAKE_BUILD_TYPE=\"$DCMAKE_BUILD_TYPE\" -DENABLE_MULTIVERSION_PROTOCOL_TEST=\"true\" -DBUILD_MONGO_DB_PLUGIN=\"true\""
78
if [[ "$(uname)" == 'Darwin' && "$FORCE_LINUX" != 'true' ]]; then
89
# You can't use chained commands in execute
910
if [[ "$GITHUB_ACTIONS" == 'true' ]]; then

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

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

.cicd/docker-tag.sh

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,17 @@ echo '$ echo ${#CONTRACT_REGISTRIES[*]} # array length'
99
echo ${#CONTRACT_REGISTRIES[*]}
1010
echo '$ echo ${CONTRACT_REGISTRIES[*]} # array'
1111
echo ${CONTRACT_REGISTRIES[*]}
12+
export IMAGE="${MIRROR_REGISTRY:-$DOCKERHUB_CI_REGISTRY}:$PREFIX-$BUILDKITE_COMMIT-$PLATFORM_TYPE"
1213
# pull
1314
echo '+++ :arrow_down: Pulling Container(s)'
14-
for REGISTRY in ${CONTRACT_REGISTRIES[*]}; do
15-
if [[ ! -z "$REGISTRY" ]]; then
16-
echo "Pulling from '$REGISTRY'."
17-
IMAGE="$REGISTRY:$PREFIX-$BUILDKITE_COMMIT-$PLATFORM_TYPE"
18-
DOCKER_PULL_COMMAND="docker pull '$IMAGE'"
19-
echo "$ $DOCKER_PULL_COMMAND"
20-
eval $DOCKER_PULL_COMMAND
21-
fi
22-
done
15+
DOCKER_PULL_COMMAND="docker pull '$IMAGE'"
16+
echo "$ $DOCKER_PULL_COMMAND"
17+
eval $DOCKER_PULL_COMMAND
2318
# tag
2419
echo '+++ :label: Tagging Container(s)'
2520
for REGISTRY in ${CONTRACT_REGISTRIES[*]}; do
2621
if [[ ! -z "$REGISTRY" ]]; then
2722
echo "Tagging for registry $REGISTRY."
28-
IMAGE="$REGISTRY:$PREFIX-$BUILDKITE_COMMIT-$PLATFORM_TYPE"
2923
DOCKER_TAG_COMMAND="docker tag '$IMAGE' '$REGISTRY:$PREFIX-$SANITIZED_BRANCH'"
3024
echo "$ $DOCKER_TAG_COMMAND"
3125
eval $DOCKER_TAG_COMMAND
@@ -56,15 +50,18 @@ echo '--- :put_litter_in_its_place: Cleaning Up'
5650
for REGISTRY in ${CONTRACT_REGISTRIES[*]}; do
5751
if [[ ! -z "$REGISTRY" ]]; then
5852
echo "Cleaning up from $REGISTRY."
59-
DOCKER_RMI_COMMAND="docker rmi '$REGISTRY:$PREFIX-$SANITIZED_BRANCH'"
53+
DOCKER_RMI_COMMAND="docker rmi '$REGISTRY:$PREFIX-$SANITIZED_BRANCH' || :"
54+
echo "$ $DOCKER_RMI_COMMAND"
55+
eval $DOCKER_RMI_COMMAND
56+
DOCKER_RMI_COMMAND="docker rmi '$REGISTRY:$PREFIX-$BUILDKITE_COMMIT' || :"
6057
echo "$ $DOCKER_RMI_COMMAND"
6158
eval $DOCKER_RMI_COMMAND
6259
if [[ ! -z "$BUILDKITE_TAG" && "$SANITIZED_BRANCH" != "$SANITIZED_TAG" ]]; then
63-
DOCKER_RMI_COMMAND="docker rmi '$REGISTRY:$PREFIX-$SANITIZED_TAG'"
60+
DOCKER_RMI_COMMAND="docker rmi '$REGISTRY:$PREFIX-$SANITIZED_TAG' || :"
6461
echo "$ $DOCKER_RMI_COMMAND"
6562
eval $DOCKER_RMI_COMMAND
6663
fi
67-
DOCKER_RMI_COMMAND="docker rmi '$REGISTRY:$PREFIX-$BUILDKITE_COMMIT-$PLATFORM_TYPE'"
64+
DOCKER_RMI_COMMAND="docker rmi '$REGISTRY:$PREFIX-$BUILDKITE_COMMIT-$PLATFORM_TYPE' || :"
6865
echo "$ $DOCKER_RMI_COMMAND"
6966
eval $DOCKER_RMI_COMMAND
7067
fi

.cicd/generate-base-images.sh

Lines changed: 37 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -5,39 +5,44 @@ set -eo pipefail
55
# search for base image in docker registries
66
echo '--- :docker: Build or Pull Base Image :minidisc:'
77
echo "Looking for '$HASHED_IMAGE_TAG' container in our registries."
8-
EXISTS_ALL='true'
9-
EXISTS_DOCKER_HUB='false'
10-
EXISTS_ECR='false'
11-
for REGISTRY in ${CI_REGISTRIES[*]}; do
12-
if [[ ! -z "$REGISTRY" ]]; then
13-
MANIFEST_COMMAND="docker manifest inspect '$REGISTRY:$HASHED_IMAGE_TAG'"
14-
echo "$ $MANIFEST_COMMAND"
15-
set +e
16-
eval $MANIFEST_COMMAND
17-
MANIFEST_INSPECT_EXIT_STATUS="$?"
18-
set -eo pipefail
19-
if [[ "$MANIFEST_INSPECT_EXIT_STATUS" == '0' ]]; then
20-
if [[ "$(echo "$REGISTRY" | grep -icP '[.]amazonaws[.]com/')" != '0' ]]; then
21-
EXISTS_ECR='true'
22-
elif [[ "$(echo "$REGISTRY" | grep -icP 'docker[.]io/')" != '0' ]]; then
23-
EXISTS_DOCKER_HUB='true'
24-
fi
25-
else
26-
EXISTS_ALL='false'
27-
fi
8+
export EXISTS_DOCKER_HUB='false'
9+
export EXISTS_MIRROR='false'
10+
MANIFEST_COMMAND="docker manifest inspect '${MIRROR_REGISTRY:-$DOCKERHUB_CI_REGISTRY}:$HASHED_IMAGE_TAG'"
11+
echo "$ $MANIFEST_COMMAND"
12+
set +e
13+
eval $MANIFEST_COMMAND
14+
MANIFEST_INSPECT_EXIT_STATUS="$?"
15+
set -eo pipefail
16+
if [[ "$MANIFEST_INSPECT_EXIT_STATUS" == '0' ]]; then
17+
if [[ "$(echo "$REGISTRY" | grep -icP 'docker[.]io/')" != '0' ]]; then
18+
export EXISTS_DOCKER_HUB='true'
19+
else
20+
export EXISTS_MIRROR='true'
21+
fi
22+
fi
23+
# pull and copy as-necessary
24+
if [[ "$EXISTS_MIRROR" == 'true' && ! -z "$MIRROR_REGISTRY" ]]; then
25+
DOCKER_PULL_COMMAND="docker pull '$MIRROR_REGISTRY:$HASHED_IMAGE_TAG'"
26+
echo "$ $DOCKER_PULL_COMMAND"
27+
eval $DOCKER_PULL_COMMAND
28+
# copy, if necessary
29+
if [[ "$EXISTS_DOCKER_HUB" == 'false' ]]; then
30+
# tag
31+
DOCKER_TAG_COMMAND="docker tag '$MIRROR_REGISTRY:$HASHED_IMAGE_TAG' '$DOCKERHUB_CI_REGISTRY:$HASHED_IMAGE_TAG'"
32+
echo "$ $DOCKER_TAG_COMMAND"
33+
eval $DOCKER_TAG_COMMAND
34+
# push
35+
DOCKER_PUSH_COMMAND="docker push '$DOCKERHUB_CI_REGISTRY:$HASHED_IMAGE_TAG'"
36+
echo "$ $DOCKER_PUSH_COMMAND"
37+
eval $DOCKER_PUSH_COMMAND
38+
export EXISTS_DOCKER_HUB='true'
2839
fi
29-
done
30-
# copy, if possible, since it is so much faster
31-
if [[ "$EXISTS_ECR" == 'false' && "$EXISTS_DOCKER_HUB" == 'true' && "$OVERWRITE_BASE_IMAGE" != 'true' && ! -z "$MIRROR_REGISTRY" ]]; then
32-
echo 'Attempting copy from Docker Hub to the mirror instead of a new base image build.'
40+
elif [[ "$EXISTS_DOCKER_HUB" == 'true' ]]; then
3341
DOCKER_PULL_COMMAND="docker pull '$DOCKERHUB_CI_REGISTRY:$HASHED_IMAGE_TAG'"
3442
echo "$ $DOCKER_PULL_COMMAND"
35-
set +e
3643
eval $DOCKER_PULL_COMMAND
37-
DOCKER_PULL_EXIT_STATUS="$?"
38-
set -eo pipefail
39-
if [[ "$DOCKER_PULL_EXIT_STATUS" == '0' ]]; then
40-
echo 'Pull from Docker Hub worked! Pushing to mirror.'
44+
# copy, if necessary
45+
if [[ "$EXISTS_MIRROR" == 'false' && ! -z "$MIRROR_REGISTRY" ]]; then
4146
# tag
4247
DOCKER_TAG_COMMAND="docker tag '$DOCKERHUB_CI_REGISTRY:$HASHED_IMAGE_TAG' '$MIRROR_REGISTRY:$HASHED_IMAGE_TAG'"
4348
echo "$ $DOCKER_TAG_COMMAND"
@@ -46,22 +51,19 @@ if [[ "$EXISTS_ECR" == 'false' && "$EXISTS_DOCKER_HUB" == 'true' && "$OVERWRITE_
4651
DOCKER_PUSH_COMMAND="docker push '$MIRROR_REGISTRY:$HASHED_IMAGE_TAG'"
4752
echo "$ $DOCKER_PUSH_COMMAND"
4853
eval $DOCKER_PUSH_COMMAND
49-
EXISTS_ALL='true'
50-
EXISTS_ECR='true'
51-
else
52-
echo 'Pull from Docker Hub failed, rebuilding base image from scratch.'
54+
export EXISTS_MIRROR='true'
5355
fi
5456
fi
5557
# esplain yerself
56-
if [[ "$EXISTS_ALL" == 'false' ]]; then
58+
if [[ "$EXISTS_DOCKER_HUB" == 'false' && "$EXISTS_MIRROR" == 'false' ]]; then
5759
echo 'Building base image from scratch.'
5860
elif [[ "$OVERWRITE_BASE_IMAGE" == 'true' ]]; then
5961
echo "OVERWRITE_BASE_IMAGE is set to 'true', building from scratch and pushing to docker registries."
6062
elif [[ "$FORCE_BASE_IMAGE" == 'true' ]]; then
6163
echo "FORCE_BASE_IMAGE is set to 'true', building from scratch and NOT pushing to docker registries."
6264
fi
6365
# build, if neccessary
64-
if [[ "$EXISTS_ALL" == 'false' || "$FORCE_BASE_IMAGE" == 'true' || "$OVERWRITE_BASE_IMAGE" == 'true' ]]; then # if we cannot pull the image, we build and push it first
66+
if [[ ("$EXISTS_DOCKER_HUB" == 'false' && "$EXISTS_MIRROR" == 'false') || "$FORCE_BASE_IMAGE" == 'true' || "$OVERWRITE_BASE_IMAGE" == 'true' ]]; then # if we cannot pull the image, we build and push it first
6567
export DOCKER_BUILD_COMMAND="docker build --no-cache -t 'ci:$HASHED_IMAGE_TAG' -f '$CICD_DIR/platforms/$PLATFORM_TYPE/$IMAGE_TAG.dockerfile' ."
6668
echo "$ $DOCKER_BUILD_COMMAND"
6769
eval $DOCKER_BUILD_COMMAND

0 commit comments

Comments
 (0)