Files
labca/dev/versions
2025-03-13 21:20:26 +01:00

140 lines
5.3 KiB
Bash
Executable File

#!/bin/sh
set -e
COL_NC='\\e\[0m' # No Color
COL_LIGHT_GREEN='\\e\[1;32m'
COL_YELLOW='\\e\[1;33m'
COL_LIGHT_RED='\\e\[1;31m'
colorBoulderTag() {
local fileName="$1"
local expectVersion="$2"
actualVersion=$(grep -R boulderTag= $fileName | sed -e "s/boulderTag=\"\(.*\)\"/\1/")
sub=$(echo $actualVersion | cut -c1-8)
if [ "$actualVersion" = "$expectVersion" ]; then
actualVersion="${COL_LIGHT_GREEN}${actualVersion}${COL_NC}"
elif [ "$sub" = "release-" ]; then
actualVersion="${COL_LIGHT_RED}${actualVersion}${COL_NC}"
else
actualVersion="${COL_YELLOW}${actualVersion}${COL_NC}"
fi
result=$(grep -R boulderTag= $fileName | sed -e "s/\(boulderTag=\"\).*\(\"\)/\1${actualVersion}\2/")
echo "* $fileName: $result"
}
colorCITag() {
local fileName="$1"
first=$(grep go1. ../boulder/.github/workflows/boulder-ci.yml | head -1 | sed -e "s/\s*-\s*//")
second=$(grep go1. ../boulder/.github/workflows/boulder-ci.yml | head -2 | tail -1 | sed -e "s/\s*-\s*//")
if [ ! -z "$(grep -R boulder-tools: $fileName | grep -v automatically | grep $first || echo "")" ]; then
res=$(grep -R boulder-tools: $fileName | grep -v automatically | sed -e "s/$first/${COL_LIGHT_GREEN}$first${COL_NC}/")
elif [ ! -z "$(grep -R boulder-tools: $fileName | grep -v automatically | grep $second || echo "")" ]; then
res=$(grep -R boulder-tools: $fileName | grep -v automatically | sed -e "s/$second/${COL_YELLOW}$second${COL_NC}/")
else
res=$(grep -R boulder-tools: $fileName | grep -v automatically | sed -e "s/\(:-*\)\([cgor\.0-9_-]*\)/\1${COL_LIGHT_RED}\2${COL_NC}/g")
fi
echo "* $fileName:$res"
}
colorNGTag() {
local fileName="$1"
local expectVersion="$2"
if [ ! -z "$(grep -R nginx: $fileName | egrep "[\"0-9]+" | grep $expectVersion || echo "")" ]; then
res=$(grep -R nginx: $fileName | egrep "[\"0-9]+" | sed -e "s/$expectVersion/${COL_LIGHT_GREEN}$expectVersion${COL_NC}/")
else
res=$(grep -R nginx: $fileName | egrep "[\"0-9]+" | sed -e "s/\(.*:\)\([0-9\.]*\)/\1${COL_LIGHT_RED}\2${COL_NC}/")
fi
echo "* $fileName:$res"
}
colorGoVersion() {
local fileName="$1"
local expectVersion="$2"
first=$(echo $expectVersion | cut -d " " -f 1)
second=$(echo $expectVersion | cut -d " " -f 2)
if [ ! -z "$(grep GO_VERSION -A 3 $fileName | egrep "\- [\"0-9]+" | grep $first || echo "")" ]; then
res=$(grep GO_VERSION -A 3 $fileName | egrep "\- [\"0-9]+" | sed -e "s/$first/${COL_LIGHT_GREEN}$first${COL_NC}/")
elif [ ! -z "$(grep GO_VERSION -A 3 $fileName | egrep "\- [\"0-9]+" | grep $second || echo "")" ]; then
res=$(grep GO_VERSION -A 3 $fileName | egrep "\- [\"0-9]+" | sed -e "s/$second/${COL_YELLOW}$second${COL_NC}/")
else
res=$(grep GO_VERSION -A 3 $fileName | egrep "\- [\"0-9]+" | sed -e "s/\([0-9\.]*\)/${COL_LIGHT_RED}\1${COL_NC}/g")
fi
echo "* $fileName:$res"
}
colorGoVersion2() {
local fileName="$1"
local expectVersion="$2"
if [ ! -z "$(grep GO_VERSION $fileName | sed -e "s/\s*GO_VERSION: //" | grep $expectVersion || echo "")" ]; then
res=$(grep GO_VERSION $fileName | sed -e "s/\s*GO_VERSION: / /" | sed -e "s/$expectVersion/${COL_LIGHT_GREEN}$expectVersion${COL_NC}/")
else
res=$(grep GO_VERSION $fileName | sed -e "s/\s*GO_VERSION: / /" | sed -e "s/\([0-9\.]*\)/${COL_LIGHT_RED}\1${COL_NC}/g")
fi
echo "* $fileName:$res"
}
colorEqual() {
local first="$1"
local second="$2"
if [ "$first" = "$second" ]; then
res=$(echo $first | sed -e "s/$first/${COL_LIGHT_GREEN}$first${COL_NC}/")
echo " $res"
else
res=$(echo $first | sed -e "s/$first/${COL_LIGHT_RED}$first${COL_NC}/")
echo " $res, but have $second"
fi
}
echo
cd ../boulder
bversion=$(git describe --tags $(git rev-list --tags --max-count=1))
cd - >/dev/null
echo "Boulder tag: $bversion"
colorBoulderTag install $bversion
colorBoulderTag build/build.sh $bversion
echo
echo "Boulder CI tag(s):"
grep go1. ../boulder/.github/workflows/boulder-ci.yml
colorCITag build/Dockerfile-boulder
echo
ngversion=$(grep -R nginx: .github/Dockerfile | egrep "[\"0-9]+" | sed -e "s/.*:\([0-9\.]*\)/\1/")
echo -n "Manual .github/Dockerfile: "
grep -R nginx: .github/Dockerfile | egrep "[\"0-9]+"
colorNGTag build/docker-compose.yml $ngversion
colorNGTag patches/docker-compose.patch $ngversion
echo
goversion=$(grep GO_VERSION -A 3 ../boulder/.github/workflows/release.yml | egrep "\- [\"0-9]+" | sed -e "s/\s*-\s*//" | sed -e "s/\"//g")
echo "Boulder .github/workflows/release.yml"
grep GO_VERSION -A 3 ../boulder/.github/workflows/release.yml | egrep "\- [\"0-9]+" | sed -e "s/yml-/yml/"
colorGoVersion .github/workflows/release.yml "$goversion"
colorGoVersion .github/workflows/build-standalone.yml "$goversion"
echo
goversion=$(grep GO_VERSION ../boulder/docker-compose.yml | sed -e "s/\s*GO_VERSION://")
echo -n "Boulder docker-compose.yml"
grep GO_VERSION ../boulder/docker-compose.yml | sed -e "s/\s*GO_VERSION:/ /"
colorGoVersion2 build/docker-compose.yml $goversion
echo
db_migrs=$(ls -1 ../boulder/sa/db/boulder_sa/ | grep -v 20240304000000_CertificateProfiles.sql | grep -v 20250115000000_AuthzProfiles.sql | wc -l)
db_patches=$(ls -1 ../labca/patches/db_migrations* | wc -l)
echo -n "Database migrations "
colorEqual $db_migrs $db_patches
echo