Cirrus: Detect when dependency versions need a bump

pull/114/head
Jeremy Rand 3 years ago
parent cb78a383cc
commit d4129e0124
No known key found for this signature in database
GPG Key ID: FD7550C2EB800711

@ -63,6 +63,7 @@ release_linux_x86_64_download_docker_builder:
- "./tools/cirrus_build_project.sh plain-binaries release linux x86_64 0"
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
release_linux_x86_64_gcc_1_docker_builder:
timeout_in: 120m
@ -132,6 +133,7 @@ release_linux_x86_64_gcc_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_linux_x86_64_download"
@ -203,6 +205,7 @@ release_linux_x86_64_gcc_2_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_linux_x86_64_gcc_1"
@ -274,6 +277,7 @@ release_linux_x86_64_goeasyconfig_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_linux_x86_64_gcc_2"
@ -345,6 +349,7 @@ release_linux_x86_64_ncdns_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_linux_x86_64_goeasyconfig_1"
@ -416,6 +421,7 @@ release_linux_x86_64_ncp11_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_linux_x86_64_ncdns_1"
@ -487,6 +493,7 @@ release_linux_x86_64_ncprop279_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_linux_x86_64_ncp11_1"
@ -558,6 +565,7 @@ release_linux_x86_64_plain-binaries_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_linux_x86_64_ncprop279_1"
@ -631,6 +639,7 @@ release_linux_x86_64_release_nosign_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
only_if: $CIRRUS_REPO_OWNER != "namecoin"
depends_on:
- "release_linux_x86_64_plain-binaries_1"
@ -708,6 +717,7 @@ release_linux_x86_64_release_sign_docker_builder:
HOME: /root
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_linux_x86_64_plain-binaries_1"
@ -774,6 +784,7 @@ release_linux_i686_download_docker_builder:
- "./tools/cirrus_build_project.sh plain-binaries release linux i686 0"
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
release_linux_i686_gcc_1_docker_builder:
timeout_in: 120m
@ -843,6 +854,7 @@ release_linux_i686_gcc_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_linux_i686_download"
@ -914,6 +926,7 @@ release_linux_i686_gcc_2_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_linux_i686_gcc_1"
@ -985,6 +998,7 @@ release_linux_i686_goeasyconfig_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_linux_i686_gcc_2"
@ -1056,6 +1070,7 @@ release_linux_i686_ncdns_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_linux_i686_goeasyconfig_1"
@ -1127,6 +1142,7 @@ release_linux_i686_ncp11_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_linux_i686_ncdns_1"
@ -1198,6 +1214,7 @@ release_linux_i686_ncprop279_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_linux_i686_ncp11_1"
@ -1269,6 +1286,7 @@ release_linux_i686_plain-binaries_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_linux_i686_ncprop279_1"
@ -1342,6 +1360,7 @@ release_linux_i686_release_nosign_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
only_if: $CIRRUS_REPO_OWNER != "namecoin"
depends_on:
- "release_linux_i686_plain-binaries_1"
@ -1419,6 +1438,7 @@ release_linux_i686_release_sign_docker_builder:
HOME: /root
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_linux_i686_plain-binaries_1"
@ -1485,6 +1505,7 @@ release_windows_x86_64_download_docker_builder:
- "./tools/cirrus_build_project.sh plain-binaries release windows x86_64 0"
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
release_windows_x86_64_mingw-w64_1_docker_builder:
timeout_in: 120m
@ -1554,6 +1575,7 @@ release_windows_x86_64_mingw-w64_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_windows_x86_64_download"
@ -1625,6 +1647,7 @@ release_windows_x86_64_mingw-w64_2_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_windows_x86_64_mingw-w64_1"
@ -1696,6 +1719,7 @@ release_windows_x86_64_goeasyconfig_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_windows_x86_64_mingw-w64_2"
@ -1767,6 +1791,7 @@ release_windows_x86_64_ncdns_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_windows_x86_64_goeasyconfig_1"
@ -1838,6 +1863,7 @@ release_windows_x86_64_ncp11_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_windows_x86_64_ncdns_1"
@ -1909,6 +1935,7 @@ release_windows_x86_64_ncprop279_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_windows_x86_64_ncp11_1"
@ -1980,6 +2007,7 @@ release_windows_x86_64_plain-binaries_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_windows_x86_64_ncprop279_1"
@ -2053,6 +2081,7 @@ release_windows_x86_64_release_nosign_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
only_if: $CIRRUS_REPO_OWNER != "namecoin"
depends_on:
- "release_windows_x86_64_plain-binaries_1"
@ -2130,6 +2159,7 @@ release_windows_x86_64_release_sign_docker_builder:
HOME: /root
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_windows_x86_64_plain-binaries_1"
@ -2196,6 +2226,7 @@ release_windows_i686_download_docker_builder:
- "./tools/cirrus_build_project.sh plain-binaries release windows i686 0"
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
release_windows_i686_mingw-w64_1_docker_builder:
timeout_in: 120m
@ -2265,6 +2296,7 @@ release_windows_i686_mingw-w64_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_windows_i686_download"
@ -2336,6 +2368,7 @@ release_windows_i686_mingw-w64_2_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_windows_i686_mingw-w64_1"
@ -2407,6 +2440,7 @@ release_windows_i686_goeasyconfig_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_windows_i686_mingw-w64_2"
@ -2478,6 +2512,7 @@ release_windows_i686_ncdns_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_windows_i686_goeasyconfig_1"
@ -2549,6 +2584,7 @@ release_windows_i686_ncp11_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_windows_i686_ncdns_1"
@ -2620,6 +2656,7 @@ release_windows_i686_ncprop279_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_windows_i686_ncp11_1"
@ -2691,6 +2728,7 @@ release_windows_i686_plain-binaries_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_windows_i686_ncprop279_1"
@ -2764,6 +2802,7 @@ release_windows_i686_release_nosign_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
only_if: $CIRRUS_REPO_OWNER != "namecoin"
depends_on:
- "release_windows_i686_plain-binaries_1"
@ -2841,6 +2880,7 @@ release_windows_i686_release_sign_docker_builder:
HOME: /root
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_windows_i686_plain-binaries_1"
@ -2907,6 +2947,7 @@ release_osx_x86_64_download_docker_builder:
- "./tools/cirrus_build_project.sh plain-binaries release osx x86_64 0"
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
release_osx_x86_64_macosx-toolchain_1_docker_builder:
timeout_in: 120m
@ -2976,6 +3017,7 @@ release_osx_x86_64_macosx-toolchain_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_osx_x86_64_download"
@ -3047,6 +3089,7 @@ release_osx_x86_64_macosx-toolchain_2_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_osx_x86_64_macosx-toolchain_1"
@ -3118,6 +3161,7 @@ release_osx_x86_64_goeasyconfig_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_osx_x86_64_macosx-toolchain_2"
@ -3189,6 +3233,7 @@ release_osx_x86_64_ncdns_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_osx_x86_64_goeasyconfig_1"
@ -3260,6 +3305,7 @@ release_osx_x86_64_ncp11_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_osx_x86_64_ncdns_1"
@ -3331,6 +3377,7 @@ release_osx_x86_64_ncprop279_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_osx_x86_64_ncp11_1"
@ -3402,6 +3449,7 @@ release_osx_x86_64_plain-binaries_1_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_osx_x86_64_ncprop279_1"
@ -3475,6 +3523,7 @@ release_osx_x86_64_release_nosign_docker_builder:
SIGN_BUILD: 0
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
only_if: $CIRRUS_REPO_OWNER != "namecoin"
depends_on:
- "release_osx_x86_64_plain-binaries_1"
@ -3552,6 +3601,14 @@ release_osx_x86_64_release_sign_docker_builder:
HOME: /root
env:
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0
depends_on:
- "release_osx_x86_64_plain-binaries_1"
bump_docker_builder:
bump_script:
- "./tools/cirrus_build_project.sh null null null null 0"
env:
BUMP_DEPS: 1
DEPLOY_KEY: ENCRYPTED[7969cc42abbc36c75c5673f2227e2eeec92577391c28c678243f95e01edffa17137e52cbddbe3e409cdab78a637edec5]
only_if: $CIRRUS_REPO_OWNER == "namecoin"

