Attention is currently required from: osmith, laforge, fixeria.
Hello Jenkins Builder, laforge, pespin, fixeria,

I'd like you to reexamine a change. Please visit

    https://gerrit.osmocom.org/c/osmo-ci/+/28882

to look at the new patch set (#2).

Change subject: scripts/obs: rewrite pushing source pkgs to OBS
......................................................................

scripts/obs: rewrite pushing source pkgs to OBS

Harald requested that the OBS scripts should not stop if building one
specific source package fails, instead it should keep going and report
at the end a non-success exit code.

Given that the shell script code has historically grown and became hard
to maintain, I decided to rewrite the scripts for implementing this
feature. This rewrite solves additional problems:

* No full checkout of an OBS project like network:osmocom:latest
  anymore, with lots of packages that won't get updated (e.g. the uhd
  package has a uhd-images_3.14.1.1.tar.xz file that is 108 MB). With
  the old code, developers had to wait minutes during the checkout
  before the script reaches code that is currently being developed. Now
  only single packages get checked out right before they get updated.

* No need to clone git repositories over and over. With the new code,
  git repos only get cloned if needed (for latest it is not needed if
  the remote git tag is the same as the version in OBS). During
  development, the cloned git repositories are cached.

* Output from commands like "git tag -l" is not written to the log
  unless they failed. This makes the log more readable, which is
  especially important when a package fails to build, we keep going and
  need to spot the build error in the middle of the log later on.

* No more duplicated code for nightly and latest scripts that worked
  similar but had slight differences. Also the list of packages is not
  duplicated for nightly and latest anymore; nightly uses all packages
  and latest uses packages that have at least one git tag.

* Building source packages is decoupled from uploading them. A separate
  script build_srcpkg.py can be used to just build the deb + rpm spec
  source packages, without interacting with the OBS server.

* The scripts can optionally run in docker with a command-line switch,
  and this is used by jenkins. This way we don't need to install
  more dependencies on the host such as rebar3 which is now needed for
  erlang/osmo_dia2gsup.

* Add erlang/osmo_dia2gsup and run its generate_build_dep.sh (SYS#6006)

I have done the new implementation in python to make use of argparse
and to be able to use try/except and print a trace when building one
package fails.

Example output:
* 
https://jenkins.osmocom.org/jenkins/job/Osmocom_OBS_nightly_obs.osmocom.org/48/console
* 
https://jenkins.osmocom.org/jenkins/job/Osmocom_OBS_latest_obs.osmocom.org/46/console

Change-Id: I45a555d05a9da808c0fe0145aae665f583cb80d9
---
M .gitignore
M jobs/osmocom-obs.yml
D scripts/common-obs-conflict.sh
D scripts/common-obs.sh
A scripts/obs/build_srcpkg.py
A scripts/obs/data/Dockerfile
A scripts/obs/data/Release.key
A scripts/obs/data/rpmlintrc
A scripts/obs/lib/__init__.py
A scripts/obs/lib/config.py
A scripts/obs/lib/debian.py
A scripts/obs/lib/docker.py
A scripts/obs/lib/git.py
A scripts/obs/lib/metapkg.py
A scripts/obs/lib/osc.py
A scripts/obs/lib/rpm_spec.py
A scripts/obs/lib/srcpkg.py
A scripts/obs/update_obs_project.py
D scripts/osmocom-latest-packages.sh
D scripts/osmocom-next-packages.sh
D scripts/osmocom-nightly-packages.sh
21 files changed, 1,338 insertions(+), 1,016 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/82/28882/2
--
To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/28882
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ci
Gerrit-Branch: master
Gerrit-Change-Id: I45a555d05a9da808c0fe0145aae665f583cb80d9
Gerrit-Change-Number: 28882
Gerrit-PatchSet: 2
Gerrit-Owner: osmith <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>
Gerrit-Attention: osmith <[email protected]>
Gerrit-Attention: laforge <[email protected]>
Gerrit-Attention: fixeria <[email protected]>
Gerrit-MessageType: newpatchset

Reply via email to