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
|
fi
|
||||||
|
|
||||||
- Build.product:
|
- Build.product:
|
||||||
|
timeout: 180
|
||||||
resources:
|
resources:
|
||||||
- staging-bot
|
- staging-bot
|
||||||
tasks:
|
tasks:
|
||||||
- script: |-
|
- script: |-
|
||||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||||
export PYTHONPATH=$PWD/scripts
|
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
|
sleep 60
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -138,13 +143,18 @@ pipelines:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- Build.product:
|
- Build.product:
|
||||||
|
timeout: 180
|
||||||
resources:
|
resources:
|
||||||
- staging-bot
|
- staging-bot
|
||||||
tasks:
|
tasks:
|
||||||
- script: |-
|
- script: |-
|
||||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||||
export PYTHONPATH=$PWD/scripts
|
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
|
sleep 60
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -217,13 +227,18 @@ pipelines:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- Build.product:
|
- Build.product:
|
||||||
|
timeout: 180
|
||||||
resources:
|
resources:
|
||||||
- staging-bot
|
- staging-bot
|
||||||
tasks:
|
tasks:
|
||||||
- script: |-
|
- script: |-
|
||||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||||
export PYTHONPATH=$PWD/scripts
|
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
|
sleep 60
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -296,13 +311,18 @@ pipelines:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- Build.product:
|
- Build.product:
|
||||||
|
timeout: 180
|
||||||
resources:
|
resources:
|
||||||
- staging-bot
|
- staging-bot
|
||||||
tasks:
|
tasks:
|
||||||
- script: |-
|
- script: |-
|
||||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||||
export PYTHONPATH=$PWD/scripts
|
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
|
sleep 60
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -375,13 +395,18 @@ pipelines:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- Build.product:
|
- Build.product:
|
||||||
|
timeout: 180
|
||||||
resources:
|
resources:
|
||||||
- staging-bot
|
- staging-bot
|
||||||
tasks:
|
tasks:
|
||||||
- script: |-
|
- script: |-
|
||||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||||
export PYTHONPATH=$PWD/scripts
|
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
|
sleep 60
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -454,13 +479,18 @@ pipelines:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- Build.product:
|
- Build.product:
|
||||||
|
timeout: 180
|
||||||
resources:
|
resources:
|
||||||
- staging-bot
|
- staging-bot
|
||||||
tasks:
|
tasks:
|
||||||
- script: |-
|
- script: |-
|
||||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||||
export PYTHONPATH=$PWD/scripts
|
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
|
sleep 60
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -533,13 +563,18 @@ pipelines:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- Build.product:
|
- Build.product:
|
||||||
|
timeout: 180
|
||||||
resources:
|
resources:
|
||||||
- staging-bot
|
- staging-bot
|
||||||
tasks:
|
tasks:
|
||||||
- script: |-
|
- script: |-
|
||||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||||
export PYTHONPATH=$PWD/scripts
|
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
|
sleep 60
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -612,13 +647,18 @@ pipelines:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- Build.product:
|
- Build.product:
|
||||||
|
timeout: 180
|
||||||
resources:
|
resources:
|
||||||
- staging-bot
|
- staging-bot
|
||||||
tasks:
|
tasks:
|
||||||
- script: |-
|
- script: |-
|
||||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||||
export PYTHONPATH=$PWD/scripts
|
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
|
sleep 60
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -691,13 +731,18 @@ pipelines:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- Build.product:
|
- Build.product:
|
||||||
|
timeout: 180
|
||||||
resources:
|
resources:
|
||||||
- staging-bot
|
- staging-bot
|
||||||
tasks:
|
tasks:
|
||||||
- script: |-
|
- script: |-
|
||||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||||
export PYTHONPATH=$PWD/scripts
|
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
|
sleep 60
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -770,13 +815,18 @@ pipelines:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- Build.product:
|
- Build.product:
|
||||||
|
timeout: 180
|
||||||
resources:
|
resources:
|
||||||
- staging-bot
|
- staging-bot
|
||||||
tasks:
|
tasks:
|
||||||
- script: |-
|
- script: |-
|
||||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||||
export PYTHONPATH=$PWD/scripts
|
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
|
sleep 60
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -849,13 +899,18 @@ pipelines:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- Build.product:
|
- Build.product:
|
||||||
|
timeout: 180
|
||||||
resources:
|
resources:
|
||||||
- staging-bot
|
- staging-bot
|
||||||
tasks:
|
tasks:
|
||||||
- script: |-
|
- script: |-
|
||||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||||
export PYTHONPATH=$PWD/scripts
|
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
|
sleep 60
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -60,13 +60,18 @@ pipelines:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- Build.product:
|
- Build.product:
|
||||||
|
timeout: 180
|
||||||
resources:
|
resources:
|
||||||
- staging-bot
|
- staging-bot
|
||||||
tasks:
|
tasks:
|
||||||
- script: |-
|
- script: |-
|
||||||
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build"
|
||||||
export PYTHONPATH=$PWD/scripts
|
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
|
sleep 60
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -14,9 +14,10 @@ from lxml import etree as ET
|
|||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = argparse.ArgumentParser(description='Check if all packages built fine')
|
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('--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,
|
parser.add_argument('-r', '--repository', type=str,
|
||||||
help='Repository to check')
|
help='Repository to check', required=True)
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
@ -26,7 +27,14 @@ if __name__ == '__main__':
|
|||||||
logging.basicConfig(level=logging.DEBUG)
|
logging.basicConfig(level=logging.DEBUG)
|
||||||
logger = logging.getLogger(__name__)
|
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)
|
archs = target_archs(apiurl, args.project, args.repository)
|
||||||
for arch in archs:
|
for arch in archs:
|
||||||
url = makeurl(apiurl, ['build', args.project, args.repository, arch], {'view': 'status'})
|
url = makeurl(apiurl, ['build', args.project, args.repository, arch], {'view': 'status'})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user