--- format_version: 3 pipelines: SUSE.SLFO.Main.Staging.Weekly.Freeze: environment_variables: SLFO_PROJECT: SUSE:SLFO:Main SLFO_RING_1_PROJECT: SUSE:SLFO:Main:Staging:Rings:1-MinimalX STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.Stagings lock_behavior: unlockWhenFinished timer: spec: "0 0 0-23 ? * SUN" materials: scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER stages: - Check.Ring.1.Finished: timeout: 50 resources: - staging-bot tasks: - script: |- set -eu status="$(osc -A $STAGING_API api /build/$SLFO_RING_1_PROJECT/standard/x86_64?view=status | grep 'code=' | sed -E 's/^.*code="(.*)".*$/\1/')" echo $SLFO_RING_1_PROJECT status: "${status}" if printf '%s' "${status}" | grep -q finished; then exit 0 else exit 1 fi - Freeze.stagings: ## 6 hours (at most 30 minutes per staging) timeout: 360 resources: - staging-bot tasks: - script: |- set -eu export PYTHONPATH=$PWD ## Setup osc staging plugin tempdir=$(mktemp -d) mkdir -p $tempdir/.osc-plugins ln -s $PWD/osc-staging.py $tempdir/.osc-plugins ln -s $PWD/osclib $tempdir/.osc-plugins export HOME=$tempdir for letter in A B C D E F G H S V Y ; do ## if the staging was frozen today, skip it if ! osc -A $STAGING_API meta attribute "${SLFO_PROJECT}:Staging:${letter}" --attribute OSRT:FreezeTime | grep $(date +%Y-%m-%d); then osc -A $STAGING_API staging freeze -p $SLFO_PROJECT $letter else echo "${SLFO_PROJECT}:Staging:${letter}" was frozen today, skipping it... fi done ## Tear down osc staging plugin rm -rf $tempdir SUSE.SLFO.Main.Staging.A: environment_variables: STAGING_PROJECT: SUSE:SLFO:Main:Staging:A STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:Main:Staging:A_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLFO:Main -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success SUSE.SLFO.Main.Staging.B: environment_variables: STAGING_PROJECT: SUSE:SLFO:Main:Staging:B STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:Main:Staging:B_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLFO:Main -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success SUSE.SLFO.Main.Staging.C: environment_variables: STAGING_PROJECT: SUSE:SLFO:Main:Staging:C STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:Main:Staging:C_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLFO:Main -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success SUSE.SLFO.Main.Staging.D: environment_variables: STAGING_PROJECT: SUSE:SLFO:Main:Staging:D STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:Main:Staging:D_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLFO:Main -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success SUSE.SLFO.Main.Staging.E: environment_variables: STAGING_PROJECT: SUSE:SLFO:Main:Staging:E STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:Main:Staging:E_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLFO:Main -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success SUSE.SLFO.Main.Staging.F: environment_variables: STAGING_PROJECT: SUSE:SLFO:Main:Staging:F STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:Main:Staging:F_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLFO:Main -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success SUSE.SLFO.Main.Staging.G: environment_variables: STAGING_PROJECT: SUSE:SLFO:Main:Staging:G STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:Main:Staging:G_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLFO:Main -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success SUSE.SLFO.Main.Staging.H: environment_variables: STAGING_PROJECT: SUSE:SLFO:Main:Staging:H STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:Main:Staging:H_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLFO:Main -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success SUSE.SLFO.Main.Staging.S: environment_variables: STAGING_PROJECT: SUSE:SLFO:Main:Staging:S STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:Main:Staging:S_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLFO:Main -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success SUSE.SLFO.Main.Staging.V: environment_variables: STAGING_PROJECT: SUSE:SLFO:Main:Staging:V STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:Main:Staging:V_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLFO:Main -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success SUSE.SLFO.Main.Staging.Y: environment_variables: STAGING_PROJECT: SUSE:SLFO:Main:Staging:Y STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:Main:Staging:Y_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLFO:Main -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success SUSE.SLFO.1.1.Staging.Weekly.Freeze: environment_variables: SLFO_1_1_PROJECT: SUSE:SLFO:1.1 SLFO_1_1_RING_1_PROJECT: SUSE:SLFO:1.1:Staging:Rings:1-MinimalX STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.1.1.Stagings lock_behavior: unlockWhenFinished timer: spec: "0 0 0-23 ? * SUN" materials: scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER stages: - Check.Ring.1.Finished: timeout: 50 resources: - staging-bot tasks: - script: |- set -eu status="$(osc -A $STAGING_API api /build/$SLFO_1_1_RING_1_PROJECT/standard/x86_64?view=status | grep 'code=' | sed -E 's/^.*code="(.*)".*$/\1/')" echo $SLFO_1_1_RING_1_PROJECT status: "${status}" if printf '%s' "${status}" | grep -q finished; then exit 0 else exit 1 fi - Freeze.stagings: ## 6 hours (at most 30 minutes per staging) timeout: 360 resources: - staging-bot tasks: - script: |- set -eu export PYTHONPATH=$PWD ## Setup osc staging plugin tempdir=$(mktemp -d) mkdir -p $tempdir/.osc-plugins ln -s $PWD/osc-staging.py $tempdir/.osc-plugins ln -s $PWD/osclib $tempdir/.osc-plugins export HOME=$tempdir for letter in A B C D E F G H S V Y ; do ## if the staging was frozen today, skip it if ! osc -A $STAGING_API meta attribute "${SLFO_1_1_PROJECT}:Staging:${letter}" --attribute OSRT:FreezeTime | grep $(date +%Y-%m-%d); then osc -A $STAGING_API staging freeze -p $SLFO_1_1_PROJECT $letter else echo "${SLFO_1_1_PROJECT}:Staging:${letter}" was frozen today, skipping it... fi done ## Tear down osc staging plugin rm -rf $tempdir SUSE.SLFO.1.1.Staging.A: environment_variables: SLFO_1_1_PROJECT: SUSE:SLFO:1.1 STAGING_PROJECT: SUSE:SLFO:1.1:Staging:A STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.1.1.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:1.1:Staging:A_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p $SLFO_1_1_PROJECT -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success SUSE.SLFO.1.1.Staging.B: environment_variables: SLFO_1_1_PROJECT: SUSE:SLFO:1.1 STAGING_PROJECT: SUSE:SLFO:1.1:Staging:B STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.1.1.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:1.1:Staging:B_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p $SLFO_1_1_PROJECT -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success SUSE.SLFO.1.1.Staging.C: environment_variables: SLFO_1_1_PROJECT: SUSE:SLFO:1.1 STAGING_PROJECT: SUSE:SLFO:1.1:Staging:C STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.1.1.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:1.1:Staging:C_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p $SLFO_1_1_PROJECT -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success SUSE.SLFO.1.1.Staging.D: environment_variables: SLFO_1_1_PROJECT: SUSE:SLFO:1.1 STAGING_PROJECT: SUSE:SLFO:1.1:Staging:D STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.1.1.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:1.1:Staging:D_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p $SLFO_1_1_PROJECT -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success SUSE.SLFO.1.1.Staging.E: environment_variables: SLFO_1_1_PROJECT: SUSE:SLFO:1.1 STAGING_PROJECT: SUSE:SLFO:1.1:Staging:E STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.1.1.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:1.1:Staging:E_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p $SLFO_1_1_PROJECT -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success SUSE.SLFO.1.1.Staging.F: environment_variables: SLFO_1_1_PROJECT: SUSE:SLFO:1.1 STAGING_PROJECT: SUSE:SLFO:1.1:Staging:F STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.1.1.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:1.1:Staging:F_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p $SLFO_1_1_PROJECT -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success SUSE.SLFO.1.1.Staging.G: environment_variables: SLFO_1_1_PROJECT: SUSE:SLFO:1.1 STAGING_PROJECT: SUSE:SLFO:1.1:Staging:G STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.1.1.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:1.1:Staging:G_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p $SLFO_1_1_PROJECT -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success SUSE.SLFO.1.1.Staging.H: environment_variables: SLFO_1_1_PROJECT: SUSE:SLFO:1.1 STAGING_PROJECT: SUSE:SLFO:1.1:Staging:H STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.1.1.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:1.1:Staging:H_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p $SLFO_1_1_PROJECT -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success SUSE.SLFO.1.1.Staging.S: environment_variables: SLFO_1_1_PROJECT: SUSE:SLFO:1.1 STAGING_PROJECT: SUSE:SLFO:1.1:Staging:S STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.1.1.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:1.1:Staging:S_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p $SLFO_1_1_PROJECT -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success SUSE.SLFO.1.1.Staging.V: environment_variables: SLFO_1_1_PROJECT: SUSE:SLFO:1.1 STAGING_PROJECT: SUSE:SLFO:1.1:Staging:V STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.1.1.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:1.1:Staging:V_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p $SLFO_1_1_PROJECT -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success SUSE.SLFO.1.1.Staging.Y: environment_variables: SLFO_1_1_PROJECT: SUSE:SLFO:1.1 STAGING_PROJECT: SUSE:SLFO:1.1:Staging:Y STAGING_API: https://api.suse.de OSC_CONFIG: /home/go/config/oscrc-staging-bot group: SLFO.1.1.Stagings lock_behavior: unlockWhenFinished materials: stagings: git: git://botmaster.suse.de/suse-repos.git auto_update: true destination: repos whitelist: - SUSE:SLFO:1.1:Staging:Y_-_standard.yaml scripts: auto_update: true git: https://github.com/openSUSE/openSUSE-release-tools.git whitelist: - DO_NOT_TRIGGER destination: scripts stages: - Checks: jobs: Check.Build.Succeeds: resources: - staging-bot tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s pending ./verify-repo-built-successful.py -A $STAGING_API -p $STAGING_PROJECT -r standard Repo.Checker: environment_variables: OSC_CONFIG: /home/go/config/oscrc-staging-bot resources: - repo-checker tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p $SLFO_1_1_PROJECT -s $STAGING_PROJECT - Update.000product: resources: - repo-checker tasks: - script: |- export PYTHONPATH=$PWD/scripts cd scripts/gocd if ../pkglistgen.py --debug -A $STAGING_API update_and_solve --engine product_composer --staging $STAGING_PROJECT --force; then ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else ./report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure exit 1 fi - Build.product: timeout: 180 resources: - staging-bot tasks: - script: |- minutes=1 osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=product&flag=build" export PYTHONPATH=$PWD/scripts ## Let the scheduler warm up first sleep 60 while osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -E 'statuscount code="(blocked|scheduled|building)"'; do if [ ${minutes} -gt 180 ]; then echo "Product is still building after timeout, exiting..." >&2 exit 1 fi sleep 60 minutes=$(expr $minutes + 1) done ## Always fail on broken/failed products if osc -A $STAGING_API api -X GET "/build/$STAGING_PROJECT/_result?view=summary&repository=product&arch=local" | grep -qE 'statuscount code="(broken|failed)"'; then echo "Some products failed to build, exiting..." >&2 exit 1 fi - Enable.images.repo: resources: - staging-bot tasks: - script: |- osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" export PYTHONPATH=$PWD/scripts while osc -A $STAGING_API api "/build/$STAGING_PROJECT/_result?view=summary&repository=images" | grep 'dirty=.true.'; do sleep 60 done ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n images:enabled -r standard -s success