diff --git a/gocd/alp.target.gocd.yaml b/gocd/alp.target.gocd.yaml new file mode 100644 index 00000000..ac0d7f08 --- /dev/null +++ b/gocd/alp.target.gocd.yaml @@ -0,0 +1,225 @@ +format_version: 3 +pipelines: + Installer.Images: + group: ALP.Target + lock_behavior: unlockWhenFinished + materials: + repos: + git: git://botmaster.suse.de/suse-repos.git + auto_update: true + whitelist: + - SUSE:ALP:Products:Installer:1.0_-_images.yaml + destination: repos + scripts: + auto_update: true + git: https://github.com/openSUSE/openSUSE-release-tools.git + whitelist: + - DO_NOT_TRIGGER + destination: scripts + environment_variables: + OSC_CONFIG: /home/go/config/oscrc-staging-bot + stages: + - Expect.Images.To.Finish: + resources: + - staging-bot + tasks: + - script: | + export PYTHONPATH=scripts + set -e + ./scripts/gocd/verify-repo-built-successful.py -A https://api.suse.de -p SUSE:ALP:Products:Installer:1.0 -r images + + - Release.Images.To.Test: + approval: manual + roles: + - SLE + environment_variables: + OSC_CONFIG: /home/go/config/oscrc-totest-manager + resources: + - staging-bot + tasks: + - script: |- + osc -A https://api.suse.de release SUSE:ALP:Products:Installer:1.0 + sleep 600 + while (osc -A https://api.suse.de/ api "/build/SUSE:ALP:Products:Installer:1.0:ToTest/_result?view=summary&repository=images" | grep "result project" | grep -v 'code="published" state="published">'); do + echo PENDING + sleep 600 + done + osc -A https://api.suse.de/ api "/build/SUSE:ALP:Products:Installer:1.0:ToTest/_result?view=summary&repository=images" | grep "result project" | grep 'code="published" state="published">' && echo PUBLISHED + + - Release.Images.To.Publish: + approval: manual + roles: + - SLE + environment_variables: + OSC_CONFIG: /home/go/config/oscrc-totest-manager + resources: + - staging-bot + tasks: + - script: |- + osc -A https://api.suse.de release SUSE:ALP:Products:Installer:1.0:ToTest + sleep 600 + while (osc -A https://api.suse.de/ api "/build/SUSE:ALP:Products:Installer:1.0:PUBLISH/_result?view=summary&repository=images" | grep "result project" | grep -v 'code="published" state="published">'); do + echo PENDING + sleep 600 + done + osc -A https://api.suse.de/ api "/build/SUSE:ALP:Products:Installer:1.0:PUBLISH/_result?view=summary&repository=images" | grep "result project" | grep 'code="published" state="published">' && echo PUBLISHED + + Installer.Images.NEW: + group: ALP.Target + lock_behavior: unlockWhenFinished + materials: + repos: + git: git://botmaster.suse.de/suse-repos.git + auto_update: true + whitelist: + - SUSE:ALP:Products:Installer:1.0_-_images.yaml + destination: repos + scripts: + auto_update: true + git: https://github.com/openSUSE/openSUSE-release-tools.git + whitelist: + - DO_NOT_TRIGGER + destination: scripts + environment_variables: + OSC_CONFIG: /home/go/config/oscrc-staging-bot + stages: + - Expect.Images.To.Finish: + resources: + - staging-bot + tasks: + - script: | + export PYTHONPATH=scripts + set -e + ./scripts/gocd/verify-repo-built-successful.py -A https://api.suse.de -p SUSE:ALP:Products:Installer:1.0 -r images + + - Release.Images.To.Test: + approval: manual + roles: + - SLE + environment_variables: + OSC_CONFIG: /home/go/config/oscrc-totest-manager + JIRA_PAT: /home/go/config/jira-pat + JIRA_INSTANCE: /home/go/config/jira-instance + resources: + - staging-bot + tasks: + - script: |- + sle-prjmgr-tools --jira-instance $JIRA_INSTANCE --osc-config $OSC_CONFIG ibs_to_jira --jira-pat $JIRA_PAT -p SUSE:ALP:Products:Installer:1.0 + + - Release.Images.To.Publish: + approval: manual + roles: + - SLE + environment_variables: + OSC_CONFIG: /home/go/config/oscrc-totest-manager + resources: + - staging-bot + tasks: + - script: |- + osc -A https://api.suse.de release SUSE:ALP:Products:Installer:1.0:ToTest + sleep 600 + while (osc -A https://api.suse.de/ api "/build/SUSE:ALP:Products:Installer:1.0:PUBLISH/_result?view=summary&repository=images" | grep "result project" | grep -v 'code="published" state="published">'); do + echo PENDING + sleep 600 + done + osc -A https://api.suse.de/ api "/build/SUSE:ALP:Products:Installer:1.0:PUBLISH/_result?view=summary&repository=images" | grep "result project" | grep 'code="published" state="published">' && echo PUBLISHED + + Installer.ImagesManual: + group: ALP.Target + lock_behavior: unlockWhenFinished + materials: + repos: + git: git://botmaster.suse.de/suse-repos.git + auto_update: true + whitelist: + - SUSE:ALP:Products:Installer:1.0_-_images.yaml + destination: repos + scripts: + auto_update: true + git: https://github.com/openSUSE/openSUSE-release-tools.git + whitelist: + - DO_NOT_TRIGGER + destination: scripts + environment_variables: + OSC_CONFIG: /home/go/config/oscrc-staging-bot + stages: + - Relase.Images.To.Test: + approval: manual + roles: + - SLE + jobs: + Check.Images.Finish: + resources: + - staging-bot + tasks: + - script: | + export PYTHONPATH=scripts + while (! ./scripts/gocd/verify-repo-built-successful.py -A https://api.suse.de -p SUSE:ALP:Products:Installer:1.0 -r images); do + sleep 300 + done + Release.To.Test: + environment_variables: + OSC_CONFIG: /home/go/config/oscrc-totest-manager + resources: + - staging-bot + tasks: + - script: osc -A https://api.suse.de release SUSE:ALP:Products:Installer:1.0 + + - Release.Images.To.Publish: + approval: manual + roles: + - SLE + environment_variables: + OSC_CONFIG: /home/go/config/oscrc-totest-manager + resources: + - staging-bot + tasks: + - script: osc -A https://api.suse.de release SUSE:ALP:Products:Installer:1.0:ToTest + + Installer.ReleaseScc: + group: ALP.Target + parameters: + product: installer-1.0 + target: MyTarget + build: "0.0" + materials: + scripts: + auto_update: true + git: https://github.com/openSUSE/openSUSE-release-tools.git + whitelist: + - DO_NOT_TRIGGER + destination: scripts + stages: + # "ratt" is an alias for the internal IP of the API, only available on botmaster. + - Release.Images.Update: + approval: manual + roles: + - SLE + resources: + - staging-bot + tasks: + - script: curl --verbose --max-time 3600 "http://ratt:5000/update?product=#{product}&target=#{target}&build=#{build}" + - Release.Images.Rename: + approval: manual + roles: + - SLE + resources: + - staging-bot + tasks: + - script: curl --verbose --max-time 3600 "http://ratt:5000/rename?product=#{product}&target=#{target}" + - Release.Images.Sync: + approval: manual + roles: + - SLE + resources: + - staging-bot + tasks: + - script: curl --verbose --max-time 3600 "http://ratt:5000/sync?product=#{product}&target=#{target}" + - Release.Images.Release: + approval: manual + roles: + - SLE + resources: + - staging-bot + tasks: + - script: curl --verbose --max-time 3600 "http://ratt:5000/release?product=#{product}"