@ -36,6 +36,11 @@ cat tools/rbm.local.conf.onetarget | sed "s/CHANNEL/$CHANNEL/g" | sed "s/ncdns-a
echo "Patching rbm..."
./tools/patch-tor-to-namecoin.sh
if [[ "$BUMP_DEPS" -eq 1 ]]; then
./tools/namecoin-bump-versions.sh
exit 0
fi
echo "Restoring caches..."
cp -a ./out_cache1/* ./out/ || true
cp -a ./out_cache2/* ./out/ || true

@ -70,7 +70,8 @@ print_os_arch () {
build_script:
- \"./tools/cirrus_build_project.sh plain-binaries ${CHANNEL} ${OS} ${ARCH} 0\""
echo " env:
CIRRUS_LOG_TIMESTAMP: true"
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0"
echo ""
# TODO fine-tune this list
@ -172,7 +173,8 @@ print_os_arch () {
SIGN_BUILD: 0"
fi
echo " env:
CIRRUS_LOG_TIMESTAMP: true"
CIRRUS_LOG_TIMESTAMP: true
BUMP_DEPS: 0"
if [[ "$PROJECT_ITER" == "nosign" ]]; then
echo ' only_if: $CIRRUS_REPO_OWNER != "namecoin"'
fi
@ -204,6 +206,14 @@ for CHANNEL in release; do
print_os_arch windows i686
print_os_arch osx x86_64
done
echo 'bump_docker_builder:
bump_script:
- "./tools/cirrus_build_project.sh null null null null 0"
env:
BUMP_DEPS: 1
DEPLOY_KEY: ENCRYPTED[7969cc42abbc36c75c5673f2227e2eeec92577391c28c678243f95e01edffa17137e52cbddbe3e409cdab78a637edec5]
only_if: $CIRRUS_REPO_OWNER == "namecoin"'
) > .cirrus.yml
# Timeout issues?

@ -0,0 +1,200 @@
#!/usr/bin/env bash
set -euo pipefail
shopt -s nullglob globstar
UPDATE_NEEDED=0
git branch bump-deps
git checkout bump-deps
# project Git hashes
for PROJECTPATH in ./projects/*
do
PROJECT=$(basename ${PROJECTPATH})
# Tor devs are in charge of their dependencies that we load via symlink
if [[ -L "${PROJECTPATH}" || "${PROJECT}" = goxcrypto* || "${PROJECT}" = goxnet* || "${PROJECT}" = goxsys* ]]
then
continue
fi
# Electrum devs are in charge of their dependencies
PROJECT_IS_ELECTRUM_DEP=1
grep "project: ${PROJECT}" ./projects/electrum-nmc/config > /dev/null || PROJECT_IS_ELECTRUM_DEP=0
if [ "$PROJECT_IS_ELECTRUM_DEP" = 1 ]
then
continue
fi
# x509-signature-splice branch depends on Go version, so it won't always be the latest
if [ "${PROJECT}" = "gox509signaturesplice" ]
then
continue
fi
# rbm showconf will fail for projects that don't have a git_hash variable,
# so we catch the failure and move on to the next project.
GIT_REV=$(./rbm/rbm showconf ${PROJECT} git_hash) || continue
VERSION=$(./rbm/rbm showconf ${PROJECT} version)
VERSION_IS_NUMBER=1
if (echo "${GIT_REV}" | grep "^${VERSION}")
then
# The version is a Git hash rather than a number.
VERSION_IS_NUMBER=0
fi
GIT_URL=$(./rbm/rbm showconf ${PROJECT} git_url)
REMOTE_TAGS=$(git ls-remote --tags "${GIT_URL}")
if [ "${REMOTE_TAGS}" = "" ] || [ "${VERSION_IS_NUMBER}" = 0 ]
then
# Either there are no tags on the remote Git repo, or this project does
# not use a tagged version. Use HEAD instead of a tag.
LATEST_TAG=HEAD
LATEST_TAG_HASH=$(git ls-remote "${GIT_URL}" HEAD | awk '{print $1}')
else
LATEST_TAG=$(git ls-remote --tags "${GIT_URL}" | grep -v '\^{}' | awk '{print $2}' | awk -F"/" '{print $3}' | sort -V | grep -v "weekly" | tail --lines=1)
# We use tail here because we want ${LATEST_TAG}^{} if it exists (it's
# the one that the GitHub UI shows).
LATEST_TAG_HASH=$(git ls-remote "${GIT_URL}" ${LATEST_TAG} ${LATEST_TAG}^{} | tail --lines=1 | awk '{print $1}')
fi
LATEST_INFO=$(git ls-remote "${GIT_URL}" HEAD ${LATEST_TAG} ${LATEST_TAG}^{})
PROJECT_UPDATE_NEEDED=0
echo "${LATEST_INFO}" | grep ${GIT_REV} > /dev/null || PROJECT_UPDATE_NEEDED=1
if [ "${PROJECT_UPDATE_NEEDED}" = 1 ]
then
UPDATE_NEEDED=1
echo "${PROJECT}: rbm uses ${GIT_REV}, latest at remote ${GIT_URL} are:
${LATEST_INFO}"
sed --in-place "s/${GIT_REV}/${LATEST_TAG_HASH}/g" "./projects/${PROJECT}/config"
if [ "${VERSION_IS_NUMBER}" = 1 ]
then
VERSION_STRIPPED=$(echo ${VERSION} | grep --only-matching -E '[0-9\.]+')
LATEST_VERSION_STRIPPED=$(echo ${LATEST_TAG} | grep --only-matching -E '[0-9\.]+')
sed --in-place "s/${VERSION_STRIPPED}/${LATEST_VERSION_STRIPPED}/g" "./projects/${PROJECT}/config"
fi
git add "./projects/${PROJECT}/config"
fi
done
# ncdns-nsis dependencies
# ncdns-nsis isn't merged yet.
if false
then
BIND_VERSION=$(./rbm/rbm showconf ncdns-nsis var/bind_version)
LATEST_BIND_VERSION=$(curl https://ftp.isc.org/isc/bind/ | grep --only-matching '"[0-9]*\.[0-9]*\.[0-9]*/"' | tail --lines=1 | grep --only-matching '[0-9]*\.[0-9]*\.[0-9]*')
if [ "${BIND_VERSION}" != "(${LATEST_BIND_VERSION})" ]
then
UPDATE_NEEDED=1
echo "BIND: ncdns-nsis uses ${BIND_VERSION}, latest tag is ${LATEST_BIND_VERSION}"
echo sed --in-place "s/${BIND_VERSION}/${LATEST_BIND_VERSION}/g" "./projects/ncdns-nsis/config"
git add "./projects/ncdns-nsis/config"
fi
CONSENSUSJ_VERSION=$(./rbm/rbm showconf ncdns-nsis var/consensusj_namecoin_version)
LATEST_CONSENSUSJ_VERSION=$(curl https://www.namecoin.org/download/betas/ | grep --only-matching 'ConsensusJ-Namecoin/[0-9\.]*' | tail --lines=1 | grep --only-matching '[0-9\.]*')
if [ "${CONSENSUSJ_VERSION}" != "(${LATEST_CONSENSUSJ_VERSION})" ]
then
UPDATE_NEEDED=1
echo "ConsensusJ: ncdns-nsis uses ${CONSENSUSJ_VERSION}, latest tag is ${LATEST_CONSENSUSJ_VERSION}"
echo sed --in-place "s/${CONSENSUSJ_VERSION}/${LATEST_CONSENSUSJ_VERSION}/g" "./projects/ncdns-nsis/config"
git add "./projects/ncdns-nsis/config"
fi
NAMECOIN_VERSION=$(./rbm/rbm showconf ncdns-nsis var/namecoin_core_version)
LATEST_NAMECOIN_VERSION=$(curl https://www.namecoin.org/download/ | grep --only-matching -E 'namecoin-core-[0-9\.]+' | head --lines=1 | grep --only-matching -E '[0-9\.]+')
if [ "${NAMECOIN_VERSION}" != "(${LATEST_NAMECOIN_VERSION})" ]
then
UPDATE_NEEDED=1
echo "Namecoin Core: ncdns-nsis uses ${NAMECOIN_VERSION}, latest tag is ${LATEST_NAMECOIN_VERSION}"
sed --in-place "s/${NAMECOIN_VERSION}/${LATEST_NAMECOIN_VERSION}/g" "./projects/ncdns-nsis/config"
git add "./projects/ncdns-nsis/config"
fi
DNSSEC_TRIGGER_VERSION=$(./rbm/rbm showconf ncdns-nsis var/dnssec_trigger_version)
LATEST_DNSSEC_TRIGGER_VERSION=$(curl https://www.nlnetlabs.nl/downloads/dnssec-trigger/ | grep --only-matching -E 'dnssec_trigger_setup_[0-9\.]+.exe' | tail --lines=1 | grep --only-matching -E '[0-9\.]+[0-9]')
if [ "${DNSSEC_TRIGGER_VERSION}" != "(${LATEST_DNSSEC_TRIGGER_VERSION})" ]
then
UPDATE_NEEDED=1
echo "DNSSEC-Trigger: ncdns-nsis uses ${DNSSEC_TRIGGER_VERSION}, latest tag is ${DNSSEC_TRIGGER_VERSION}"
echo sed --in-place "s/${DNSSEC_TRIGGER_VERSION}/${LATEST_DNSSEC_TRIGGER_VERSION}/g" "./projects/ncdns-nsis/config"
git add "./projects/ncdns-nsis/config"
fi
# ncdns-nsis
fi
# tor-browser-build submodule
# We do this step last so that if upstream tor-browser-build breaks things,
# we're already done invoking rbm.
GIT_TAG=$(git submodule status tor-browser-build | awk '{print $3}')
GIT_URL=https://git.torproject.org/builders/tor-browser-build.git
LATEST_TAG=$(git ls-remote --tags "${GIT_URL}" | grep 'tbb' | grep -v 'android' | grep -v '\^{}' | awk '{print $2}' | awk -F"/" '{print $3}' | grep 'a' | sort -V | tail --lines=1)
if [ "${GIT_TAG}" != "(${LATEST_TAG})" ]
then
UPDATE_NEEDED=1
echo "tor-browser-build: submodule uses ${GIT_TAG}, latest tag is ${LATEST_TAG}"
pushd tor-browser-build
# Undo any patches we did to tor-browser-build
git reset --hard HEAD
git clean -dfx
# Bump the tor-browser-build version
git fetch origin
git checkout "${LATEST_TAG}"
popd
git add "tor-browser-build"
fi
if [ "$UPDATE_NEEDED" = 1 ]
then
echo "An update is required."
(curl -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/${CIRRUS_REPO_FULL_NAME}/pulls?state=open&head=NamecoinBot:bump-deps" | grep -i "NamecoinBot:bump-deps") && (echo "A bump PR is already open; exiting."; exit 0)
echo "No bump PR is currently open; proceeding."
echo "Configuring username/email..."
git config user.name "NamecoinBot"
git config user.email "ncdns-repro-bump-bot@namecoin.org"
echo "Committing changes..."
git commit --message="Bump dependencies"
set +x
echo "Adding deploy key..."
mkdir -p ~/.ssh
touch ~/.ssh/id_ed25519
chmod 0600 ~/.ssh/id_ed25519
echo "${DEPLOY_KEY}" > ~/.ssh/id_ed25519
echo "Pinning GitHub SSH public key..."
echo '|1|x91VhqWighPtR2VjK37WcX5AUBM=|eLqicTE1vy85GxLqGTY1T2o3aTk= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==' >> ~/.ssh/known_hosts
echo "Adding deploy remote..."
git remote add deploy "git@github.com:NamecoinBot/ncdns-repro.git"
echo "Pushing branch..."
git push --force deploy bump-deps
fi
Loading…
Cancel
Save