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

Commit 798162d

Browse files
authored
Merge pull request #1169 from EOSIO/merge-release-1.8.x-to-master
Merge release/1.8.x to master for v1.8.1
2 parents 6d51c0d + 8a56eaa commit 798162d

File tree

99 files changed

+3032
-1177
lines changed

Some content is hidden

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

99 files changed

+3032
-1177
lines changed

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

+60-43
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,70 @@
11
#!/bin/bash
22
echo '--- :evergreen_tree: Configuring Environment'
33
set -euo pipefail
4-
4+
. ./.cicd/helpers/sanitize.sh
55
buildkite-agent artifact download '*.deb' --step ':ubuntu: Ubuntu 18.04 - Package Builder' .
6-
echo ":done: download successful"
7-
8-
SANITIZED_BRANCH=$(echo "$BUILDKITE_BRANCH" | sed 's.^/..' | sed 's/[:/]/_/g')
9-
SANITIZED_TAG=$(echo "$BUILDKITE_TAG" | sed 's.^/..' | tr '/' '_')
10-
echo "$SANITIZED_BRANCH"
11-
echo "$SANITIZED_TAG"
12-
13-
# do docker build
14-
echo '+++ :docker: Building Container'
15-
echo ":docker::build: Building image..."
6+
SANITIZED_BRANCH="$(sanitize "$BUILDKITE_BRANCH")"
7+
echo "Branch '$BUILDKITE_BRANCH' sanitized as '$SANITIZED_BRANCH'."
8+
SANITIZED_TAG="$(sanitize "$BUILDKITE_TAG")"
9+
[[ -z "$SANITIZED_TAG" ]] || echo "Branch '$BUILDKITE_TAG' sanitized as '$SANITIZED_TAG'."
10+
# docker build
11+
echo '+++ :docker: Build Docker Container'
1612
DOCKERHUB_REGISTRY="docker.io/eosio/eosio.cdt"
17-
18-
BUILD_TAG=${BUILDKITE_BUILD_NUMBER:-latest}
19-
DOCKER_BUILD_GEN="docker build -t eosio_cdt_image:$BUILD_TAG -f ./docker/dockerfile ."
20-
echo "$ $DOCKER_BUILD_GEN"
21-
eval $DOCKER_BUILD_GEN
22-
23-
#tag and push on each destination AWS & DOCKERHUB
24-
echo '+++ :arrow_up: Pushing Container'
25-
EOSIO_REGS=("$EOSIO_CDT_REGISTRY" "$DOCKERHUB_REGISTRY")
26-
for REG in ${EOSIO_REGS[@]}; do
27-
DOCKER_TAG_COMMIT="docker tag eosio_cdt_image:$BUILD_TAG $REG:$BUILDKITE_COMMIT"
28-
DOCKER_TAG_BRANCH="docker tag eosio_cdt_image:$BUILD_TAG $REG:$SANITIZED_BRANCH"
29-
echo -e "$ Tagging Images: \n$DOCKER_TAG_COMMIT \n$DOCKER_TAG_BRANCH"
30-
eval $DOCKER_TAG_COMMIT
13+
IMAGE="${DOCKERHUB_REGISTRY}:${BUILDKITE_COMMIT:-latest}"
14+
DOCKER_BUILD="docker build -t '$IMAGE' -f ./docker/dockerfile ."
15+
echo "$ $DOCKER_BUILD"
16+
eval $DOCKER_BUILD
17+
# docker tag
18+
echo '--- :label: Tag Container'
19+
if [[ "$BUILDKITE_PIPELINE_SLUG" =~ "-sec" ]] ; then
20+
REGISTRIES=("$EOSIO_CDT_REGISTRY")
21+
else
22+
REGISTRIES=("$EOSIO_CDT_REGISTRY" "$DOCKERHUB_REGISTRY")
23+
fi
24+
for REG in ${REGISTRIES[@]}; do
25+
DOCKER_TAG_BRANCH="docker tag '$IMAGE' '$REG:$SANITIZED_BRANCH'"
26+
echo "$ $DOCKER_TAG_BRANCH"
3127
eval $DOCKER_TAG_BRANCH
32-
DOCKER_PUSH_COMMIT="docker push $REG:$BUILDKITE_COMMIT"
33-
DOCKER_PUSH_BRANCH="docker push $REG:$SANITIZED_BRANCH"
34-
echo -e "$ Pushing Images: \n$DOCKER_PUSH_COMMIT \n$DOCKER_PUSH_BRANCH"
35-
eval $DOCKER_PUSH_COMMIT
28+
DOCKER_TAG_COMMIT="docker tag '$IMAGE' '$REG:$BUILDKITE_COMMIT'"
29+
echo "$ $DOCKER_TAG_COMMIT"
30+
eval $DOCKER_TAG_COMMIT
31+
if [[ ! -z "$SANITIZED_TAG" && "$SANITIZED_BRANCH" != "$SANITIZED_TAG" ]]; then
32+
DOCKER_TAG="docker tag '$IMAGE' '$REG:$SANITIZED_TAG'"
33+
echo "$ $DOCKER_TAG"
34+
eval $DOCKER_TAG
35+
fi
36+
done
37+
# docker push
38+
echo '--- :arrow_up: Push Container'
39+
for REG in ${REGISTRIES[@]}; do
40+
DOCKER_PUSH_BRANCH="docker push '$REG:$SANITIZED_BRANCH'"
41+
echo "$ $DOCKER_PUSH_BRANCH"
3642
eval $DOCKER_PUSH_BRANCH
37-
CLEAN_IMAGE_COMMIT="docker rmi $REG:$BUILDKITE_COMMIT"
38-
CLEAN_IMAGE_BRANCH="docker rmi $REG:$SANITIZED_BRANCH"
39-
echo -e "Cleaning Up: \n$CLEAN_IMAGE_COMMIT \n$CLEAN_IMAGE_BRANCH$"
40-
eval $CLEAN_IMAGE_COMMIT
43+
DOCKER_PUSH_COMMIT="docker push '$REG:$BUILDKITE_COMMIT'"
44+
echo "$ $DOCKER_PUSH_COMMIT"
45+
eval $DOCKER_PUSH_COMMIT
46+
if [[ ! -z "$SANITIZED_TAG" && "$SANITIZED_BRANCH" != "$SANITIZED_TAG" ]]; then
47+
DOCKER_PUSH_TAG="docker push '$REG:$SANITIZED_TAG'"
48+
echo "$ $DOCKER_PUSH_TAG"
49+
eval $DOCKER_PUSH_TAG
50+
fi
51+
done
52+
# docker rmi
53+
echo '--- :put_litter_in_its_place: Cleanup'
54+
for REG in ${REGISTRIES[@]}; do
55+
CLEAN_IMAGE_BRANCH="docker rmi '$REG:$SANITIZED_BRANCH' || :"
56+
echo "$ $CLEAN_IMAGE_BRANCH"
4157
eval $CLEAN_IMAGE_BRANCH
42-
if [[ ! -z "$SANITIZED_TAG" ]]; then
43-
DOCKER_TAG="docker tag eosio_cdt_image $REG:$SANITIZED_TAG"
44-
DOCKER_REM="docker rmi $REG:$SANITIZED_TAG"
45-
echo -e "$ \n Tagging Image: \n$DOCKER_TAG \n Cleaning Up: \n$DOCKER_REM"
46-
eval $DOCKER_TAG
47-
eval $DOCKER_REM
58+
CLEAN_IMAGE_COMMIT="docker rmi '$REG:$BUILDKITE_COMMIT' || :"
59+
echo "$ $CLEAN_IMAGE_COMMIT"
60+
eval $CLEAN_IMAGE_COMMIT
61+
if [[ ! -z "$SANITIZED_TAG" && "$SANITIZED_BRANCH" != "$SANITIZED_TAG" ]]; then
62+
DOCKER_RMI="docker rmi '$REG:$SANITIZED_TAG' || :"
63+
echo "$ $DOCKER_RMI"
64+
eval $DOCKER_RMI
4865
fi
4966
done
50-
51-
DOCKER_GEN="docker rmi eosio_cdt_image:$BUILD_TAG"
52-
echo "Clean up base image"
53-
eval $DOCKER_GEN
67+
DOCKER_RMI="docker rmi '$IMAGE' || :"
68+
echo "$ $DOCKER_RMI"
69+
eval $DOCKER_RMI
70+
echo 'Done.'

