From 81ff1181f99d1530feb23d323e8d00525dd2ea85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= <karel.koci@nic.cz> Date: Thu, 25 Apr 2019 11:12:16 +0200 Subject: [PATCH] new_release.sh: update to support new repositories format This is new format of repositories and it cleans little bit an idea about what is authoritative hash we are going to use when we are tagging new releases. --- helpers/new_release.sh | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/helpers/new_release.sh b/helpers/new_release.sh index 228882756..93837fd81 100755 --- a/helpers/new_release.sh +++ b/helpers/new_release.sh @@ -21,7 +21,7 @@ set -e # Constants REPO="https://repo.turris.cz" -BOARDS=('mox' 'omnia' 'turris') +BOARDS=('mox' 'omnia' 'turris1x') # Note that first board in this is considered as primary (authoritative) one DEFAULT_VERIFY_BRANCH="hbk" DEFAULT_RELEASE_BRANCH="hbs" @@ -71,12 +71,12 @@ fetch_files() { FETCH_DIR="$(mktemp -d)" GIT_HASH_LISTS="$FETCH_DIR/git-hash-lists" GIT_HASH_PACKAGES="$FETCH_DIR/git-hash-packages" - VERSION_LISTS="$FETCH_DIR/version-lists" + TOS_VERSION="$FETCH_DIR/tos-version" - curl -s "$REPO/$branch/lists/git-hash" >"$GIT_HASH_LISTS" - curl -s "$REPO/$branch/lists/turris-version" >"$VERSION_LISTS" for board in "${BOARDS[@]}"; do - curl -s "$REPO/$branch/packages/$board/git-hash" >"$GIT_HASH_PACKAGES-$board" + curl -s "$REPO/$branch/lists/turris-version" >"$TOS_VERSION-$board" + curl -s "$REPO/$branch/$board/lists/git-hash" >"$GIT_HASH_LISTS-$board" + curl -s "$REPO/$branch/$board/packages/git-hash" >"$GIT_HASH_PACKAGES-$board" done } @@ -87,13 +87,17 @@ git_hash() { } # Get turris-build hash -# (version is primarily sourced from lists so consider lists as authoritative) tb_hash() { local ec=0 - local l_hash b_hash - l_hash="$(cat "$GIT_HASH_LISTS")" + local p_hash l_hash b_hash for board in "${BOARDS[@]}"; do + l_hash="$(cat "$GIT_HASH_LISTS-$board")" b_hash="$(git_hash "$board" "turris-build")" + [ -n "$p_hash" ] || p_hash="$l_hash" # First board is considered primary and lists are authoritative + [ "$p_hash" = "$l_hash" ] || { + error "Turris build used to generate lists is not same as for ${BOARDS[0]} board: $board ($l_hash / $p_hash)" + ec=1 + } [ "$b_hash" = "$l_hash" ] || { error "Turris build used to generate lists is not same as for packages for board: $board ($l_hash / $b_hash)" ec=1 @@ -106,17 +110,16 @@ tb_hash() { # Get hash for openwrt owrt_hash() { local ec=0 - local hsh="" t_hsh - # TODO this is not optimal and better would be to decide which is authoritative (newer?) + local p_hash t_hash for board in "${BOARDS[@]}"; do - t_hsh="$(git_hash "$board" openwrt)" - [ -n "$hsh" ] || hsh="$t_hsh" - if [ "$t_hsh" != "$hsh" ]; then - error "Different OpenWRT commit build for board: $board ($hsh / $t_hsh)" + t_hash="$(git_hash "$board" openwrt)" + [ -n "$p_hash" ] || p_hash="$t_hash" # first board is primary one + [ "$p_hash" = "$t_hash" ] || { + error "Different OpenWRT commit build for board: $board ($t_hash / $p_hash)" ec=1 - fi + } done - echo "$hsh" + echo "$p_hash" return $ec } @@ -124,16 +127,15 @@ owrt_hash() { # Caller should define associative array FEEDS feeds() { local ec=0 - # TODO this is not optimal and better would be to decide which is authoritative (newer?) for board in "${BOARDS[@]}"; do local lines feed hsh lines="$(sed -En 's|^ \* feeds/([^:]+): ([^\s]+)|\1 \2|p' "$GIT_HASH_PACKAGES-$board")" while read -r feed hsh; do if [[ -v "FEEDS[$feed]" ]]; then - if [ "$hsh" != "${FEEDS["$feed"]}" ]; then + [ "$hsh" = "${FEEDS["$feed"]}" ] || { error "Different feed ($feed) commit compiled for $board (${FEEDS["$feed"]} / $hsh)" ec=1 - fi + } else FEEDS["$feed"]="$hsh" fi -- GitLab