diff --git a/.cicd/build.sh b/.cicd/build.sh index 2543a6256aa..5627d22730b 100755 --- a/.cicd/build.sh +++ b/.cicd/build.sh @@ -3,7 +3,8 @@ set -eo pipefail [[ "$ENABLE_INSTALL" == 'true' ]] || echo '--- :evergreen_tree: Configuring Environment' . ./.cicd/helpers/general.sh mkdir -p "$BUILD_DIR" -CMAKE_EXTRAS="-DCMAKE_BUILD_TYPE=\"Release\" -DENABLE_MULTIVERSION_PROTOCOL_TEST=\"true\" -DBUILD_MONGO_DB_PLUGIN=\"true\"" +[[ -z "$DCMAKE_BUILD_TYPE" ]] && export DCMAKE_BUILD_TYPE='Release' +CMAKE_EXTRAS="-DCMAKE_BUILD_TYPE=\"$DCMAKE_BUILD_TYPE\" -DENABLE_MULTIVERSION_PROTOCOL_TEST=\"true\" -DBUILD_MONGO_DB_PLUGIN=\"true\"" if [[ "$(uname)" == 'Darwin' && "$FORCE_LINUX" != 'true' ]]; then # You can't use chained commands in execute if [[ "$GITHUB_ACTIONS" == 'true' ]]; then diff --git a/.cicd/generate-pipeline.sh b/.cicd/generate-pipeline.sh index 3227865278d..49f43de081b 100755 --- a/.cicd/generate-pipeline.sh +++ b/.cicd/generate-pipeline.sh @@ -9,10 +9,10 @@ BUILDKITE_BUILD_AGENT_QUEUE='automation-eks-eos-builder-fleet' BUILDKITE_TEST_AGENT_QUEUE='automation-eks-eos-tester-fleet' # Determine if it's a forked PR and make sure to add git fetch so we don't have to git clone the forked repo's url if [[ $BUILDKITE_BRANCH =~ ^pull/[0-9]+/head: ]]; then - PR_ID=$(echo $BUILDKITE_BRANCH | cut -d/ -f2) - export GIT_FETCH="git fetch -v --prune origin refs/pull/$PR_ID/head &&" + PR_ID=$(echo $BUILDKITE_BRANCH | cut -d/ -f2) + export GIT_FETCH="git fetch -v --prune origin refs/pull/$PR_ID/head &&" fi - +[[ "$BUILDKITE_PIPELINE_SLUG" == 'eosio-debug-build' ]] && export SKIP_UBUNTU_18_04='false' [[ -z "$ROUNDS" ]] && export ROUNDS='1' # Determine which dockerfiles/scripts to use for the pipeline. if [[ $PINNED == false ]]; then @@ -57,9 +57,11 @@ for FILE in $(ls "$CICD_DIR/platforms/$PLATFORM_TYPE"); do [[ $FILE_NAME =~ 'centos' ]] && export ICON=':centos:' [[ $FILE_NAME =~ 'macos' ]] && export ICON=':darwin:' . "$HELPERS_DIR/file-hash.sh" "$CICD_DIR/platforms/$PLATFORM_TYPE/$FILE" # returns HASHED_IMAGE_TAG, etc + export PLATFORM_SKIP_VAR="SKIP_${PLATFORM_NAME_UPCASE}_${VERSION_MAJOR}${VERSION_MINOR}" export PLATFORMS_JSON_ARRAY=$(echo $PLATFORMS_JSON_ARRAY | jq -c '. += [{ "FILE_NAME": env.FILE_NAME, "PLATFORM_NAME": env.PLATFORM_NAME, + "PLATFORM_SKIP_VAR": env.PLATFORM_SKIP_VAR, "PLATFORM_NAME_UPCASE": env.PLATFORM_NAME_UPCASE, "VERSION_MAJOR": env.VERSION_MAJOR, "VERSION_MINOR": env.VERSION_MINOR, @@ -92,6 +94,15 @@ nIFS=$IFS # fix array splitting (\n won't work) echo ' - wait' echo '' # build steps +[[ -z "$DCMAKE_BUILD_TYPE" ]] && export DCMAKE_BUILD_TYPE='Release' +export LATEST_UBUNTU="$(echo "$PLATFORMS_JSON_ARRAY" | jq -c 'map(select(.PLATFORM_NAME == "ubuntu")) | sort_by(.VERSION_MAJOR) | .[-1]')" # isolate latest ubuntu from array +if [[ "$DEBUG" == 'true' ]]; then + echo '# PLATFORMS_JSON_ARRAY' + echo "# $(echo "$PLATFORMS_JSON_ARRAY" | jq -c '.')" + echo '# LATEST_UBUNTU' + echo "# $(echo "$LATEST_UBUNTU" | jq -c '.')" + echo '' +fi echo ' # builds' echo $PLATFORMS_JSON_ARRAY | jq -cr '.[]' | while read -r PLATFORM_JSON; do if [[ ! "$(echo "$PLATFORM_JSON" | jq -r .FILE_NAME)" =~ 'macos' ]]; then @@ -99,12 +110,13 @@ 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) - Build" command: "./.cicd/build.sh" env: + DCMAKE_BUILD_TYPE: $DCMAKE_BUILD_TYPE IMAGE_TAG: $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME) PLATFORM_TYPE: $PLATFORM_TYPE agents: queue: "$BUILDKITE_BUILD_AGENT_QUEUE" 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} + skip: $(echo "$PLATFORM_JSON" | jq -r '.PLATFORM_SKIP_VAR | env[.]')${SKIP_BUILD} EOF else @@ -130,6 +142,7 @@ EOF pre-commands: - "git clone git@github.com:EOSIO/mac-anka-fleet.git && cd mac-anka-fleet && . ./ensure-tag.bash -u 12 -r 25G -a '-n'" env: + DCMAKE_BUILD_TYPE: $DCMAKE_BUILD_TYPE REPO: ${BUILDKITE_PULL_REQUEST_REPO:-$BUILDKITE_REPO} REPO_COMMIT: $BUILDKITE_COMMIT TEMPLATE: $MOJAVE_ANKA_TEMPLATE_NAME @@ -140,7 +153,8 @@ EOF PROJECT_TAG: $(echo "$PLATFORM_JSON" | jq -r .HASHED_IMAGE_TAG) 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} + skip: $(echo "$PLATFORM_JSON" | jq -r '.PLATFORM_SKIP_VAR | env[.]')${SKIP_BUILD} + EOF fi done @@ -161,14 +175,15 @@ cat <