.cicd/generate-base-images.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ TAG=$(echo $FULL_TAG | cut -d: -f2)
99
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")
1010
# build, if neccessary
1111
if [[ $EXISTS =~ '404 page not found' || $EXISTS =~ 'manifest unknown' ]]; then # if we cannot pull the image, we build and push it first
12-
docker build -t $FULL_TAG -f $CICD_DIR/docker/${IMAGE_TAG}.dockerfile .
12+
docker build -t $FULL_TAG -f $CICD_DIR/platforms/${IMAGE_TAG}.dockerfile .
1313
docker push $FULL_TAG
1414
else
1515
echo "$FULL_TAG already exists."

.cicd/helpers/docker-hash.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ function determine-hash() {
1616
}
1717

1818
if [[ ! -z $IMAGE_TAG ]]; then
19-
determine-hash "$CICD_DIR/docker/${IMAGE_TAG}.dockerfile"
19+
determine-hash "$CICD_DIR/platforms/${IMAGE_TAG}.dockerfile"
2020
export FULL_TAG="eosio/ci:eosio-cdt-$HASHED_IMAGE_TAG"
2121
else
2222
echo "Please set ENV::IMAGE_TAG to match the name of a platform dockerfile..."

.cicd/helpers/sanitize.sh

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/bin/bash
2+
3+
##### sanitize branch names for use in URIs (docker containers) #####
4+
# tr '/' '_' # convert forward-slashes '/' to underscores '_'
5+
# sed -E 's/[^-_.a-zA-Z0-9]+/-/g' # convert invalid docker chars to '-'
6+
# sed -E 's/-+/-/g' # replace multiple dashes in a series "----" with a single dash '-'
7+
# sed -E 's/-*_+-*/_/g' # replace dashes '-' and underscores '_' in-series with a single underscore '_'
8+
# sed -E 's/_+/_/g' # replace multiple underscores in a row "___" with a single underscore '_'
9+
# sed -E 's/(^[-_.]+|[-_.]+$)//g' # ensure tags do not begin or end with separator characters [-_.]
10+
function sanitize()
11+
{
12+
echo "$1" | tr '/' '_' | sed -E 's/[^-_.a-zA-Z0-9]+/-/g' | sed -E 's/-+/-/g' | sed -E 's/-*_+-*/_/g' | sed -E 's/_+/_/g' | sed -E 's/(^[-_.]+|[-_.]+$)//g'
13+
}

.cicd/pipeline-upload.sh

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/bash
2+
set -eou pipefail
3+
4+
export MACOS_10_14_TAG="eosio-cdt-macos-10.14-$(sha1sum ./.cicd/platforms/macos-10.14.sh | awk '{print $1}')"
5+
export MACOS_10_15_TAG="eosio-cdt-macos-10.15-$(sha1sum ./.cicd/platforms/macos-10.15.sh | awk '{print $1}')"
6+
export VARS='$MACOS_10_14_TAG:$MACOS_10_15_TAG'
7+
envsubst "$VARS" < "./.cicd/pipeline.yml" > "./.cicd/pipeline.yml.out"
8+
buildkite-agent artifact upload ./.cicd/pipeline.yml.out
9+
buildkite-agent pipeline upload ./.cicd/pipeline.yml.out

0 commit comments

Comments
 (0)