mirror of https://gitlab.com/ecentrics/concordia
Apostolos Fanakis
4 years ago
3 changed files with 47 additions and 0 deletions
@ -0,0 +1,24 @@ |
|||
#!/bin/bash |
|||
|
|||
# Based on this post: |
|||
# https://engineering.brigad.co/only-deploy-services-impacted-by-changes-in-a-mono-repository-18f54b8ac109 |
|||
|
|||
APP=$1 |
|||
# Jenkins should provide these in the environment by default |
|||
GIT_COMMIT=$2 |
|||
GIT_PREVIOUS_COMMIT=$3 |
|||
ROOT_FILES_AND_FOLDERS=${4:-"package.json" "yarn.lock" ".dockerignore" "docker" "jenkins"} |
|||
|
|||
function join_by { local IFS="$1"; shift; echo "$*"; } |
|||
|
|||
function package_changed { git diff --name-only "$COMMIT_RANGE" | grep -qE "^packages/$1/" && echo true || echo false; } |
|||
|
|||
COMMIT_RANGE="$GIT_PREVIOUS_COMMIT...$GIT_COMMIT" |
|||
ROOT_FILES_AND_FOLDERS_ARRAY=($ROOT_FILES_AND_FOLDERS) |
|||
ROOT_FILES_AND_FOLDERS_JOINED=$(join_by "|" ${ROOT_FILES_AND_FOLDERS_ARRAY[*]}) |
|||
|
|||
ROOT_FILES_CHANGED=$(git diff --name-only "$COMMIT_RANGE" | grep -qE "^($ROOT_FILES_AND_FOLDERS_JOINED)" && echo true || echo false) |
|||
IS_FORCE_BUILD=$(git log --oneline "$COMMIT_RANGE" | grep -qE "ci: force" && echo true || echo false) |
|||
APP_FILES_CHANGED=$(package_changed ${APP}) |
|||
|
|||
($IS_FORCE_BUILD || $ROOT_FILES_CHANGED || $APP_FILES_CHANGED) && echo 0 || echo 1 |
@ -0,0 +1,18 @@ |
|||
#!/bin/bash |
|||
|
|||
# Outputs to the stdout a deterministically generated integer in the range 0-4095. The integer is generated using the |
|||
# input strings and SHA1. |
|||
# Usage: hash_build_properties.sh <branch> <build_number> |
|||
# Inputs: |
|||
# - branch: the branch being build |
|||
# - build_number the incrementing number of the build |
|||
|
|||
BRANCH=$1 |
|||
BUILD_NUMBER=$2 |
|||
|
|||
STRING_TO_HASH="$BRANCH-$BUILD_NUMBER" |
|||
SHA1_SUM_HEX=$(sha1sum <<<"$STRING_TO_HASH") |
|||
SHA1_TRUNCATED_HEX=$(cut -c1-3 <<<"$SHA1_SUM_HEX") |
|||
HASHED_STRING=$((0x${SHA1_TRUNCATED_HEX})) |
|||
|
|||
echo "$HASHED_STRING" |
@ -0,0 +1,5 @@ |
|||
#!/bin/bash |
|||
|
|||
INTEGER_TO_MAP=$1 |
|||
|
|||
echo $(( INTEGER_TO_MAP * 999 / 4095 )) |
Loading…
Reference in new issue