releases/tools/list_eol_stale_branches.sh
Hervé Beraud 003eb35717 Adding a tool to track project who need to drop eol branches
Since transition from the EOL model to the EM model eol branches
are no longer removed and this step is no longer in the release team
process.

Keep stale branches can be an issue in some situation especially with
zuul and our gates. To avoid this situation the release team propose
to reintroduce regular checks to ensure that we remove stale branches
that have been tagged eol previously.

As discussed during our previous meetings soon it will be possible to design
a new job and to trigger it to remove eol branches automatically.
This will possible when the infra would have been updated and when all
the needed pieces will be in place.

Change-Id: I53aeb3211bb3251a3278472a514a39afe825cdd2
2020-11-12 10:57:39 +00:00

80 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
# Extended Maintenance was introduced during Queens
# All the following cycle under EM should be added there.
function help {
# Display helping message
cat <<EOF
usage: $0 [<args>]
Provide a list of repositories that contains eol stale branches
Arguments:
-d, --debug Turn on the debug mode
-h, --help show this help message and exit
examples:
$(basename $0)
EOF
}
for i in "$@"; do
case $i in
# Turn on the debug mode
-d|--debug)
set -x
shift 1
;;
# Display the helping message
-h|--help)
help
exit 0
;;
esac
done
TOOLSDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
BASEDIR=$(dirname $TOOLSDIR)
source $TOOLSDIR/functions
enable_tox_venv
em_series=($(list-em-series))
# Make sure no pager is configured so the output is not blocked
export PAGER=
setup_temp_space 'list-eol-stale-branches'
branch=$(series_to_branch "$series")
function is_eol {
clone_repo ${repo} stable/${em_serie}
if [[ $? -eq 0 ]]; then
echo "${repo} contains eol stale branch (${em_serie})"
fi
}
for em_serie in "${em_series[@]}"; do
repos=$(list-deliverables -r --series "${em_serie}" --is-eol)
# Show the eol stale branches for each repository.
for repo in ${repos}; do
cd ${MYTMPDIR}
echo
is_eol "${repo}" "${em_serie}"
done
done