diff --git a/.coveragerc b/.coveragerc index 588e83af..0017a28a 100644 --- a/.coveragerc +++ b/.coveragerc @@ -1,4 +1,4 @@ [report] omit = - */site-packages/* - tests/*.py + */site-packages/* + tests/*.py diff --git a/.ecrc b/.ecrc new file mode 100644 index 00000000..7066ed6e --- /dev/null +++ b/.ecrc @@ -0,0 +1,14 @@ +{ + "Verbose": false, + "IgnoreDefaults": false, + "Exclude": ["tests/fixtures", "LICENSE", "\\.py$", "bs_copy"], + "SpacesAfterTabs": true, + "Disable": { + "EndOfLine": false, + "Indentation": false, + "IndentSize": false, + "InsertFinalNewline": false, + "TrimTrailingWhitespace": false, + "MaxLineLength": false + } +} diff --git a/.editorconfig b/.editorconfig index ac5c6330..a1728e09 100644 --- a/.editorconfig +++ b/.editorconfig @@ -27,3 +27,18 @@ indent_style = tab [**.{pl,py}] indent_style = space indent_size = 4 + +[staging_templates/create_new_staging] +indent_style = tab + +[publish_distro_conf/*.config] +indent_style = tab + +[osc-staging-workflow.dot] +indent_size = 3 + +[factory-package-news/rsyslog/factory-package-news.conf] +indent_style = tab + +[data/repos.json] +indent_size = 3 diff --git a/.github/workflows/ci-test.yml b/.github/workflows/ci-test.yml index 1b09f5ed..07799dba 100644 --- a/.github/workflows/ci-test.yml +++ b/.github/workflows/ci-test.yml @@ -27,11 +27,11 @@ jobs: - name: Run tests run: docker-compose -f dist/ci/docker-compose.yml run test env: - # Specifies how many jobs you would like to run in parallel, - # used for partitioning - CI_NODE_TOTAL: ${{ matrix.ci_node_total }} - # Use the index from matrix as an environment variable - CI_NODE_INDEX: ${{ matrix.ci_node_index }} + # Specifies how many jobs you would like to run in parallel, + # used for partitioning + CI_NODE_TOTAL: ${{ matrix.ci_node_total }} + # Use the index from matrix as an environment variable + CI_NODE_INDEX: ${{ matrix.ci_node_index }} - name: Submit coverage report to Codecov uses: codecov/codecov-action@v1.5.2 diff --git a/.github/workflows/editorconfig-check.yml b/.github/workflows/editorconfig-check.yml new file mode 100644 index 00000000..32854c15 --- /dev/null +++ b/.github/workflows/editorconfig-check.yml @@ -0,0 +1,14 @@ +name: EditorConfig Checker + +on: + pull_request: + branches: + - master + +jobs: + editorconfig: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + - uses: editorconfig-checker/action-editorconfig-checker@main + - run: editorconfig-checker diff --git a/CONTENTS.md b/CONTENTS.md index c70c4e34..7730bcf6 100644 --- a/CONTENTS.md +++ b/CONTENTS.md @@ -35,7 +35,7 @@ incomplete. ### Command Line Tools - Usually, the executables are renamed as `osrt-NAME` (e.g., `osrt-announcer`). +Usually, the executables are renamed as `osrt-NAME` (e.g., `osrt-announcer`). #### announcer diff --git a/README.md b/README.md index 4f9cb9fd..e2dc7f81 100644 --- a/README.md +++ b/README.md @@ -142,7 +142,7 @@ def test_basic(self): # Keep the workflow in local scope so that ending the test case will destroy it. # Destroying the workflow will also delete all created projects and packages. The # created workflow has a target project, but most of the test assets need to be created - # as needed + # as needed wf = OBSLocal.FactoryWorkflow() staging = wf.create_staging('A', freeze=True) wf.create_submit_request('devel:wine', 'wine') @@ -186,4 +186,4 @@ Note that we have some (older) test cases using httpretty, but those are very sp call that osc libraries or our code do, will require changes in your test case. It can still be a viable option, especially if more than OBS is involved. The method that you can combine with `OBSLocal` though is using MagicMock. This class is used to mock individual functions. So splitting the code to use helper functions to retrieve information and then -mocking this inside the test case can be a good alternative to mocking the complete HTTP traffic. \ No newline at end of file +mocking this inside the test case can be a good alternative to mocking the complete HTTP traffic. diff --git a/abichecker/templates/layout.html b/abichecker/templates/layout.html index 78df2806..91006517 100644 --- a/abichecker/templates/layout.html +++ b/abichecker/templates/layout.html @@ -1,8 +1,8 @@ {% block head %} - {% block title %}{% endblock %} - - + {% block title %}{% endblock %} + + {% endblock %} {% for message in get_flashed_messages() %} diff --git a/dashboard/templates/dashboard.html b/dashboard/templates/dashboard.html index fefda3be..1293dc20 100644 --- a/dashboard/templates/dashboard.html +++ b/dashboard/templates/dashboard.html @@ -74,37 +74,37 @@ {% endif %} - {% if project.ttm_version %} - {{ project.ttm_version }} - {% else %} - n.a. - {% endif %} + {% if project.ttm_version %} + {{ project.ttm_version }} + {% else %} + n.a. + {% endif %} - {% set ttm_testing = project.ttm_status.get('testing') %} - {% if ttm_testing %} - {% if project.openqa_version %} - {{ ttm_testing }} - {% else %} - {{ ttm_testing }} - {% endif %} - {% else %} - n.a. - {% endif %} - - - {% set ttm_published = project.ttm_status.get('published', None) %} - {% if ttm_published %} - {{ ttm_published }} + {% set ttm_testing = project.ttm_status.get('testing') %} + {% if ttm_testing %} + {% if project.openqa_version %} + {{ ttm_testing }} {% else %} - n.a. - {% endif %} + {{ ttm_testing }} + {% endif %} + {% else %} + n.a. + {% endif %} - {% set openqa_summary = project.openqa_summary() %} - {% for state in openqa_summary.keys() %} - {{ state }}: {{ openqa_summary[state]|length }} - {% endfor %} + {% set ttm_published = project.ttm_status.get('published', None) %} + {% if ttm_published %} + {{ ttm_published }} + {% else %} + n.a. + {% endif %} + + + {% set openqa_summary = project.openqa_summary() %} + {% for state in openqa_summary.keys() %} + {{ state }}: {{ openqa_summary[state]|length }} + {% endfor %} {% endfor %} diff --git a/dashboard/templates/repository.html b/dashboard/templates/repository.html index 4965a297..ef6f5477 100644 --- a/dashboard/templates/repository.html +++ b/dashboard/templates/repository.html @@ -15,5 +15,5 @@ , {{ progress['unresolvable'] }} unresolvable {% endif %} {% else %} - n.a. + n.a. {% endif %} diff --git a/data/incidents.json b/data/incidents.json index 63b3ad58..916e204d 100644 --- a/data/incidents.json +++ b/data/incidents.json @@ -1,9 +1,9 @@ { "openSUSE:Leap:15.3:Update": { - "DISTRI": "opensuse", - "FLAVOR": "DVD-Incidents", - "VERSION": "15.3", - "ARCH": "x86_64" + "DISTRI": "opensuse", + "FLAVOR": "DVD-Incidents", + "VERSION": "15.3", + "ARCH": "x86_64" }, "openSUSE:Backports:SLE-15-SP3:Update": { "DISTRI": "opensuse", @@ -12,10 +12,13 @@ "ARCH": "x86_64" }, "openSUSE:Leap:15.4:Update": { - "DISTRI": "opensuse", - "FLAVOR": "DVD-Incidents", - "VERSION": "15.4", - "ARCH": ["x86_64", "aarch64"] + "DISTRI": "opensuse", + "FLAVOR": "DVD-Incidents", + "VERSION": "15.4", + "ARCH": [ + "x86_64", + "aarch64" + ] }, "openSUSE:Backports:SLE-15-SP4:Update": { "DISTRI": "opensuse", diff --git a/data/repos.json b/data/repos.json index afc751e5..372a7fc8 100644 --- a/data/repos.json +++ b/data/repos.json @@ -1,64 +1,64 @@ { - "https://openqa.opensuse.org" : { - "openSUSE:Leap:15.3:Update" : { - "settings" : { - "OS_TEST_ISSUES" : "", - "FLAVOR" : "DVD-Updates", - "DISTRI" : "opensuse", - "VERSION" : "15.3", - "ARCH" : "x86_64" + "https://openqa.opensuse.org": { + "openSUSE:Leap:15.3:Update": { + "settings": { + "OS_TEST_ISSUES": "", + "FLAVOR": "DVD-Updates", + "DISTRI": "opensuse", + "VERSION": "15.3", + "ARCH": "x86_64" }, - "test" : "kde", - "repos" : [ + "test": "kde", + "repos": [ "http://download.opensuse.org/update/leap/15.3/oss/", "http://download.opensuse.org/update/leap/15.3/non-oss/", "http://download.opensuse.org/update/leap/15.3/backports/", "http://download.opensuse.org/update/leap/15.3/sle/" ] }, - "openSUSE:Backports:SLE-15-SP3:Update" : { - "settings" : { - "OS_TEST_ISSUES" : "", - "FLAVOR" : "DVD-Backports-Incidents", - "DISTRI" : "opensuse", - "VERSION" : "15.3", - "ARCH" : "x86_64" - }, - "test" : "kde", - "repos" : [ - "http://download.opensuse.org/update/leap/15.3/backports/", - "http://download.opensuse.org/update/leap/15.3/sle/" - ] - }, - "openSUSE:Leap:15.4:Update" : { - "settings" : { - "OS_TEST_ISSUES" : "", - "FLAVOR" : "DVD-Updates", - "DISTRI" : "opensuse", - "VERSION" : "15.4", - "ARCH" : "x86_64" + "openSUSE:Backports:SLE-15-SP3:Update": { + "settings": { + "OS_TEST_ISSUES": "", + "FLAVOR": "DVD-Backports-Incidents", + "DISTRI": "opensuse", + "VERSION": "15.3", + "ARCH": "x86_64" }, - "test" : "textmode", - "repos" : [ + "test": "kde", + "repos": [ + "http://download.opensuse.org/update/leap/15.3/backports/", + "http://download.opensuse.org/update/leap/15.3/sle/" + ] + }, + "openSUSE:Leap:15.4:Update": { + "settings": { + "OS_TEST_ISSUES": "", + "FLAVOR": "DVD-Updates", + "DISTRI": "opensuse", + "VERSION": "15.4", + "ARCH": "x86_64" + }, + "test": "textmode", + "repos": [ "http://download.opensuse.org/update/leap/15.4/oss/", "http://download.opensuse.org/update/leap/15.4/non-oss/", "http://download.opensuse.org/update/leap/15.4/backports/", "http://download.opensuse.org/update/leap/15.4/sle/" ] }, - "openSUSE:Backports:SLE-15-SP4:Update" : { - "settings" : { - "OS_TEST_ISSUES" : "", - "FLAVOR" : "DVD-Backports-Incidents", - "DISTRI" : "opensuse", - "VERSION" : "15.4", - "ARCH" : "x86_64" - }, - "test" : "textmode", - "repos" : [ - "http://download.opensuse.org/update/leap/15.4/backports/", - "http://download.opensuse.org/update/leap/15.4/sle/" - ] - } + "openSUSE:Backports:SLE-15-SP4:Update": { + "settings": { + "OS_TEST_ISSUES": "", + "FLAVOR": "DVD-Backports-Incidents", + "DISTRI": "opensuse", + "VERSION": "15.4", + "ARCH": "x86_64" + }, + "test": "textmode", + "repos": [ + "http://download.opensuse.org/update/leap/15.4/backports/", + "http://download.opensuse.org/update/leap/15.4/sle/" + ] + } } } diff --git a/dist/ci/docker-compose-test.sh b/dist/ci/docker-compose-test.sh index bf18aafe..feff41ea 100755 --- a/dist/ci/docker-compose-test.sh +++ b/dist/ci/docker-compose-test.sh @@ -18,7 +18,7 @@ ci_node=$1 for file in tests/*_tests.py; do if test -n "$ci_node"; then - if test "$ci_node" == "Rest"; then + if test "$ci_node" == "Rest"; then if grep -q '# CI-Node' $file; then echo "Skipping $file in 'Rest'" continue @@ -27,7 +27,7 @@ for file in tests/*_tests.py; do if ! grep -q "# CI-Node: $ci_node" $file; then continue fi - fi + fi fi if ! test -f /code/.without-coverage; then COVER_ARGS="--cov=. --cov-append --cov-report=xml" diff --git a/dist/ci/docker-compose.yml b/dist/ci/docker-compose.yml index 25a17d29..3b29cb03 100644 --- a/dist/ci/docker-compose.yml +++ b/dist/ci/docker-compose.yml @@ -20,9 +20,9 @@ services: <<: *obs command: > chroot --userspec=wwwrun / /bin/bash -c "cd /srv/www/obs/api && - RAILS_ENV=production ./bin/rake ts:rebuild && - RAILS_ENV=production ./script/delayed_job.api.rb --queues=staging,quick start && - ./bin/bundle exec rails s -e production" + RAILS_ENV=production ./bin/rake ts:rebuild && + RAILS_ENV=production ./script/delayed_job.api.rb --queues=staging,quick start && + ./bin/bundle exec rails s -e production" depends_on: - db - cache diff --git a/dist/ci/testenv-tumbleweed/Dockerfile b/dist/ci/testenv-tumbleweed/Dockerfile index 1819f685..9311fd28 100644 --- a/dist/ci/testenv-tumbleweed/Dockerfile +++ b/dist/ci/testenv-tumbleweed/Dockerfile @@ -6,11 +6,11 @@ RUN zypper -n ar http://download.opensuse.org/repositories/openSUSE:/Tools/openS RUN zypper --gpg-auto-import-keys ref RUN zypper in -y osc python3-pytest python3-httpretty python3-pyxdg python3-PyYAML \ - python3-pika python3-mock python3-cmdln python3-lxml python3-python-dateutil python3-colorama \ - python3-influxdb python3-pytest-cov libxml2-tools curl python3-flake8 \ - shadow vim vim-data strace git sudo patch openSUSE-release openSUSE-release-ftp \ - perl-Net-SSLeay perl-Text-Diff perl-XML-Simple perl-XML-Parser build \ - obs-service-download_files obs-service-format_spec_file obs-scm-bridge + python3-pika python3-mock python3-cmdln python3-lxml python3-python-dateutil python3-colorama \ + python3-influxdb python3-pytest-cov libxml2-tools curl python3-flake8 \ + shadow vim vim-data strace git sudo patch openSUSE-release openSUSE-release-ftp \ + perl-Net-SSLeay perl-Text-Diff perl-XML-Simple perl-XML-Parser build \ + obs-service-download_files obs-service-format_spec_file obs-scm-bridge RUN useradd tester -d /code/tests/home COPY run_as_tester /usr/bin diff --git a/docs/pkglistgen.md b/docs/pkglistgen.md index 05856657..db46c368 100644 --- a/docs/pkglistgen.md +++ b/docs/pkglistgen.md @@ -12,45 +12,52 @@ The generated release spec files are split into 000release-packages to avoid nee The package list generator reads several files. The most important are group*.yml (traditionally only groups.yml) within 000package-groups. ### supportstatus.txt + The file lists the packages and their support level. It's only necessary to list packages here that have a different level than the default level specificied in the groups. The format is plain text: - the level is handed over 1:1 to KIWI file. Currently used values are: unsupported, l2 and l3 ### group*.yml + The file is a list of package lists and the special hash 'OUTPUT'. OUTPUT contains an entry for every group file that needs to be written out. The group name of it needs to exist as package list as well. OUTPUT also contains flags for the groups. We currently support: - * default-support - Sets the support level in case there is no explicitly entry in [supportstatus.txt](#supportstatustxt), defaults to 'unsupported' - * recommends - If the solver should take recommends into account when solving the package list, defaults to false. - * includes - Adds package lists to the group to be solved. Allows to organize different topics into the same group. By default there are no package lists added - the package list with the group name is always there. - * excludes - Removes all packages from the __solved__ groups listed. Used to build addons to main products. - * conflicts - Sets package groups not to be part of the same product. Influences the [overlap calculation](#overlap-calculation) only. + +* **default-support** +Sets the support level in case there is no explicitly entry in [supportstatus.txt](#supportstatustxt), defaults to 'unsupported' + +* **recommends** +If the solver should take recommends into account when solving the package list, defaults to false. + +* **includes** +Adds package lists to the group to be solved. Allows to organize different topics into the same group. By default there are no package lists added - the package list with the group name is always there. + +* **excludes** +Removes all packages from the __solved__ groups listed. Used to build addons to main products. + +* **conflicts** +Sets package groups not to be part of the same product. Influences the [overlap calculation](#overlap-calculation) only. Be aware that group names must not contain a '-'. You can also adapt the solving on a package level by putting a hash into the package list. Normally the package name is a string, in case it's a hash the key needs to be the package name and the value is a list of following modifiers: - * recommended - Evaluate also 'Recommends' in package to determine dependencies. Otherwise only 'required' are considered. Used mainly for patterns in SLE. It can not be combined with platforms, For architecture specific recommends, use patterns. - * suggested - Evaluate also 'Suggests' in package to determine dependencies. This implies recommended - * architecture (e.g. x86_64,s390x,ppc64le,aarch64) - Makes the entry specific to the listed architectures. Will get ignored if used in combination with 'recommended'. - * locked - Do not put the package into this group. Used to *force* certain packages into other modules - * silent - Use this package for dependency solving of groups "on top", but do not output the package for this group. Mainly to mark the product to use by adding release packages. Use with care, this breaks dependency chains! - * required - If the package is missing or is uninstallable, don't leave a comment but put the error as package entry for OBS to create unresolvable error to avoid building a DVD +* **recommended** +Evaluate also 'Recommends' in package to determine dependencies. Otherwise only 'required' are considered. Used mainly for patterns in SLE. It can not be combined with platforms, For architecture specific recommends, use patterns. +* **suggested** +Evaluate also 'Suggests' in package to determine dependencies. This implies recommended +* **architecture (e.g. x86_64,s390x,ppc64le,aarch64)** +Makes the entry specific to the listed architectures. Will get ignored if used in combination with 'recommended'. +* **locked** +Do not put the package into this group. Used to *force* certain packages into other modules +* **silent** +Use this package for dependency solving of groups "on top", but do not output the package for this group. Mainly to mark the product to use by adding release packages. Use with care, this breaks dependency chains! +* **required** +If the package is missing or is uninstallable, don't leave a comment but put the error as package entry for OBS to create unresolvable error to avoid building a DVD Note that you can write yaml lists in 2 ways. You can put the modifier lists as multiple lines starting with -, but it's recommended to put them as [M1,M2] behind the package name. See the difference between pkg4 and pkg5 in the example. -#### Example: +#### Example -``` +```yaml OUTPUT: - group1: includes: @@ -88,9 +95,11 @@ list2: ``` ## Overlap calculation - TODO + +TODO ## Handling in staging workflow + If 000package-groups contains a file named summary-staging.txt, the bot will trigger a diff mode on staging projects. It will create an equal summary-staging.txt in 000product and create a comment with a human readable diff in the staging project. This comment can be replied to. If the reply starts with 'approve', staging accept will apply the diff to this diff --git a/docs/staging.asciidoc b/docs/staging.asciidoc index de071743..af0b7cf2 100644 --- a/docs/staging.asciidoc +++ b/docs/staging.asciidoc @@ -88,24 +88,24 @@ are: * *accept* Accept all requests assigned to a staging project. * *check* Check the status of the different request inside the staging - project, including the status in openQA. + project, including the status in openQA. * *cleanup_rings* Check the status of the different rings in Factory. * *rebase* Freeze the packages that are not affected in a staging project. - In the past, this command used to be called 'freeze', which is still - a valid alias. + In the past, this command used to be called 'freeze', which is still + a valid alias. * *list* Accept all the requests from packages that are not in any - ring, detect request that supersede the current ones that are - actually tracked in staging projects, and list the remaining - requests. + ring, detect request that supersede the current ones that are + actually tracked in staging projects, and list the remaining + requests. * *select* Move a request (or a list of requests) to a staging - project, or move requests between staging projects. + project, or move requests between staging projects. * *unselect* Remove a request from a staging project, and publish it - again into the backlog. + again into the backlog. List diff --git a/findfileconflicts b/findfileconflicts index f53c2bc3..99447f07 100755 --- a/findfileconflicts +++ b/findfileconflicts @@ -153,7 +153,7 @@ while() { $prv = 0; next; } - s/ .*//; # no version stuff; + s/ .*//; # no version stuff; push @{$whatprovides{$_}}, $pkg; next; } @@ -162,7 +162,7 @@ while() { $con = 0; next; } - s/ .*//; # no version stuff; + s/ .*//; # no version stuff; s/^otherproviders\((.*)\)$/$1/; push @{$con{$pkg}}, $_; next; @@ -172,7 +172,7 @@ while() { $obs= 0; next; } - s/ .*//; # no version stuff; + s/ .*//; # no version stuff; push @{$obs{$pkg}}, $_; next; } @@ -282,7 +282,7 @@ print STDERR "now ".@dirs." directories\n"; if (@implicit_conflicts) { print STDERR "have implicit conflicts, calculating dir owners\n"; - my @pdirs; # parent dirs + my @pdirs; # parent dirs for (@dirs) { next unless /^(.*\/)(.*?)\/$/; $pdirs[$dirs{$_}] = $dirs{$1}; @@ -322,7 +322,7 @@ if (@implicit_conflicts) { } } -%files = (); # free mem +%files = (); # free mem # reduce all-dir conflicts and trivial multiarch conflicts print STDERR "reducing trivial conflicts\n"; @@ -363,7 +363,7 @@ my %pkgneeded; my %tocheck; my %tocheck_files; for my $f (sort keys %filesc) { - my @p = sort(@{$filesc{$f}}); # normalize + my @p = sort(@{$filesc{$f}}); # normalize $filesc{$f} = [ @p ]; s/\/.*// for @p; $pkgneeded{$_} = 1 for @p; @@ -419,28 +419,28 @@ for my $tc (sort keys %tocheck) { next if $conflicts{"$p1\n$p2"}; my @con; for my $f (@{$tocheck_files{$tc}}) { - my @pp = grep {s/^(?:\Q$p1\E|\Q$p2\E)\///} map {$_} @{$filesc{$f}}; - next unless @pp; - # ignore if (all directories or all ghosts or all links) and all same mode; - my %allm = map {$_ => 1} @pp; - my $info = ''; - if (keys(%allm) == 1) { - my $m = (keys(%allm))[0]; - # all modes/flags are the same - # no conflict if all dirs or all ghosts or all links - next if $modes_type[$m] == 040000 || $modes_type[$m] == 0120000 || $modes_ghost[$m] == 0100; - } else { - # don't report mode mismatches for files/symlinks that are not ghosts - for my $m (keys %allm) { - if (($modes_type[$m] != 0100000 && $modes_type[$m] != 0120000) || $modes_ghost[$m] == 0100) { - $info = ' [mode mismatch: '.join(', ', map {beautify_mode($_)} @pp).']'; - last; - } - } - } - # got one! - $f =~ /^(\d+)\/(.*)/; - push @con, "$dirs[$1]$2$info" unless "$dirs[$1]$2" =~ m{/etc/uefi/certs/.*crt}; + my @pp = grep {s/^(?:\Q$p1\E|\Q$p2\E)\///} map {$_} @{$filesc{$f}}; + next unless @pp; + # ignore if (all directories or all ghosts or all links) and all same mode; + my %allm = map {$_ => 1} @pp; + my $info = ''; + if (keys(%allm) == 1) { + my $m = (keys(%allm))[0]; + # all modes/flags are the same + # no conflict if all dirs or all ghosts or all links + next if $modes_type[$m] == 040000 || $modes_type[$m] == 0120000 || $modes_ghost[$m] == 0100; + } else { + # don't report mode mismatches for files/symlinks that are not ghosts + for my $m (keys %allm) { + if (($modes_type[$m] != 0100000 && $modes_type[$m] != 0120000) || $modes_ghost[$m] == 0100) { + $info = ' [mode mismatch: '.join(', ', map {beautify_mode($_)} @pp).']'; + last; + } + } + } + # got one! + $f =~ /^(\d+)\/(.*)/; + push @con, "$dirs[$1]$2$info" unless "$dirs[$1]$2" =~ m{/etc/uefi/certs/.*crt}; } next unless @con; my @sp1 = split(' ', $p1); diff --git a/gocd/alp-stagings.gocd.yaml b/gocd/alp-stagings.gocd.yaml index 8b263ffc..7a05d2e2 100644 --- a/gocd/alp-stagings.gocd.yaml +++ b/gocd/alp-stagings.gocd.yaml @@ -61,7 +61,7 @@ pipelines: tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:ALP -s $STAGING_PROJECT - + - Update.000product: resources: - repo-checker @@ -78,11 +78,11 @@ pipelines: 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" + resources: + - staging-bot + tasks: + - script: |- + osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" ALP.Staging.B: environment_variables: @@ -118,7 +118,7 @@ pipelines: tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:ALP -s $STAGING_PROJECT - + - Update.000product: resources: - repo-checker @@ -135,8 +135,8 @@ pipelines: 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" + resources: + - staging-bot + tasks: + - script: |- + osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" diff --git a/gocd/bci.gocd.yaml b/gocd/bci.gocd.yaml index c51cf25a..6aab1580 100644 --- a/gocd/bci.gocd.yaml +++ b/gocd/bci.gocd.yaml @@ -114,9 +114,9 @@ pipelines: - script: |- SPRJ=SUSE:SLE-15-SP3:Update:BCI for arch in aarch64 ppc64le s390x x86_64 ; do - PKG="000product:SLE_BCI-ftp-POOL-$arch" - PRJ="SUSE:Products:SLE-BCI:15-SP3:$arch" - curl -X POST -H "Authorization: Token $BCI_TOKEN" "https://api.suse.de/trigger/release?project=${SPRJ}&package=${PKG}&targetproject=${PRJ}&targetrepository=images&filter_source_repository=images" + PKG="000product:SLE_BCI-ftp-POOL-$arch" + PRJ="SUSE:Products:SLE-BCI:15-SP3:$arch" + curl -X POST -H "Authorization: Token $BCI_TOKEN" "https://api.suse.de/trigger/release?project=${SPRJ}&package=${PKG}&targetproject=${PRJ}&targetrepository=images&filter_source_repository=images" done for arch in aarch64 ppc64le s390x x86_64 ; do sleep 600 @@ -199,9 +199,9 @@ pipelines: - script: |- SPRJ=SUSE:SLE-15-SP4:Update:BCI for arch in aarch64 ppc64le s390x x86_64 ; do - PKG="000product:SLE_BCI-ftp-POOL-$arch" - PRJ="SUSE:Products:SLE-BCI:15-SP4:$arch" - curl -X POST -H "Authorization: Token $BCI_TOKEN" "https://api.suse.de/trigger/release?project=${SPRJ}&package=${PKG}&targetproject=${PRJ}&targetrepository=images&filter_source_repository=images" + PKG="000product:SLE_BCI-ftp-POOL-$arch" + PRJ="SUSE:Products:SLE-BCI:15-SP4:$arch" + curl -X POST -H "Authorization: Token $BCI_TOKEN" "https://api.suse.de/trigger/release?project=${SPRJ}&package=${PKG}&targetproject=${PRJ}&targetrepository=images&filter_source_repository=images" done for arch in aarch64 ppc64le s390x x86_64 ; do sleep 600 @@ -284,9 +284,9 @@ pipelines: - script: |- SPRJ=SUSE:SLE-15-SP5:Update:BCI for arch in aarch64 ppc64le s390x x86_64 ; do - PKG="000product:SLE_BCI-ftp-POOL-$arch" - PRJ="SUSE:Products:SLE-BCI:15-SP5:$arch" - curl -X POST -H "Authorization: Token $BCI_TOKEN" "https://api.suse.de/trigger/release?project=${SPRJ}&package=${PKG}&targetproject=${PRJ}&targetrepository=images&filter_source_repository=images" + PKG="000product:SLE_BCI-ftp-POOL-$arch" + PRJ="SUSE:Products:SLE-BCI:15-SP5:$arch" + curl -X POST -H "Authorization: Token $BCI_TOKEN" "https://api.suse.de/trigger/release?project=${SPRJ}&package=${PKG}&targetproject=${PRJ}&targetrepository=images&filter_source_repository=images" done for arch in aarch64 ppc64le s390x x86_64 ; do sleep 600 diff --git a/gocd/bci.gocd.yaml.erb b/gocd/bci.gocd.yaml.erb index 00219c80..715bdbe6 100644 --- a/gocd/bci.gocd.yaml.erb +++ b/gocd/bci.gocd.yaml.erb @@ -114,9 +114,9 @@ pipelines: - script: |- SPRJ=SUSE:SLE-15-<%= sp %>:Update:BCI for arch in aarch64 ppc64le s390x x86_64 ; do - PKG="000product:SLE_BCI-ftp-POOL-$arch" - PRJ="SUSE:Products:SLE-BCI:15-<%= sp %>:$arch" - curl -X POST -H "Authorization: Token $BCI_TOKEN" "https://api.suse.de/trigger/release?project=${SPRJ}&package=${PKG}&targetproject=${PRJ}&targetrepository=images&filter_source_repository=images" + PKG="000product:SLE_BCI-ftp-POOL-$arch" + PRJ="SUSE:Products:SLE-BCI:15-<%= sp %>:$arch" + curl -X POST -H "Authorization: Token $BCI_TOKEN" "https://api.suse.de/trigger/release?project=${SPRJ}&package=${PKG}&targetproject=${PRJ}&targetrepository=images&filter_source_repository=images" done for arch in aarch64 ppc64le s390x x86_64 ; do sleep 600 diff --git a/gocd/checkers.opensuse.gocd.yaml b/gocd/checkers.opensuse.gocd.yaml index a2d2c7c5..b5092ace 100644 --- a/gocd/checkers.opensuse.gocd.yaml +++ b/gocd/checkers.opensuse.gocd.yaml @@ -105,22 +105,22 @@ pipelines: group: openSUSE.Checkers lock_behavior: unlockWhenFinished timer: - spec: 0 */3 * ? * * + spec: 0 */3 * ? * * environment_variables: - OSC_CONFIG: /home/go/config/oscrc-staging-bot + OSC_CONFIG: /home/go/config/oscrc-staging-bot materials: - git: - git: https://github.com/openSUSE/openSUSE-release-tools.git + git: + git: https://github.com/openSUSE/openSUSE-release-tools.git stages: - Run: - approval: - type: manual - jobs: - Run: - resources: - - staging-bot - tasks: - - script: ./staging-report.py --debug -A https://api.opensuse.org -p openSUSE:Factory + approval: + type: manual + jobs: + Run: + resources: + - staging-bot + tasks: + - script: ./staging-report.py --debug -A https://api.opensuse.org -p openSUSE:Factory OS.Origin.Manager: group: openSUSE.Checkers lock_behavior: unlockWhenFinished @@ -157,7 +157,7 @@ pipelines: - staging-bot tasks: - script: |- - ./openqa-maintenance.py --group qam-openqa --review-mode=accept-onpass --debug --openqa https://openqa.opensuse.org --apiurl https://api.opensuse.org review + ./openqa-maintenance.py --group qam-openqa --review-mode=accept-onpass --debug --openqa https://openqa.opensuse.org --apiurl https://api.opensuse.org review openSUSE.Devel.Reminder: group: openSUSE.Checkers lock_behavior: unlockWhenFinished diff --git a/gocd/checkers.suse.gocd.yaml b/gocd/checkers.suse.gocd.yaml index 01fa384a..16018efa 100644 --- a/gocd/checkers.suse.gocd.yaml +++ b/gocd/checkers.suse.gocd.yaml @@ -123,18 +123,18 @@ pipelines: - 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 + 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.suse.de staging -p SUSE:SLE-15-SP5:GA rebuild - osc -A https://api.suse.de staging -p SUSE:SLE-15-SP5:GA list --supersede - osc -A https://api.suse.de staging -p SUSE:SLE-15-SP5:GA unselect --cleanup - osc -A https://api.suse.de staging -p SUSE:SLE-15-SP5:GA repair --cleanup - rm -rf $tempdir + osc -A https://api.suse.de staging -p SUSE:SLE-15-SP5:GA rebuild + osc -A https://api.suse.de staging -p SUSE:SLE-15-SP5:GA list --supersede + osc -A https://api.suse.de staging -p SUSE:SLE-15-SP5:GA unselect --cleanup + osc -A https://api.suse.de staging -p SUSE:SLE-15-SP5:GA repair --cleanup + rm -rf $tempdir SLE-Micro.Staging.Bot.Regular: group: SLE.Checkers lock_behavior: unlockWhenFinished @@ -156,19 +156,19 @@ pipelines: - 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 + 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.suse.de staging -p SUSE:SLE-15-SP4:Update:Products:Micro54 rebuild - osc -A https://api.suse.de staging -p SUSE:SLE-15-SP4:Update:Products:Micro54 list --supersede - osc -A https://api.suse.de staging -p SUSE:SLE-15-SP4:Update:Products:Micro54 select --non-interactive --merge --try-strategies - osc -A https://api.suse.de staging -p SUSE:SLE-15-SP4:Update:Products:Micro54 unselect --cleanup - osc -A https://api.suse.de staging -p SUSE:SLE-15-SP4:Update:Products:Micro54 repair --cleanup - rm -rf $tempdir + osc -A https://api.suse.de staging -p SUSE:SLE-15-SP4:Update:Products:Micro54 rebuild + osc -A https://api.suse.de staging -p SUSE:SLE-15-SP4:Update:Products:Micro54 list --supersede + osc -A https://api.suse.de staging -p SUSE:SLE-15-SP4:Update:Products:Micro54 select --non-interactive --merge --try-strategies + osc -A https://api.suse.de staging -p SUSE:SLE-15-SP4:Update:Products:Micro54 unselect --cleanup + osc -A https://api.suse.de staging -p SUSE:SLE-15-SP4:Update:Products:Micro54 repair --cleanup + rm -rf $tempdir S15.SP5.Staging.Bot.Report: group: SLE.Checkers lock_behavior: unlockWhenFinished diff --git a/gocd/checkers.suse.gocd.yaml.erb b/gocd/checkers.suse.gocd.yaml.erb index 9ae1f5a2..3e18b129 100644 --- a/gocd/checkers.suse.gocd.yaml.erb +++ b/gocd/checkers.suse.gocd.yaml.erb @@ -123,18 +123,18 @@ pipelines: - 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 + 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.suse.de staging -p SUSE:SLE-15-SP5:GA rebuild - osc -A https://api.suse.de staging -p SUSE:SLE-15-SP5:GA list --supersede - osc -A https://api.suse.de staging -p SUSE:SLE-15-SP5:GA unselect --cleanup - osc -A https://api.suse.de staging -p SUSE:SLE-15-SP5:GA repair --cleanup - rm -rf $tempdir + osc -A https://api.suse.de staging -p SUSE:SLE-15-SP5:GA rebuild + osc -A https://api.suse.de staging -p SUSE:SLE-15-SP5:GA list --supersede + osc -A https://api.suse.de staging -p SUSE:SLE-15-SP5:GA unselect --cleanup + osc -A https://api.suse.de staging -p SUSE:SLE-15-SP5:GA repair --cleanup + rm -rf $tempdir SLE-Micro.Staging.Bot.Regular: group: SLE.Checkers lock_behavior: unlockWhenFinished @@ -156,19 +156,19 @@ pipelines: - 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 + 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.suse.de staging -p SUSE:SLE-15-SP4:Update:Products:Micro54 rebuild - osc -A https://api.suse.de staging -p SUSE:SLE-15-SP4:Update:Products:Micro54 list --supersede - osc -A https://api.suse.de staging -p SUSE:SLE-15-SP4:Update:Products:Micro54 select --non-interactive --merge --try-strategies - osc -A https://api.suse.de staging -p SUSE:SLE-15-SP4:Update:Products:Micro54 unselect --cleanup - osc -A https://api.suse.de staging -p SUSE:SLE-15-SP4:Update:Products:Micro54 repair --cleanup - rm -rf $tempdir + osc -A https://api.suse.de staging -p SUSE:SLE-15-SP4:Update:Products:Micro54 rebuild + osc -A https://api.suse.de staging -p SUSE:SLE-15-SP4:Update:Products:Micro54 list --supersede + osc -A https://api.suse.de staging -p SUSE:SLE-15-SP4:Update:Products:Micro54 select --non-interactive --merge --try-strategies + osc -A https://api.suse.de staging -p SUSE:SLE-15-SP4:Update:Products:Micro54 unselect --cleanup + osc -A https://api.suse.de staging -p SUSE:SLE-15-SP4:Update:Products:Micro54 repair --cleanup + rm -rf $tempdir S15.SP5.Staging.Bot.Report: group: SLE.Checkers lock_behavior: unlockWhenFinished diff --git a/gocd/daily-cleanup.gocd.yaml b/gocd/daily-cleanup.gocd.yaml index 7141a724..6c6cb90a 100644 --- a/gocd/daily-cleanup.gocd.yaml +++ b/gocd/daily-cleanup.gocd.yaml @@ -18,12 +18,12 @@ pipelines: - 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 + 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:Factory unignore --cleanup - rm -r $tempdir + osc -A https://api.opensuse.org staging -p openSUSE:Factory unignore --cleanup + rm -r $tempdir diff --git a/gocd/dashboard.generator.gocd.yaml b/gocd/dashboard.generator.gocd.yaml index 6784ecdb..e5accec2 100644 --- a/gocd/dashboard.generator.gocd.yaml +++ b/gocd/dashboard.generator.gocd.yaml @@ -19,7 +19,7 @@ pipelines: - staging-bot tasks: - script: |- - set -e - PYTHONPATH=$PWD python3 ./dashboard/generate.py -p openSUSE:Factory > dashboard/output/index.html - PYTHONPATH=$PWD python3 ./dashboard/generate.py -p openSUSE:Leap > dashboard/output/leap.html - rsync -av dashboard/output/ rsync://coolo@195.135.221.140:11873/factory-dashboard.opensuse.org/ + set -e + PYTHONPATH=$PWD python3 ./dashboard/generate.py -p openSUSE:Factory > dashboard/output/index.html + PYTHONPATH=$PWD python3 ./dashboard/generate.py -p openSUSE:Leap > dashboard/output/leap.html + rsync -av dashboard/output/ rsync://coolo@195.135.221.140:11873/factory-dashboard.opensuse.org/ diff --git a/gocd/generate.sh b/gocd/generate.sh index 698cfff6..4c7b0d3e 100755 --- a/gocd/generate.sh +++ b/gocd/generate.sh @@ -13,13 +13,13 @@ for file in *.erb; do done grep group: *.yaml | cut -d: -f3 | sort -u | while read group; do - case $group in - BCI|Factory|Leap|Admin|LEO|MicroOS|Monitors|openSUSE.Checkers|SLE15.Stagings|SLE15.Target|SLE.Checkers) - ;; - *) - echo "Do not create new groups without being admin and knowing the consequences - found $group" - exit 1 - esac + case $group in + BCI|Factory|Leap|Admin|LEO|MicroOS|Monitors|openSUSE.Checkers|SLE15.Stagings|SLE15.Target|SLE.Checkers) + ;; + *) + echo "Do not create new groups without being admin and knowing the consequences - found $group" + exit 1 + esac done for file in *.gocd.yaml; do diff --git a/gocd/microos-stagings.gocd.yaml b/gocd/microos-stagings.gocd.yaml index 1d377bcd..8c8a4f83 100644 --- a/gocd/microos-stagings.gocd.yaml +++ b/gocd/microos-stagings.gocd.yaml @@ -21,15 +21,15 @@ pipelines: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.suse.de update_and_solve - --staging SUSE:SLE-15-SP4:Update:Products:Micro54:Staging:A - --only-release-packages --force + --staging SUSE:SLE-15-SP4:Update:Products:Micro54:Staging:A + --only-release-packages --force SLE-Micro.Staging.B: resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.suse.de update_and_solve - --staging SUSE:SLE-15-SP4:Update:Products:Micro54:Staging:B - --only-release-packages --force + --staging SUSE:SLE-15-SP4:Update:Products:Micro54:Staging:B + --only-release-packages --force SLE-Micro.Staging.A: environment_variables: @@ -69,9 +69,7 @@ pipelines: resources: - repo-checker tasks: - - script: |- - ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLE-15-SP4:Update:Products:Micro54 -s $STAGING_PROJECT - + - script: ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLE-15-SP4:Update:Products:Micro54 -s $STAGING_PROJECT - Update.000product: resources: - repo-checker @@ -88,11 +86,11 @@ pipelines: 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" + resources: + - staging-bot + tasks: + - script: |- + osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" SLE-Micro.Staging.B: environment_variables: @@ -132,9 +130,7 @@ pipelines: resources: - repo-checker tasks: - - script: |- - ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLE-15-SP4:Update:Products:Micro54 -s $STAGING_PROJECT - + - script: ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLE-15-SP4:Update:Products:Micro54 -s $STAGING_PROJECT - Update.000product: resources: - repo-checker @@ -151,8 +147,8 @@ pipelines: 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" + resources: + - staging-bot + tasks: + - script: |- + osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" diff --git a/gocd/microos-stagings.gocd.yaml.erb b/gocd/microos-stagings.gocd.yaml.erb index 4798a8c2..77d31cc9 100644 --- a/gocd/microos-stagings.gocd.yaml.erb +++ b/gocd/microos-stagings.gocd.yaml.erb @@ -23,8 +23,8 @@ pipelines: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.suse.de update_and_solve - --staging SUSE:SLE-15-SP4:Update:Products:Micro54:Staging:<%= letter %> - --only-release-packages --force + --staging SUSE:SLE-15-SP4:Update:Products:Micro54:Staging:<%= letter %> + --only-release-packages --force <% end -%> <% stagings.each do |letter| %> SLE-Micro.Staging.<%= letter %>: @@ -65,9 +65,7 @@ pipelines: resources: - repo-checker tasks: - - script: |- - ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLE-15-SP4:Update:Products:Micro54 -s $STAGING_PROJECT - + - script: ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLE-15-SP4:Update:Products:Micro54 -s $STAGING_PROJECT - Update.000product: resources: - repo-checker @@ -84,9 +82,9 @@ pipelines: 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" + resources: + - staging-bot + tasks: + - script: |- + osc -A $STAGING_API api -X POST "/source/$STAGING_PROJECT?cmd=remove_flag&repository=images&flag=build" <% end -%> diff --git a/gocd/pkglistgen.opensuse.gocd.yaml b/gocd/pkglistgen.opensuse.gocd.yaml index 60442643..ef4f5463 100644 --- a/gocd/pkglistgen.opensuse.gocd.yaml +++ b/gocd/pkglistgen.opensuse.gocd.yaml @@ -92,22 +92,22 @@ pipelines: resources: - repo-checker tasks: - - script: python3 -u ./pkglistgen.py --apiurl https://api.opensuse.org handle_update_repos openSUSE:Factory + - script: python3 -u ./pkglistgen.py --apiurl https://api.opensuse.org handle_update_repos openSUSE:Factory openSUSE_Factory_ARM: resources: - repo-checker tasks: - - script: python3 -u ./pkglistgen.py --apiurl https://api.opensuse.org handle_update_repos openSUSE:Factory:ARM + - script: python3 -u ./pkglistgen.py --apiurl https://api.opensuse.org handle_update_repos openSUSE:Factory:ARM openSUSE_Factory_PowerPC: resources: - repo-checker tasks: - - script: python3 -u ./pkglistgen.py --apiurl https://api.opensuse.org handle_update_repos openSUSE:Factory:PowerPC + - script: python3 -u ./pkglistgen.py --apiurl https://api.opensuse.org handle_update_repos openSUSE:Factory:PowerPC openSUSE_Factory_RISCV: resources: - repo-checker tasks: - - script: python3 -u ./pkglistgen.py --apiurl https://api.opensuse.org handle_update_repos openSUSE:Factory:RISCV + - script: python3 -u ./pkglistgen.py --apiurl https://api.opensuse.org handle_update_repos openSUSE:Factory:RISCV Pkglistgen.openSUSE_Leap_15.5: group: Leap lock_behavior: unlockWhenFinished @@ -194,7 +194,7 @@ pipelines: resources: - repo-checker tasks: - - script: python3 ./pkglistgen.py --apiurl https://api.opensuse.org handle_update_repos openSUSE:Leap:15.5 + - script: python3 ./pkglistgen.py --apiurl https://api.opensuse.org handle_update_repos openSUSE:Leap:15.5 Update.Repos.Leap.openSUSE_Leap_15.4_Images: group: Leap lock_behavior: unlockWhenFinished @@ -215,7 +215,7 @@ pipelines: resources: - repo-checker tasks: - - script: python3 ./pkglistgen.py --apiurl https://api.opensuse.org handle_update_repos openSUSE:Leap:15.4:Images + - script: python3 ./pkglistgen.py --apiurl https://api.opensuse.org handle_update_repos openSUSE:Leap:15.4:Images Update.Repos.Leap.openSUSE_Leap_15.3_Update_Respin: group: Leap lock_behavior: unlockWhenFinished @@ -236,4 +236,4 @@ pipelines: resources: - repo-checker tasks: - - script: python3 ./pkglistgen.py --apiurl https://api.opensuse.org handle_update_repos openSUSE:Leap:15.3:Update:Respin + - script: python3 ./pkglistgen.py --apiurl https://api.opensuse.org handle_update_repos openSUSE:Leap:15.3:Update:Respin diff --git a/gocd/pkglistgen.opensuse.gocd.yaml.erb b/gocd/pkglistgen.opensuse.gocd.yaml.erb index eccabedf..d0b3b4b3 100644 --- a/gocd/pkglistgen.opensuse.gocd.yaml.erb +++ b/gocd/pkglistgen.opensuse.gocd.yaml.erb @@ -55,7 +55,7 @@ pipelines: resources: - repo-checker tasks: - - script: python3 -u ./pkglistgen.py --apiurl https://api.opensuse.org handle_update_repos <%= project %> + - script: python3 -u ./pkglistgen.py --apiurl https://api.opensuse.org handle_update_repos <%= project %> <% end -%> Pkglistgen.openSUSE_Leap_15.5: group: Leap @@ -171,5 +171,5 @@ pipelines: resources: - repo-checker tasks: - - script: python3 ./pkglistgen.py --apiurl https://api.opensuse.org handle_update_repos <%= project %> + - script: python3 ./pkglistgen.py --apiurl https://api.opensuse.org handle_update_repos <%= project %> <% end -%> diff --git a/gocd/pkglistgen_staging.gocd.yaml b/gocd/pkglistgen_staging.gocd.yaml index a269c704..5f38ff4e 100644 --- a/gocd/pkglistgen_staging.gocd.yaml +++ b/gocd/pkglistgen_staging.gocd.yaml @@ -20,113 +20,113 @@ pipelines: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.opensuse.org update_and_solve - --staging openSUSE:Factory:Staging:A - --only-release-packages --force + --staging openSUSE:Factory:Staging:A + --only-release-packages --force "Staging.B": resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.opensuse.org update_and_solve - --staging openSUSE:Factory:Staging:B - --only-release-packages --force + --staging openSUSE:Factory:Staging:B + --only-release-packages --force "Staging.C": resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.opensuse.org update_and_solve - --staging openSUSE:Factory:Staging:C - --only-release-packages --force + --staging openSUSE:Factory:Staging:C + --only-release-packages --force "Staging.D": resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.opensuse.org update_and_solve - --staging openSUSE:Factory:Staging:D - --only-release-packages --force + --staging openSUSE:Factory:Staging:D + --only-release-packages --force "Staging.E": resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.opensuse.org update_and_solve - --staging openSUSE:Factory:Staging:E - --only-release-packages --force + --staging openSUSE:Factory:Staging:E + --only-release-packages --force "Staging.F": resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.opensuse.org update_and_solve - --staging openSUSE:Factory:Staging:F - --only-release-packages --force + --staging openSUSE:Factory:Staging:F + --only-release-packages --force "Staging.G": resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.opensuse.org update_and_solve - --staging openSUSE:Factory:Staging:G - --only-release-packages --force + --staging openSUSE:Factory:Staging:G + --only-release-packages --force "Staging.H": resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.opensuse.org update_and_solve - --staging openSUSE:Factory:Staging:H - --only-release-packages --force + --staging openSUSE:Factory:Staging:H + --only-release-packages --force "Staging.I": resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.opensuse.org update_and_solve - --staging openSUSE:Factory:Staging:I - --only-release-packages --force + --staging openSUSE:Factory:Staging:I + --only-release-packages --force "Staging.J": resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.opensuse.org update_and_solve - --staging openSUSE:Factory:Staging:J - --only-release-packages --force + --staging openSUSE:Factory:Staging:J + --only-release-packages --force "Staging.K": resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.opensuse.org update_and_solve - --staging openSUSE:Factory:Staging:K - --only-release-packages --force + --staging openSUSE:Factory:Staging:K + --only-release-packages --force "Staging.L": resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.opensuse.org update_and_solve - --staging openSUSE:Factory:Staging:L - --only-release-packages --force + --staging openSUSE:Factory:Staging:L + --only-release-packages --force "Staging.M": resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.opensuse.org update_and_solve - --staging openSUSE:Factory:Staging:M - --only-release-packages --force + --staging openSUSE:Factory:Staging:M + --only-release-packages --force "Staging.N": resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.opensuse.org update_and_solve - --staging openSUSE:Factory:Staging:N - --only-release-packages --force + --staging openSUSE:Factory:Staging:N + --only-release-packages --force "Staging.O": resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.opensuse.org update_and_solve - --staging openSUSE:Factory:Staging:O - --only-release-packages --force + --staging openSUSE:Factory:Staging:O + --only-release-packages --force "Staging.Gcc7": resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.opensuse.org update_and_solve - --staging openSUSE:Factory:Staging:Gcc7 - --only-release-packages --force + --staging openSUSE:Factory:Staging:Gcc7 + --only-release-packages --force "Factory.Staging.A": environment_variables: @@ -175,23 +175,23 @@ pipelines: - script: |- export PYTHONPATH=scripts if ./scripts/pkglistgen.py --debug -A $STAGING_API update_and_solve --staging $STAGING_PROJECT --force; then - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure - exit 1 + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure + 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 + 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 "Factory.Staging.B": environment_variables: @@ -240,23 +240,23 @@ pipelines: - script: |- export PYTHONPATH=scripts if ./scripts/pkglistgen.py --debug -A $STAGING_API update_and_solve --staging $STAGING_PROJECT --force; then - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure - exit 1 + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure + 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 + 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 "Factory.Staging.C": environment_variables: @@ -305,23 +305,23 @@ pipelines: - script: |- export PYTHONPATH=scripts if ./scripts/pkglistgen.py --debug -A $STAGING_API update_and_solve --staging $STAGING_PROJECT --force; then - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure - exit 1 + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure + 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 + 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 "Factory.Staging.D": environment_variables: @@ -370,23 +370,23 @@ pipelines: - script: |- export PYTHONPATH=scripts if ./scripts/pkglistgen.py --debug -A $STAGING_API update_and_solve --staging $STAGING_PROJECT --force; then - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure - exit 1 + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure + 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 + 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 "Factory.Staging.E": environment_variables: @@ -435,23 +435,23 @@ pipelines: - script: |- export PYTHONPATH=scripts if ./scripts/pkglistgen.py --debug -A $STAGING_API update_and_solve --staging $STAGING_PROJECT --force; then - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure - exit 1 + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure + 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 + 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 "Factory.Staging.F": environment_variables: @@ -500,23 +500,23 @@ pipelines: - script: |- export PYTHONPATH=scripts if ./scripts/pkglistgen.py --debug -A $STAGING_API update_and_solve --staging $STAGING_PROJECT --force; then - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure - exit 1 + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure + 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 + 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 "Factory.Staging.G": environment_variables: @@ -565,23 +565,23 @@ pipelines: - script: |- export PYTHONPATH=scripts if ./scripts/pkglistgen.py --debug -A $STAGING_API update_and_solve --staging $STAGING_PROJECT --force; then - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure - exit 1 + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure + 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 + 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 "Factory.Staging.H": environment_variables: @@ -630,23 +630,23 @@ pipelines: - script: |- export PYTHONPATH=scripts if ./scripts/pkglistgen.py --debug -A $STAGING_API update_and_solve --staging $STAGING_PROJECT --force; then - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure - exit 1 + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure + 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 + 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 "Factory.Staging.I": environment_variables: @@ -695,23 +695,23 @@ pipelines: - script: |- export PYTHONPATH=scripts if ./scripts/pkglistgen.py --debug -A $STAGING_API update_and_solve --staging $STAGING_PROJECT --force; then - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure - exit 1 + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure + 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 + 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 "Factory.Staging.J": environment_variables: @@ -760,23 +760,23 @@ pipelines: - script: |- export PYTHONPATH=scripts if ./scripts/pkglistgen.py --debug -A $STAGING_API update_and_solve --staging $STAGING_PROJECT --force; then - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure - exit 1 + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure + 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 + 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 "Factory.Staging.K": environment_variables: @@ -825,23 +825,23 @@ pipelines: - script: |- export PYTHONPATH=scripts if ./scripts/pkglistgen.py --debug -A $STAGING_API update_and_solve --staging $STAGING_PROJECT --force; then - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure - exit 1 + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure + 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 + 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 "Factory.Staging.L": environment_variables: @@ -890,23 +890,23 @@ pipelines: - script: |- export PYTHONPATH=scripts if ./scripts/pkglistgen.py --debug -A $STAGING_API update_and_solve --staging $STAGING_PROJECT --force; then - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure - exit 1 + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure + 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 + 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 "Factory.Staging.M": environment_variables: @@ -955,23 +955,23 @@ pipelines: - script: |- export PYTHONPATH=scripts if ./scripts/pkglistgen.py --debug -A $STAGING_API update_and_solve --staging $STAGING_PROJECT --force; then - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure - exit 1 + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure + 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 + 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 "Factory.Staging.N": environment_variables: @@ -1020,23 +1020,23 @@ pipelines: - script: |- export PYTHONPATH=scripts if ./scripts/pkglistgen.py --debug -A $STAGING_API update_and_solve --staging $STAGING_PROJECT --force; then - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure - exit 1 + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure + 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 + 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 "Factory.Staging.O": environment_variables: @@ -1085,23 +1085,23 @@ pipelines: - script: |- export PYTHONPATH=scripts if ./scripts/pkglistgen.py --debug -A $STAGING_API update_and_solve --staging $STAGING_PROJECT --force; then - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure - exit 1 + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure + 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 + 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 "Factory.Staging.Gcc7": environment_variables: @@ -1150,21 +1150,21 @@ pipelines: - script: |- export PYTHONPATH=scripts if ./scripts/pkglistgen.py --debug -A $STAGING_API update_and_solve --staging $STAGING_PROJECT --force; then - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure - exit 1 + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure + 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 + 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 diff --git a/gocd/pkglistgen_staging.gocd.yaml.erb b/gocd/pkglistgen_staging.gocd.yaml.erb index 88d6a6b6..09c4a16a 100644 --- a/gocd/pkglistgen_staging.gocd.yaml.erb +++ b/gocd/pkglistgen_staging.gocd.yaml.erb @@ -22,8 +22,8 @@ pipelines: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.opensuse.org update_and_solve - --staging openSUSE:Factory:Staging:<%= letter %> - --only-release-packages --force + --staging openSUSE:Factory:Staging:<%= letter %> + --only-release-packages --force <% end -%> <% factory_stagings.each do |letter| %> "Factory.Staging.<%= letter %>": @@ -73,21 +73,21 @@ pipelines: - script: |- export PYTHONPATH=scripts if ./scripts/pkglistgen.py --debug -A $STAGING_API update_and_solve --staging $STAGING_PROJECT --force; then - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s success else - ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure - exit 1 + ./scripts/gocd/report-status.py -A $STAGING_API -p $STAGING_PROJECT -n packagelists -r standard -s failure + 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 + 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 <% end %> diff --git a/gocd/sle15-stagings.gocd.yaml b/gocd/sle15-stagings.gocd.yaml index fd3d24cd..a6fd9385 100644 --- a/gocd/sle15-stagings.gocd.yaml +++ b/gocd/sle15-stagings.gocd.yaml @@ -21,78 +21,78 @@ pipelines: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.suse.de update_and_solve - --staging SUSE:SLE-15-SP5:GA:Staging:A - --only-release-packages --force + --staging SUSE:SLE-15-SP5:GA:Staging:A + --only-release-packages --force SLE.15.SP5.Staging.B: resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.suse.de update_and_solve - --staging SUSE:SLE-15-SP5:GA:Staging:B - --only-release-packages --force + --staging SUSE:SLE-15-SP5:GA:Staging:B + --only-release-packages --force SLE.15.SP5.Staging.C: resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.suse.de update_and_solve - --staging SUSE:SLE-15-SP5:GA:Staging:C - --only-release-packages --force + --staging SUSE:SLE-15-SP5:GA:Staging:C + --only-release-packages --force SLE.15.SP5.Staging.D: resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.suse.de update_and_solve - --staging SUSE:SLE-15-SP5:GA:Staging:D - --only-release-packages --force + --staging SUSE:SLE-15-SP5:GA:Staging:D + --only-release-packages --force SLE.15.SP5.Staging.E: resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.suse.de update_and_solve - --staging SUSE:SLE-15-SP5:GA:Staging:E - --only-release-packages --force + --staging SUSE:SLE-15-SP5:GA:Staging:E + --only-release-packages --force SLE.15.SP5.Staging.F: resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.suse.de update_and_solve - --staging SUSE:SLE-15-SP5:GA:Staging:F - --only-release-packages --force + --staging SUSE:SLE-15-SP5:GA:Staging:F + --only-release-packages --force SLE.15.SP5.Staging.G: resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.suse.de update_and_solve - --staging SUSE:SLE-15-SP5:GA:Staging:G - --only-release-packages --force + --staging SUSE:SLE-15-SP5:GA:Staging:G + --only-release-packages --force SLE.15.SP5.Staging.H: resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.suse.de update_and_solve - --staging SUSE:SLE-15-SP5:GA:Staging:H - --only-release-packages --force + --staging SUSE:SLE-15-SP5:GA:Staging:H + --only-release-packages --force SLE.15.SP5.Staging.S: resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.suse.de update_and_solve - --staging SUSE:SLE-15-SP5:GA:Staging:S - --only-release-packages --force + --staging SUSE:SLE-15-SP5:GA:Staging:S + --only-release-packages --force SLE.15.SP5.Staging.V: resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.suse.de update_and_solve - --staging SUSE:SLE-15-SP5:GA:Staging:V - --only-release-packages --force + --staging SUSE:SLE-15-SP5:GA:Staging:V + --only-release-packages --force SLE.15.SP5.Staging.Y: resources: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.suse.de update_and_solve - --staging SUSE:SLE-15-SP5:GA:Staging:Y - --only-release-packages --force + --staging SUSE:SLE-15-SP5:GA:Staging:Y + --only-release-packages --force SLE15.SP5.Staging.A: environment_variables: @@ -134,7 +134,7 @@ pipelines: tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLE-15-SP5:GA -s $STAGING_PROJECT - + - Update.000product: resources: - repo-checker @@ -151,16 +151,16 @@ pipelines: 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 + 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 SLE15.SP5.Staging.B: environment_variables: @@ -202,7 +202,7 @@ pipelines: tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLE-15-SP5:GA -s $STAGING_PROJECT - + - Update.000product: resources: - repo-checker @@ -219,16 +219,16 @@ pipelines: 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 + 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 SLE15.SP5.Staging.C: environment_variables: @@ -270,7 +270,7 @@ pipelines: tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLE-15-SP5:GA -s $STAGING_PROJECT - + - Update.000product: resources: - repo-checker @@ -287,16 +287,16 @@ pipelines: 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 + 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 SLE15.SP5.Staging.D: environment_variables: @@ -338,7 +338,7 @@ pipelines: tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLE-15-SP5:GA -s $STAGING_PROJECT - + - Update.000product: resources: - repo-checker @@ -355,16 +355,16 @@ pipelines: 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 + 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 SLE15.SP5.Staging.E: environment_variables: @@ -406,7 +406,7 @@ pipelines: tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLE-15-SP5:GA -s $STAGING_PROJECT - + - Update.000product: resources: - repo-checker @@ -423,16 +423,16 @@ pipelines: 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 + 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 SLE15.SP5.Staging.F: environment_variables: @@ -474,7 +474,7 @@ pipelines: tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLE-15-SP5:GA -s $STAGING_PROJECT - + - Update.000product: resources: - repo-checker @@ -491,16 +491,16 @@ pipelines: 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 + 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 SLE15.SP5.Staging.G: environment_variables: @@ -542,7 +542,7 @@ pipelines: tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLE-15-SP5:GA -s $STAGING_PROJECT - + - Update.000product: resources: - repo-checker @@ -559,16 +559,16 @@ pipelines: 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 + 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 SLE15.SP5.Staging.H: environment_variables: @@ -610,7 +610,7 @@ pipelines: tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLE-15-SP5:GA -s $STAGING_PROJECT - + - Update.000product: resources: - repo-checker @@ -627,16 +627,16 @@ pipelines: 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 + 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 SLE15.SP5.Staging.S: environment_variables: @@ -678,7 +678,7 @@ pipelines: tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLE-15-SP5:GA -s $STAGING_PROJECT - + - Update.000product: resources: - repo-checker @@ -695,16 +695,16 @@ pipelines: 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 + 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 SLE15.SP5.Staging.V: environment_variables: @@ -746,7 +746,7 @@ pipelines: tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLE-15-SP5:GA -s $STAGING_PROJECT - + - Update.000product: resources: - repo-checker @@ -763,16 +763,16 @@ pipelines: 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 + 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 SLE15.SP5.Staging.Y: environment_variables: @@ -814,7 +814,7 @@ pipelines: tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLE-15-SP5:GA -s $STAGING_PROJECT - + - Update.000product: resources: - repo-checker @@ -831,13 +831,13 @@ pipelines: 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 + 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 diff --git a/gocd/sle15-stagings.gocd.yaml.erb b/gocd/sle15-stagings.gocd.yaml.erb index 2aedca1c..90404065 100644 --- a/gocd/sle15-stagings.gocd.yaml.erb +++ b/gocd/sle15-stagings.gocd.yaml.erb @@ -23,8 +23,8 @@ pipelines: - repo-checker tasks: - script: ./pkglistgen.py -A https://api.suse.de update_and_solve - --staging SUSE:SLE-15-SP5:GA:Staging:<%= letter %> - --only-release-packages --force + --staging SUSE:SLE-15-SP5:GA:Staging:<%= letter %> + --only-release-packages --force <% end -%> <% stagings.each do |letter| %> SLE15.SP5.Staging.<%= letter %>: @@ -67,7 +67,7 @@ pipelines: tasks: - script: |- ./scripts/staging-installcheck.py -A $STAGING_API -p SUSE:SLE-15-SP5:GA -s $STAGING_PROJECT - + - Update.000product: resources: - repo-checker @@ -84,14 +84,14 @@ pipelines: 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 + 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 <% end -%> diff --git a/gocd/staging.bot.gocd.yaml b/gocd/staging.bot.gocd.yaml index 18fefc7d..8ac71bdd 100644 --- a/gocd/staging.bot.gocd.yaml +++ b/gocd/staging.bot.gocd.yaml @@ -44,19 +44,19 @@ pipelines: - 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 + 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:Factory rebuild - osc -A https://api.opensuse.org staging -p openSUSE:Factory list --supersede - osc -A https://api.opensuse.org staging -p openSUSE:Factory adi - osc -A https://api.opensuse.org staging -p openSUSE:Factory unselect --cleanup - osc -A https://api.opensuse.org staging -p openSUSE:Factory repair --cleanup - rm -rf $tempdir + osc -A https://api.opensuse.org staging -p openSUSE:Factory rebuild + osc -A https://api.opensuse.org staging -p openSUSE:Factory list --supersede + osc -A https://api.opensuse.org staging -p openSUSE:Factory adi + osc -A https://api.opensuse.org staging -p openSUSE:Factory unselect --cleanup + osc -A https://api.opensuse.org staging -p openSUSE:Factory repair --cleanup + rm -rf $tempdir AdiChecker.Factory.NonFree: group: openSUSE.Checkers lock_behavior: unlockWhenFinished @@ -101,19 +101,19 @@ pipelines: - 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 + 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:Factory:NonFree rebuild - osc -A https://api.opensuse.org staging -p openSUSE:Factory:NonFree list --supersede - osc -A https://api.opensuse.org staging -p openSUSE:Factory:NonFree adi - osc -A https://api.opensuse.org staging -p openSUSE:Factory:NonFree unselect --cleanup - osc -A https://api.opensuse.org staging -p openSUSE:Factory:NonFree repair --cleanup - rm -rf $tempdir + osc -A https://api.opensuse.org staging -p openSUSE:Factory:NonFree rebuild + osc -A https://api.opensuse.org staging -p openSUSE:Factory:NonFree list --supersede + osc -A https://api.opensuse.org staging -p openSUSE:Factory:NonFree adi + osc -A https://api.opensuse.org staging -p openSUSE:Factory:NonFree unselect --cleanup + osc -A https://api.opensuse.org staging -p openSUSE:Factory:NonFree repair --cleanup + rm -rf $tempdir AdiChecker.Backports.SLE-15-SP5: group: openSUSE.Checkers lock_behavior: unlockWhenFinished @@ -158,19 +158,19 @@ pipelines: - 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 + 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:Backports:SLE-15-SP5 rebuild - osc -A https://api.opensuse.org staging -p openSUSE:Backports:SLE-15-SP5 list --supersede - osc -A https://api.opensuse.org staging -p openSUSE:Backports:SLE-15-SP5 adi - osc -A https://api.opensuse.org staging -p openSUSE:Backports:SLE-15-SP5 unselect --cleanup - osc -A https://api.opensuse.org staging -p openSUSE:Backports:SLE-15-SP5 repair --cleanup - rm -rf $tempdir + osc -A https://api.opensuse.org staging -p openSUSE:Backports:SLE-15-SP5 rebuild + osc -A https://api.opensuse.org staging -p openSUSE:Backports:SLE-15-SP5 list --supersede + osc -A https://api.opensuse.org staging -p openSUSE:Backports:SLE-15-SP5 adi + osc -A https://api.opensuse.org staging -p openSUSE:Backports:SLE-15-SP5 unselect --cleanup + osc -A https://api.opensuse.org staging -p openSUSE:Backports:SLE-15-SP5 repair --cleanup + rm -rf $tempdir AdiChecker.Leap.15.5: group: openSUSE.Checkers lock_behavior: unlockWhenFinished @@ -215,16 +215,16 @@ pipelines: - 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 + 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:Leap:15.5 rebuild - osc -A https://api.opensuse.org staging -p openSUSE:Leap:15.5 list --supersede - osc -A https://api.opensuse.org staging -p openSUSE:Leap:15.5 adi - osc -A https://api.opensuse.org staging -p openSUSE:Leap:15.5 unselect --cleanup - osc -A https://api.opensuse.org staging -p openSUSE:Leap:15.5 repair --cleanup - rm -rf $tempdir + osc -A https://api.opensuse.org staging -p openSUSE:Leap:15.5 rebuild + osc -A https://api.opensuse.org staging -p openSUSE:Leap:15.5 list --supersede + osc -A https://api.opensuse.org staging -p openSUSE:Leap:15.5 adi + osc -A https://api.opensuse.org staging -p openSUSE:Leap:15.5 unselect --cleanup + osc -A https://api.opensuse.org staging -p openSUSE:Leap:15.5 repair --cleanup + rm -rf $tempdir diff --git a/gocd/staging.bot.gocd.yaml.erb b/gocd/staging.bot.gocd.yaml.erb index aabc500e..bfa6ca3b 100644 --- a/gocd/staging.bot.gocd.yaml.erb +++ b/gocd/staging.bot.gocd.yaml.erb @@ -46,17 +46,17 @@ pipelines: - 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 + 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 - 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 + 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 + 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 -%> diff --git a/gocd/vagrant-publisher.gocd.yaml b/gocd/vagrant-publisher.gocd.yaml index 0c9adf78..17746c20 100644 --- a/gocd/vagrant-publisher.gocd.yaml +++ b/gocd/vagrant-publisher.gocd.yaml @@ -74,4 +74,4 @@ pipelines: - staging-bot tasks: - script: | - ruby obs-to-vagrantcloud.rb --url https://download.opensuse.org/distribution/leap/15.4/appliances/boxes/Leap-15.4.aarch64-libvirt_aarch64.json --organization opensuse --new-box-name Leap-15.4.aarch64 \ No newline at end of file + ruby obs-to-vagrantcloud.rb --url https://download.opensuse.org/distribution/leap/15.4/appliances/boxes/Leap-15.4.aarch64-libvirt_aarch64.json --organization opensuse --new-box-name Leap-15.4.aarch64 diff --git a/gocd/vagrant-publisher.gocd.yaml.erb b/gocd/vagrant-publisher.gocd.yaml.erb index 9a9ac3a8..55c5adbb 100644 --- a/gocd/vagrant-publisher.gocd.yaml.erb +++ b/gocd/vagrant-publisher.gocd.yaml.erb @@ -31,4 +31,4 @@ pipelines: - staging-bot tasks: - script: | - ruby obs-to-vagrantcloud.rb --url <%= url %> --organization opensuse --new-box-name <%= box_name %><% end -%> + ruby obs-to-vagrantcloud.rb --url <%= url %> --organization opensuse --new-box-name <%= box_name %><% end %> diff --git a/metrics.py b/metrics.py index 7def603e..ebe7fd19 100755 --- a/metrics.py +++ b/metrics.py @@ -291,7 +291,7 @@ def walk_points(points, target): final = [] time_last = None wrote = 0 - for point in sorted(points, key=lambda l: l.time): + for point in sorted(points, key=lambda p: p.time): if point.measurement not in measurements: # Wait until just before writing to drop measurement. client.drop_measurement(point.measurement) diff --git a/metrics/telegraf/agent.conf b/metrics/telegraf/agent.conf index 4d74bca2..3af4df08 100644 --- a/metrics/telegraf/agent.conf +++ b/metrics/telegraf/agent.conf @@ -2,5 +2,5 @@ omit_hostname = true [[outputs.influxdb]] - urls = ["http://localhost:8086"] - database = "osrt_telegraf" + urls = ["http://localhost:8086"] + database = "osrt_telegraf" diff --git a/osc-staging-workflow.dot b/osc-staging-workflow.dot index 912c1f7a..afea14ee 100644 --- a/osc-staging-workflow.dot +++ b/osc-staging-workflow.dot @@ -10,7 +10,7 @@ digraph staging { review [ label="Review team", shape=ellipse, style=dashed ]; factory [ label="openSUSE Factory" ]; staging [ label="Staging project" ]; - + devel -> review [ label="Developer submits fixes from staging repo" ]; devel -> review [ label="Developer submits packages" ]; review -> review [ label="Initial grouping of requests" ]; diff --git a/publish_distro b/publish_distro index b774f4f9..bcaec135 100755 --- a/publish_distro +++ b/publish_distro @@ -4,11 +4,11 @@ # The script is executed periodically by cronjob # as part of ~mirror/bin/publish_factory_leap wrapper on pontifex # -# Tool publises data from stage (/src/ftp-stage) to public (/srv/ftp - download.opensuse.org) +# Tool publises data from stage (/src/ftp-stage) to public (/srv/ftp - download.opensuse.org) # # Configuration lives in openSUSE-release-tools.git/publish_distro_conf # Syntax: ./publish_distro config_file -# +# # no --delete built in @@ -35,187 +35,193 @@ extra_repos=("source" "debug") isodir="iso" get_version() { - exit 1 + exit 1 } get_iso() { - exit 1 + exit 1 } get_iso_link() { - exit 1 + exit 1 } get_diff_url() { - exit 1 + exit 1 } get_mark_published_url() { - exit 1 + exit 1 } get_changes_filename() { - exit 1 + exit 1 } # --dry and --cleanup should not be passed to rsync through $@ # config file and possibly other opts including --force need to be -for arg do +for arg; do shift if [ "$arg" == '--force' ]; then - force=1 - newargs+=("$arg") - shift - continue + force=1 + newargs+=("$arg") + shift + continue elif [ "$arg" == '--dry' ]; then - dryrun=echo - shift - continue - elif [ "$arg" == '--cleanup' ]; then - do_cleanup=1 - date="90 days ago" - continue + dryrun=echo + shift + continue + elif [ "$arg" == '--cleanup' ]; then + do_cleanup=1 + date="90 days ago" + continue elif [ "$arg" == '--now' ]; then - PUBLISH_DELAY=0 - shift - continue + PUBLISH_DELAY=0 + shift + continue else - newargs+=("$arg") + newargs+=("$arg") fi done # set newargs as $@ set -- "${newargs[@]}" -. "$1" || { echo "need to specify config file" >&2; exit 1; } +. "$1" || { + echo "need to specify config file" >&2 + exit 1 +} shift stage="/srv/ftp-stage/pub/opensuse/$path" dest="/srv/ftp/pub/opensuse/$path" if [ ! -e "$stage" -o ! -e "$dest" ]; then - echo "stage ($stage) and/or dest ($dest) doesn't exist" >&2 - exit 1 + echo "stage ($stage) and/or dest ($dest) doesn't exist" >&2 + exit 1 fi if [ -n "$do_cleanup" ]; then - # find newest delete log of that day - deletelog=$(ls -1tr ${deletelog%/*}/*-deletes.log | tail -1) - test -n "$deletelog" || exit 1 - ( - df -h /srv - for i in $(awk '/\*deleting .*/ { print $2}' $deletelog ); do - if [ -e "$stage/$i" ]; then - echo "WARNING: $i still exist in stage, not deleting" - else - $dryrun rm -rvf "$dest/$i" - fi - done - df -h /srv - ) > $deletelog-deleted - exit 0 + # find newest delete log of that day + deletelog=$(ls -1tr ${deletelog%/*}/*-deletes.log | tail -1) + test -n "$deletelog" || exit 1 + ( + df -h /srv + for i in $(awk '/\*deleting .*/ { print $2}' $deletelog); do + if [ -e "$stage/$i" ]; then + echo "WARNING: $i still exist in stage, not deleting" + else + $dryrun rm -rvf "$dest/$i" + fi + done + df -h /srv + ) >$deletelog-deleted + exit 0 fi mkdir -p "${synclog%/*}" "${deletelog%/*}" if test -f $synclog; then - old $synclog + old $synclog fi if test -f $deletelog; then - old $deletelog + old $deletelog fi version= do_sync_isos=1 for flavor in "${flavors[@]}"; do - get_version + get_version - get_iso + get_iso - get_diff_url - get_changes_filename - if [ -z "$force" -a -e "$dest/$isodir/$iso" ]; then - if [ -t 1 ]; then # only log to tty - echo "$iso already published, skipping isos" - fi - do_sync_isos=0 - break - fi - if [ -n "$changes" ]; then - if [ -d "$stage/$changes" ]; then - # new way, use the obs generated changelogs - $dryrun rsync -avvhiH $stage/$changes \ - --link-dest=$stage \ - $dest/$changes $dry_delete "$@" \ - | LC_ALL=C grep -v '^\.[fdL] ' \ - | LC_ALL=C grep -v '^\(sending\|delta\)' \ - | tee -a $log - else - # old way (already broken?) - if [ ! -s "$changes" ]; then - echo "generating $changes" | tee -a $synclog - [ -z "$dryrun" ] || changes=/dev/stdout - $dryrun curl -sf "$url" > $changes - fi - if [ ! -e $stage/$isodir/$changes ]; then - $dryrun cp -v $changes $stage/$isodir | tee -a $synclog - [ -e $stage/$isodir/Changes ] || $dryrun ln -sf . $stage/$isodir/Changes 2>&1 | tee -a $synclog - fi - fi - fi - if [ ! -e "$stage/$isodir/$iso" ]; then - echo "$flavor with $version doesn't exist, skipping isos" | tee -a $synclog - do_sync_isos=0 - break - else - get_iso_link - if [ "`readlink $link`" != "$iso" ]; then - $dryrun ln -sf "$iso" "$link" - $dryrun ln -sf "$iso.sha256" "$link.sha256" - fi - if [ -z "$force" ]; then - if test `date -d "$PUBLISH_DELAY hours ago" +%s` -lt `stat -c "%Z" "$stage/$isodir/$iso"`; then - echo "$iso was created less than $PUBLISH_DELAY hours ago, delay publishing" | tee -a $synclog - do_sync_isos=0 - fi - fi - fi + get_diff_url + get_changes_filename + if [ -z "$force" -a -e "$dest/$isodir/$iso" ]; then + if [ -t 1 ]; then # only log to tty + echo "$iso already published, skipping isos" + fi + do_sync_isos=0 + break + fi + if [ -n "$changes" ]; then + if [ -d "$stage/$changes" ]; then + # new way, use the obs generated changelogs + $dryrun rsync -avvhiH $stage/$changes \ + --link-dest=$stage \ + $dest/$changes $dry_delete "$@" | + LC_ALL=C grep -v '^\.[fdL] ' | + LC_ALL=C grep -v '^\(sending\|delta\)' | + tee -a $log + else + # old way (already broken?) + if [ ! -s "$changes" ]; then + echo "generating $changes" | tee -a $synclog + [ -z "$dryrun" ] || changes=/dev/stdout + $dryrun curl -sf "$url" >$changes + fi + if [ ! -e $stage/$isodir/$changes ]; then + $dryrun cp -v $changes $stage/$isodir | tee -a $synclog + [ -e $stage/$isodir/Changes ] || $dryrun ln -sf . $stage/$isodir/Changes 2>&1 | tee -a $synclog + fi + fi + fi + if [ ! -e "$stage/$isodir/$iso" ]; then + echo "$flavor with $version doesn't exist, skipping isos" | tee -a $synclog + do_sync_isos=0 + break + else + get_iso_link + if [ "$(readlink $link)" != "$iso" ]; then + $dryrun ln -sf "$iso" "$link" + $dryrun ln -sf "$iso.sha256" "$link.sha256" + fi + if [ -z "$force" ]; then + if test $(date -d "$PUBLISH_DELAY hours ago" +%s) -lt $(stat -c "%Z" "$stage/$isodir/$iso"); then + echo "$iso was created less than $PUBLISH_DELAY hours ago, delay publishing" | tee -a $synclog + do_sync_isos=0 + fi + fi + fi done # produce directories stamped with build number for r in "${repos[@]/#//repo/}"; do - for i in /suse/setup /boot; do - d="$stage$r$i" - [ -d "$d" ] || continue - if [ -e "$stage$r/media.1/build" ]; then - read build < "$stage$r/media.1/build" - stamp="${build#*Build}" - if [ "$build" = "$stamp" ]; then - echo "ERROR: build id not parsable: $build. not syncing" - do_sync_isos=0 - break 2 - fi - elif [ -e "$stage$r/media.1/media" ]; then - { read dummy; read build; } < "$stage$r/media.1/media" - stamp="${build#*Build}" - if [ "$build" = "$stamp" ]; then - echo "ERROR: build id not parsable: $build. not syncing" - do_sync_isos=0 - break 2 - fi - else - echo "ERROR: repo $r is missing build id, not syncing" - do_sync_isos=0 - break 2 - fi - stamped="$stage$r${i%/*}/$stamp-${i##*/}" - if [ ! -L "$d" ]; then - $dryrun mv "$d" "$stamped" - $dryrun ln -s "${stamped##*/}" "$d" - echo "current $stamp" | $dryrun tee $stage/$r/.current.txt - fi - done + for i in /suse/setup /boot; do + d="$stage$r$i" + [ -d "$d" ] || continue + if [ -e "$stage$r/media.1/build" ]; then + read build <"$stage$r/media.1/build" + stamp="${build#*Build}" + if [ "$build" = "$stamp" ]; then + echo "ERROR: build id not parsable: $build. not syncing" + do_sync_isos=0 + break 2 + fi + elif [ -e "$stage$r/media.1/media" ]; then + { + read dummy + read build + } <"$stage$r/media.1/media" + stamp="${build#*Build}" + if [ "$build" = "$stamp" ]; then + echo "ERROR: build id not parsable: $build. not syncing" + do_sync_isos=0 + break 2 + fi + else + echo "ERROR: repo $r is missing build id, not syncing" + do_sync_isos=0 + break 2 + fi + stamped="$stage$r${i%/*}/$stamp-${i##*/}" + if [ ! -L "$d" ]; then + $dryrun mv "$d" "$stamped" + $dryrun ln -s "${stamped##*/}" "$d" + echo "current $stamp" | $dryrun tee $stage/$r/.current.txt + fi + done done if [ "$do_sync_isos" = 0 ]; then - if [ -t 1 ]; then - echo "nothing to do" - fi - exit 0 + if [ -t 1 ]; then + echo "nothing to do" + fi + exit 0 fi # scan mirrors before making the files visible @@ -223,57 +229,57 @@ fi TODO=() #if [ "$do_sync_isos" = 1 ]; then - TODO+=(iso) - echo "current $version" | $dryrun tee $stage/$isodir/.current.txt +TODO+=(iso) +echo "current $version" | $dryrun tee $stage/$isodir/.current.txt #fi if [ -n "$repos" ]; then - TODO+=(repo) - TODO+=(DELETE_repo) + TODO+=(repo) + TODO+=(DELETE_repo) fi # a single grep -v regexp performs awfully bad (needs at least 30x so long) # although LC_ALL=C might fix this, too for i in "${TODO[@]}"; do - case $i in - DELETE_*) - i=${i#DELETE_} - log=$deletelog - dry_delete="--delete -n" - ;; - iso) # ISOs we sync with delete - log=$synclog - dry_delete="--delete-after" - i="$isodir" - ;; - *) - log=$synclog - dry_delete="" - ;; - esac + case $i in + DELETE_*) + i=${i#DELETE_} + log=$deletelog + dry_delete="--delete -n" + ;; + iso) # ISOs we sync with delete + log=$synclog + dry_delete="--delete-after" + i="$isodir" + ;; + *) + log=$synclog + dry_delete="" + ;; + esac - echo ========== $i $dry_delete =========== - $dryrun rsync -avvhiH $stage/$i \ - --link-dest=$stage \ - $dest $dry_delete "$@" \ - | LC_ALL=C grep -v '^\.[fdL] ' \ - | LC_ALL=C grep -v '^\(sending\|delta\)' \ - | tee -a $log + echo ========== $i $dry_delete =========== + $dryrun rsync -avvhiH $stage/$i \ + --link-dest=$stage \ + $dest $dry_delete "$@" | + LC_ALL=C grep -v '^\.[fdL] ' | + LC_ALL=C grep -v '^\(sending\|delta\)' | + tee -a $log done # also sync source and debug, not bind mounted for Leap for r in "${extra_repos[@]}"; do - stage="/srv/ftp-stage/pub/opensuse/$r/$path" - dest="/srv/ftp/pub/opensuse/$r/$path" - $dryrun rsync -avhiH $stage/ --link-dest=$stage \ - $dest --delete-after "$@" | tee -a log + stage="/srv/ftp-stage/pub/opensuse/$r/$path" + dest="/srv/ftp/pub/opensuse/$r/$path" + $dryrun rsync -avhiH $stage/ --link-dest=$stage \ + $dest --delete-after "$@" | tee -a log done # mark published get_mark_published_url if [ -n "$url" ]; then - $dryrun curl -X POST -F "version=$version" "$url" + $dryrun curl -X POST -F "version=$version" "$url" fi #echo creating hashes diff --git a/publish_distro_conf/README.md b/publish_distro_conf/README.md index 1e9f13b5..b6953e18 100644 --- a/publish_distro_conf/README.md +++ b/publish_distro_conf/README.md @@ -5,7 +5,7 @@ configuration files in this repository are used by `../publish_distro` to publish content from ftp-stage to ftp-prod on the pontifex host -Individual releases have its own section in +Individual releases have its own section in `pontifex.infra.opensuse.org:~mirror/bin/publish_factory_leap` which is triggered by a cronjob on a regular basis. @@ -17,4 +17,4 @@ Users need to have [openSUSE Heroes](https://en.opensuse.org/openSUSE:Heroes) VP ## Deployment of publish_distro and related configuration publish_distro should be deployed as part of `openSUSE-release-tools` rpm by openSUSE heroes. -Configuration files will be currently checked out from git under the `mirror` user. \ No newline at end of file +Configuration files will be currently checked out from git under the `mirror` user. diff --git a/publish_distro_conf/publish_leap-micro52.config b/publish_distro_conf/publish_leap-micro52.config index bb410c1b..5cc6bdf4 100644 --- a/publish_distro_conf/publish_leap-micro52.config +++ b/publish_distro_conf/publish_leap-micro52.config @@ -21,12 +21,12 @@ get_version() { fi } -get_iso() +get_iso() { iso="openSUSE-Leap-Micro-$micro_version$qu-$flavor-Build$version-Media.iso" } -get_iso_link() +get_iso_link() { link="$stage/iso/openSUSE-Leap-$micro_version$qu-$flavor-Current.iso" } @@ -43,8 +43,8 @@ get_mark_published_url() get_changes_filename() { - # ChangeLog files from obsgendiff are used instead - #changes="$changes_dir_base/jump/$jump_version/Changes.$version.txt" - : + # ChangeLog files from obsgendiff are used instead + #changes="$changes_dir_base/jump/$jump_version/Changes.$version.txt" + : # changes="$changes_dir_base/leap/$micro_version/Changes.$version.txt" } diff --git a/publish_distro_conf/publish_leap-micro53.config b/publish_distro_conf/publish_leap-micro53.config index 78fba2ba..8b426bdf 100644 --- a/publish_distro_conf/publish_leap-micro53.config +++ b/publish_distro_conf/publish_leap-micro53.config @@ -21,12 +21,12 @@ get_version() { fi } -get_iso() +get_iso() { iso="openSUSE-Leap-Micro-$micro_version$qu-$flavor-Build$version-Media.iso" } -get_iso_link() +get_iso_link() { link="$stage/iso/openSUSE-Leap-$micro_version$qu-$flavor-Current.iso" } @@ -43,8 +43,8 @@ get_mark_published_url() get_changes_filename() { - # ChangeLog files from obsgendiff are used instead - #changes="$changes_dir_base/jump/$jump_version/Changes.$version.txt" - : + # ChangeLog files from obsgendiff are used instead + #changes="$changes_dir_base/jump/$jump_version/Changes.$version.txt" + : # changes="$changes_dir_base/leap/$micro_version/Changes.$version.txt" } diff --git a/publish_distro_conf/publish_leap150_jeos.config b/publish_distro_conf/publish_leap150_jeos.config index 68592049..46bd25df 100644 --- a/publish_distro_conf/publish_leap150_jeos.config +++ b/publish_distro_conf/publish_leap150_jeos.config @@ -23,7 +23,7 @@ get_version() { fi } -_get_iso() +_get_iso() { local snapshot="$1" local suffix=qcow2 @@ -40,7 +40,7 @@ get_iso() iso=`_get_iso "Snapshot$version"` } -get_iso_link() +get_iso_link() { link="$stage/`_get_iso Current`" } diff --git a/publish_distro_conf/publish_leap150_live.config b/publish_distro_conf/publish_leap150_live.config index 6bb62a98..e63121fd 100644 --- a/publish_distro_conf/publish_leap150_live.config +++ b/publish_distro_conf/publish_leap150_live.config @@ -23,12 +23,12 @@ get_version() { fi } -get_iso() +get_iso() { iso="openSUSE-Leap-$leap_version-$flavor-Snapshot$version-Media.iso" } -get_iso_link() +get_iso_link() { link="$stage/openSUSE-Leap-$leap_version-$flavor-Current.iso" } diff --git a/publish_distro_conf/publish_leap151.config b/publish_distro_conf/publish_leap151.config index 0765fde2..90004ade 100644 --- a/publish_distro_conf/publish_leap151.config +++ b/publish_distro_conf/publish_leap151.config @@ -20,12 +20,12 @@ get_version() { fi } -get_iso() +get_iso() { iso="openSUSE-Leap-$leap_version-$flavor-Build$version-Media.iso" } -get_iso_link() +get_iso_link() { link="$stage/iso/openSUSE-Leap-$leap_version-$flavor-Current.iso" } diff --git a/publish_distro_conf/publish_leap151_jeos.config b/publish_distro_conf/publish_leap151_jeos.config index 127528dd..4fe3db47 100644 --- a/publish_distro_conf/publish_leap151_jeos.config +++ b/publish_distro_conf/publish_leap151_jeos.config @@ -23,7 +23,7 @@ get_version() { fi } -_get_iso() +_get_iso() { local snapshot="$1" local suffix=qcow2 @@ -40,7 +40,7 @@ get_iso() iso=`_get_iso "Snapshot$version"` } -get_iso_link() +get_iso_link() { link="$stage/`_get_iso Current`" } diff --git a/publish_distro_conf/publish_leap151_live.config b/publish_distro_conf/publish_leap151_live.config index ec32f728..2f9504b3 100644 --- a/publish_distro_conf/publish_leap151_live.config +++ b/publish_distro_conf/publish_leap151_live.config @@ -23,12 +23,12 @@ get_version() { fi } -get_iso() +get_iso() { iso="openSUSE-Leap-$leap_version-$flavor-Snapshot$version-Media.iso" } -get_iso_link() +get_iso_link() { link="$stage/openSUSE-Leap-$leap_version-$flavor-Current.iso" } diff --git a/publish_distro_conf/publish_leap152.config b/publish_distro_conf/publish_leap152.config index c9a99c61..aa0ba518 100644 --- a/publish_distro_conf/publish_leap152.config +++ b/publish_distro_conf/publish_leap152.config @@ -20,12 +20,12 @@ get_version() { fi } -get_iso() +get_iso() { iso="openSUSE-Leap-$leap_version-$flavor-Build$version-Media.iso" } -get_iso_link() +get_iso_link() { link="$stage/iso/openSUSE-Leap-$leap_version-$flavor-Current.iso" } diff --git a/publish_distro_conf/publish_leap152_jeos.config b/publish_distro_conf/publish_leap152_jeos.config index ea30e3f7..ccb722b6 100644 --- a/publish_distro_conf/publish_leap152_jeos.config +++ b/publish_distro_conf/publish_leap152_jeos.config @@ -23,7 +23,7 @@ get_version() { fi } -_get_iso() +_get_iso() { local snapshot="$1" local suffix=qcow2 @@ -40,7 +40,7 @@ get_iso() iso=`_get_iso "Snapshot$version"` } -get_iso_link() +get_iso_link() { link="$stage/`_get_iso Current`" } diff --git a/publish_distro_conf/publish_leap152_live.config b/publish_distro_conf/publish_leap152_live.config index 782bd818..a92d75f4 100644 --- a/publish_distro_conf/publish_leap152_live.config +++ b/publish_distro_conf/publish_leap152_live.config @@ -23,12 +23,12 @@ get_version() { fi } -get_iso() +get_iso() { iso="openSUSE-Leap-$leap_version-$flavor-Snapshot$version-Media.iso" } -get_iso_link() +get_iso_link() { link="$stage/openSUSE-Leap-$leap_version-$flavor-Current.iso" } diff --git a/publish_distro_conf/publish_leap153.config b/publish_distro_conf/publish_leap153.config index 11ece562..ee15eecd 100644 --- a/publish_distro_conf/publish_leap153.config +++ b/publish_distro_conf/publish_leap153.config @@ -21,12 +21,12 @@ get_version() { fi } -get_iso() +get_iso() { iso="openSUSE-Leap-$leap_version$qu-$flavor-Build$version-Media.iso" } -get_iso_link() +get_iso_link() { link="$stage/iso/openSUSE-Leap-$leap_version$qu-$flavor-Current.iso" } @@ -43,9 +43,9 @@ get_mark_published_url() get_changes_filename() { - # ChangeLog files from obsgendiff are used instead - #changes="$changes_dir_base/jump/$jump_version/Changes.$version.txt" - : + # ChangeLog files from obsgendiff are used instead + #changes="$changes_dir_base/jump/$jump_version/Changes.$version.txt" + : # changes="$changes_dir_base/leap/$leap_version/Changes.$version.txt" } diff --git a/publish_distro_conf/publish_leap153_appliances.config b/publish_distro_conf/publish_leap153_appliances.config index 3540e5ee..eceb7460 100644 --- a/publish_distro_conf/publish_leap153_appliances.config +++ b/publish_distro_conf/publish_leap153_appliances.config @@ -23,7 +23,7 @@ get_version() { fi } -_get_iso() +_get_iso() { local snapshot="$1" local suffix=qcow2 @@ -41,7 +41,7 @@ get_iso() iso=`_get_iso "Build$version"` } -get_iso_link() +get_iso_link() { link="$stage/`_get_iso Current`" } diff --git a/publish_distro_conf/publish_leap153_live.config b/publish_distro_conf/publish_leap153_live.config index f3f12e09..b3e28556 100644 --- a/publish_distro_conf/publish_leap153_live.config +++ b/publish_distro_conf/publish_leap153_live.config @@ -23,12 +23,12 @@ get_version() { fi } -get_iso() +get_iso() { iso="openSUSE-Leap-$leap_version-$flavor-Snapshot$version-Media.iso" } -get_iso_link() +get_iso_link() { link="$stage/openSUSE-Leap-$leap_version-$flavor-Current.iso" } diff --git a/publish_distro_conf/publish_leap154.config b/publish_distro_conf/publish_leap154.config index 3e988fb4..99de537e 100644 --- a/publish_distro_conf/publish_leap154.config +++ b/publish_distro_conf/publish_leap154.config @@ -21,12 +21,12 @@ get_version() { fi } -get_iso() +get_iso() { iso="openSUSE-Leap-$leap_version$qu-$flavor-Build$version-Media.iso" } -get_iso_link() +get_iso_link() { link="$stage/iso/openSUSE-Leap-$leap_version$qu-$flavor-Current.iso" } @@ -43,9 +43,9 @@ get_mark_published_url() get_changes_filename() { - # ChangeLog files from obsgendiff are used instead - #changes="$changes_dir_base/jump/$jump_version/Changes.$version.txt" - : + # ChangeLog files from obsgendiff are used instead + #changes="$changes_dir_base/jump/$jump_version/Changes.$version.txt" + : # changes="$changes_dir_base/leap/$leap_version/Changes.$version.txt" } diff --git a/publish_distro_conf/publish_leap155.config b/publish_distro_conf/publish_leap155.config index 41db4c84..47f0f5e0 100644 --- a/publish_distro_conf/publish_leap155.config +++ b/publish_distro_conf/publish_leap155.config @@ -21,12 +21,12 @@ get_version() { fi } -get_iso() +get_iso() { iso="openSUSE-Leap-$leap_version$qu-$flavor-Build$version-Media.iso" } -get_iso_link() +get_iso_link() { link="$stage/iso/openSUSE-Leap-$leap_version$qu-$flavor-Current.iso" } @@ -43,9 +43,9 @@ get_mark_published_url() get_changes_filename() { - # ChangeLog files from obsgendiff are used instead - #changes="$changes_dir_base/jump/$jump_version/Changes.$version.txt" - : -# changes="$changes_dir_base/leap/$leap_version/Changes.$version.txt" + # ChangeLog files from obsgendiff are used instead + #changes="$changes_dir_base/jump/$jump_version/Changes.$version.txt" + : + #changes="$changes_dir_base/leap/$leap_version/Changes.$version.txt" } diff --git a/publish_distro_conf/publish_tumbleweed.config b/publish_distro_conf/publish_tumbleweed.config index e19b93f7..7c902f89 100644 --- a/publish_distro_conf/publish_tumbleweed.config +++ b/publish_distro_conf/publish_tumbleweed.config @@ -20,12 +20,12 @@ get_version() { fi } -get_iso() +get_iso() { iso="openSUSE-Tumbleweed-$flavor-Snapshot$version-Media.iso" } -get_iso_link() +get_iso_link() { link="$stage/iso/openSUSE-Tumbleweed-$flavor-Current.iso" } diff --git a/tests/check_source_tests.py b/tests/check_source_tests.py index df69348e..d983eb22 100644 --- a/tests/check_source_tests.py +++ b/tests/check_source_tests.py @@ -381,7 +381,8 @@ class TestCheckSource(OBSLocal.TestCase): # not declined but not accepted either review = self.assertReview(req_id, by_user=(self.bot_user, 'new')) - self.assertIn("Source URLs are not valid. Try `osc service runall download_files`.\nblowfish-1.tar.gz", review.comment) + self.assertIn("Source URLs are not valid. Try `osc service runall download_files`.", review.comment) + self.assertIn("ERROR: Failed to download \"https://example.com/blowfish-1.tar.gz\"", review.comment) @pytest.mark.usefixtures("default_config") def test_existing_source_urls(self):