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

Commit

Permalink
Merge pull request #7824 from EOSIO/trav-poc-code-gen
Browse files Browse the repository at this point in the history
[TRAVIS POC] Using platforms/dockerfiles/mac.sh as source of truth for generating Build, Parallel, Serial, and LRTs
  • Loading branch information
kj4ezj authored Aug 30, 2019
2 parents a30db8f + 56d35a2 commit 8f33555
Show file tree
Hide file tree
Showing 31 changed files with 708 additions and 885 deletions.
47 changes: 0 additions & 47 deletions .cicd/anka/macos-10.14.sh

This file was deleted.

36 changes: 8 additions & 28 deletions .cicd/build.sh
Original file line number Diff line number Diff line change
@@ -1,29 +1,22 @@
#!/usr/bin/env bash
#!/bin/bash
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
( [[ ! $PINNED == false || $UNPINNED == true ]] ) && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$HELPERS_DIR/clang.make"
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

. $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 ..)
[[ ! $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
Expand All @@ -41,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 -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
Expand All @@ -55,18 +46,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"

# 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
6 changes: 3 additions & 3 deletions .cicd/generate-base-images.sh
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
#!/usr/bin/env bash
#!/bin/bash
set -eo pipefail
. ./.cicd/helpers/general.sh
. $HELPERS_DIR/docker-hash.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)
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/platforms/${IMAGE_TAG}.dockerfile .
docker push $FULL_TAG
else
echo "$FULL_TAG already exists."
Expand Down
Loading

0 comments on commit 8f33555

Please sign in to comment.