openSUSE-release-tools/gocd/staging.bot.gocd.yaml.erb
Stephan Kulow f1c0d07f74 Use a temporary directory for staging plugin
This way we don't rely on installed plugin (to avoid the deployment
cycle) and we don't need to install into the real home of the go user
to avoid risking that a broken plugin breaks all future jobs of the
agent
2019-05-30 21:51:48 +02:00

90 lines
3.0 KiB
Plaintext

format_version: 3
pipelines:
<% %w(Factory Leap:15.1).each do |project| -%>
<% nickname = project.gsub(':', '.') -%>
AdiChecker.<%= nickname %>:
group: openSUSE.Checkers
lock_behavior: unlockWhenFinished
environment_variables:
OSC_CONFIG: /home/go/config/oscrc-repo-checker
materials:
script:
git: https://github.com/openSUSE/openSUSE-release-tools.git
destination: scripts
repos:
git: git://botmaster.suse.de/opensuse-repos.git
auto_update: true
whitelist:
- openSUSE:<%= project %>:Staging:adi*.yaml
destination: repos
stages:
- Run:
jobs:
Run:
resources:
- repo-checker
tasks:
- script: |-
./scripts/staging-installcheck.py -A https://api.opensuse.org -p openSUSE:<%= project %>
SBot.Regular.<%= nickname %>:
group: <%= nickname %>.pkglistgen
lock_behavior: unlockWhenFinished
timer:
spec: 0 0 * ? * *
environment_variables:
OSC_CONFIG: /home/go/config/oscrc-staging-bot
materials:
git:
git: https://github.com/openSUSE/openSUSE-release-tools.git
stages:
- Run:
approval:
type: manual
jobs:
Run:
timeout: 0
resources:
- staging-bot
tasks:
- script: |-
set -e
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
osc -A https://api.opensuse.org staging -p openSUSE:<%= project %> rebuild
osc -A https://api.opensuse.org staging -p openSUSE:<%= project %> list --supersede
osc -A https://api.opensuse.org staging -p openSUSE:<%= project %> adi --by-develproject
osc -A https://api.opensuse.org staging -p openSUSE:<%= project %> select --non-interactive --merge --try-strategies
osc -A https://api.opensuse.org staging -p openSUSE:<%= project %> unselect --cleanup
osc -A https://api.opensuse.org staging -p openSUSE:<%= project %> repair --cleanup
rm -rf $tempdir
<% end -%>
Project.Only:
group: openSUSE.Checkers
lock_behavior: unlockWhenFinished
timer:
spec: 0 0 * ? * *
only_on_changes: false
materials:
scripts:
git: https://github.com/openSUSE/openSUSE-release-tools.git
stages:
- Run:
approval:
type: manual
environment_variables:
OSC_CONFIG: /home/go/config/oscrc-repo-checker
jobs:
<% %w(openSUSE:Factory openSUSE:Leap:15.0:Update openSUSE:Leap:42.3:Update openSUSE:Leap:15.1:Update).each do |project| -%>
<%= project.gsub(':', '.') %>:
timeout: 0
resources:
- repo-checker
tasks:
- script: ./repo_checker.py -A https://api.opensuse.org --debug project_only --post-comments <%= project %>
<% end -%>