Merge pull request #3111 from g7/slfo-staging-do-not-endless-wait
slfo-stagings: add a timeout for Build.product, and do not run if repo is missing
This commit is contained in:
commit
9b466e63a5
@ -59,13 +59,18 @@ pipelines:
|
||||
fi
|
||||
|
||||
- Build.product:
|
||||
timeout: 180
|
||||
resources:
|
||||
- staging-bot
|
||||
tasks:
|
||||
- script: |-
|
||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||
export PYTHONPATH=$PWD/scripts
|
||||
while ! ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; do
|
||||
while ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; ret=$?; [ ${ret} -ne 0 ]; do
|
||||
if [ ${ret} -eq 2 ]; then
|
||||
echo "product repository not found. Project configuration issue?" >&2
|
||||
exit 1
|
||||
fi
|
||||
sleep 60
|
||||
done
|
||||
|
||||
@ -138,13 +143,18 @@ pipelines:
|
||||
fi
|
||||
|
||||
- Build.product:
|
||||
timeout: 180
|
||||
resources:
|
||||
- staging-bot
|
||||
tasks:
|
||||
- script: |-
|
||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||
export PYTHONPATH=$PWD/scripts
|
||||
while ! ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; do
|
||||
while ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; ret=$?; [ ${ret} -ne 0 ]; do
|
||||
if [ ${ret} -eq 2 ]; then
|
||||
echo "product repository not found. Project configuration issue?" >&2
|
||||
exit 1
|
||||
fi
|
||||
sleep 60
|
||||
done
|
||||
|
||||
@ -217,13 +227,18 @@ pipelines:
|
||||
fi
|
||||
|
||||
- Build.product:
|
||||
timeout: 180
|
||||
resources:
|
||||
- staging-bot
|
||||
tasks:
|
||||
- script: |-
|
||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||
export PYTHONPATH=$PWD/scripts
|
||||
while ! ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; do
|
||||
while ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; ret=$?; [ ${ret} -ne 0 ]; do
|
||||
if [ ${ret} -eq 2 ]; then
|
||||
echo "product repository not found. Project configuration issue?" >&2
|
||||
exit 1
|
||||
fi
|
||||
sleep 60
|
||||
done
|
||||
|
||||
@ -296,13 +311,18 @@ pipelines:
|
||||
fi
|
||||
|
||||
- Build.product:
|
||||
timeout: 180
|
||||
resources:
|
||||
- staging-bot
|
||||
tasks:
|
||||
- script: |-
|
||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||
export PYTHONPATH=$PWD/scripts
|
||||
while ! ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; do
|
||||
while ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; ret=$?; [ ${ret} -ne 0 ]; do
|
||||
if [ ${ret} -eq 2 ]; then
|
||||
echo "product repository not found. Project configuration issue?" >&2
|
||||
exit 1
|
||||
fi
|
||||
sleep 60
|
||||
done
|
||||
|
||||
@ -375,13 +395,18 @@ pipelines:
|
||||
fi
|
||||
|
||||
- Build.product:
|
||||
timeout: 180
|
||||
resources:
|
||||
- staging-bot
|
||||
tasks:
|
||||
- script: |-
|
||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||
export PYTHONPATH=$PWD/scripts
|
||||
while ! ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; do
|
||||
while ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; ret=$?; [ ${ret} -ne 0 ]; do
|
||||
if [ ${ret} -eq 2 ]; then
|
||||
echo "product repository not found. Project configuration issue?" >&2
|
||||
exit 1
|
||||
fi
|
||||
sleep 60
|
||||
done
|
||||
|
||||
@ -454,13 +479,18 @@ pipelines:
|
||||
fi
|
||||
|
||||
- Build.product:
|
||||
timeout: 180
|
||||
resources:
|
||||
- staging-bot
|
||||
tasks:
|
||||
- script: |-
|
||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||
export PYTHONPATH=$PWD/scripts
|
||||
while ! ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; do
|
||||
while ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; ret=$?; [ ${ret} -ne 0 ]; do
|
||||
if [ ${ret} -eq 2 ]; then
|
||||
echo "product repository not found. Project configuration issue?" >&2
|
||||
exit 1
|
||||
fi
|
||||
sleep 60
|
||||
done
|
||||
|
||||
@ -533,13 +563,18 @@ pipelines:
|
||||
fi
|
||||
|
||||
- Build.product:
|
||||
timeout: 180
|
||||
resources:
|
||||
- staging-bot
|
||||
tasks:
|
||||
- script: |-
|
||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||
export PYTHONPATH=$PWD/scripts
|
||||
while ! ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; do
|
||||
while ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; ret=$?; [ ${ret} -ne 0 ]; do
|
||||
if [ ${ret} -eq 2 ]; then
|
||||
echo "product repository not found. Project configuration issue?" >&2
|
||||
exit 1
|
||||
fi
|
||||
sleep 60
|
||||
done
|
||||
|
||||
@ -612,13 +647,18 @@ pipelines:
|
||||
fi
|
||||
|
||||
- Build.product:
|
||||
timeout: 180
|
||||
resources:
|
||||
- staging-bot
|
||||
tasks:
|
||||
- script: |-
|
||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||
export PYTHONPATH=$PWD/scripts
|
||||
while ! ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; do
|
||||
while ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; ret=$?; [ ${ret} -ne 0 ]; do
|
||||
if [ ${ret} -eq 2 ]; then
|
||||
echo "product repository not found. Project configuration issue?" >&2
|
||||
exit 1
|
||||
fi
|
||||
sleep 60
|
||||
done
|
||||
|
||||
@ -691,13 +731,18 @@ pipelines:
|
||||
fi
|
||||
|
||||
- Build.product:
|
||||
timeout: 180
|
||||
resources:
|
||||
- staging-bot
|
||||
tasks:
|
||||
- script: |-
|
||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||
export PYTHONPATH=$PWD/scripts
|
||||
while ! ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; do
|
||||
while ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; ret=$?; [ ${ret} -ne 0 ]; do
|
||||
if [ ${ret} -eq 2 ]; then
|
||||
echo "product repository not found. Project configuration issue?" >&2
|
||||
exit 1
|
||||
fi
|
||||
sleep 60
|
||||
done
|
||||
|
||||
@ -770,13 +815,18 @@ pipelines:
|
||||
fi
|
||||
|
||||
- Build.product:
|
||||
timeout: 180
|
||||
resources:
|
||||
- staging-bot
|
||||
tasks:
|
||||
- script: |-
|
||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||
export PYTHONPATH=$PWD/scripts
|
||||
while ! ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; do
|
||||
while ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; ret=$?; [ ${ret} -ne 0 ]; do
|
||||
if [ ${ret} -eq 2 ]; then
|
||||
echo "product repository not found. Project configuration issue?" >&2
|
||||
exit 1
|
||||
fi
|
||||
sleep 60
|
||||
done
|
||||
|
||||
@ -849,13 +899,18 @@ pipelines:
|
||||
fi
|
||||
|
||||
- Build.product:
|
||||
timeout: 180
|
||||
resources:
|
||||
- staging-bot
|
||||
tasks:
|
||||
- script: |-
|
||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||
export PYTHONPATH=$PWD/scripts
|
||||
while ! ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; do
|
||||
while ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; ret=$?; [ ${ret} -ne 0 ]; do
|
||||
if [ ${ret} -eq 2 ]; then
|
||||
echo "product repository not found. Project configuration issue?" >&2
|
||||
exit 1
|
||||
fi
|
||||
sleep 60
|
||||
done
|
||||
|
||||
|
@ -60,13 +60,18 @@ pipelines:
|
||||
fi
|
||||
|
||||
- Build.product:
|
||||
timeout: 180
|
||||
resources:
|
||||
- staging-bot
|
||||
tasks:
|
||||
- script: |-
|
||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||
export PYTHONPATH=$PWD/scripts
|
||||
while ! ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; do
|
||||
while ./scripts/gocd/verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r product; ret=$?; [ ${ret} -ne 0 ]; do
|
||||
if [ ${ret} -eq 2 ]; then
|
||||
echo "product repository not found. Project configuration issue?" >&2
|
||||
exit 1
|
||||
fi
|
||||
sleep 60
|
||||
done
|
||||
|
||||
|
@ -14,9 +14,10 @@ from lxml import etree as ET
|
||||
if __name__ == '__main__':
|
||||
parser = argparse.ArgumentParser(description='Check if all packages built fine')
|
||||
parser.add_argument('--apiurl', '-A', type=str, help='API URL of OBS')
|
||||
parser.add_argument('-p', '--project', type=str, help='Project to check')
|
||||
parser.add_argument('-p', '--project', type=str, help='Project to check',
|
||||
required=True)
|
||||
parser.add_argument('-r', '--repository', type=str,
|
||||
help='Repository to check')
|
||||
help='Repository to check', required=True)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
@ -26,7 +27,14 @@ if __name__ == '__main__':
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# first check if repo is finished
|
||||
# first check if repo is available
|
||||
url = makeurl(apiurl, ['source', args.project, "_meta"])
|
||||
root = ET.parse(http_GET(url)).getroot()
|
||||
if not root.xpath(f'repository[@name="{args.repository}"]'):
|
||||
logger.error(f'Repository {args.repository} is not available in {args.project}')
|
||||
sys.exit(2)
|
||||
|
||||
# then check if repo is finished
|
||||
archs = target_archs(apiurl, args.project, args.repository)
|
||||
for arch in archs:
|
||||
url = makeurl(apiurl, ['build', args.project, args.repository, arch], {'view': 'status'})
|
||||
|
Loading…
x
Reference in New Issue
Block a user