Project

General

Profile

Actions

Feature #3870

closed

jenkins job generating tarballs of all tagged releases

Added by laforge almost 5 years ago. Updated about 4 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
-
Start date:
03/28/2019
Due date:
% Done:

100%

Spec Reference:

Description

It would be great to have a script (which could subsequently be executed by a jenkins job) that would generate tarball releases for all our tags.

So basically something like:

foreach repository:
   foreach tag:
      autoreconf -fi && ./configure && make dist

If some older tags don't build [anymore] we could either explicitly blacklist them, or we simply build only tags no older than N years.

The resulting tarball releases should be collected somewhere in a directory which could then be subsequently rsync'ed to a public server/directory.


Checklist

  • merge osmo-ci.git patches
  • merge docker-playground.git patches
  • enable this job's e-mail notifications (currently disabled, because patches are not merged)
  • rsync the result to another server

Related issues

Related to OsmoMGW - Bug #4084: make dist: No rule to make target 'osmocom/mgcp_client/mgcp_common.h'Resolvedosmith07/01/2019

Actions
Actions #1

Updated by osmith over 4 years ago

(Missing permissions :/)

State: In Progress

Actions #2

Updated by laforge over 4 years ago

On Fri, Jun 28, 2019 at 09:50:43AM +0000, osmith [REDMINE] wrote:

(Missing permissions :/)

sorry once more, should be better now.

Actions #3

Updated by osmith over 4 years ago

Unfortunately I still don't have permissions to change the status of this issue etc.

EDIT: it works now

Actions #4

Updated by osmith over 4 years ago

  • Related to Bug #4084: make dist: No rule to make target 'osmocom/mgcp_client/mgcp_common.h' added
Actions #5

Updated by osmith over 4 years ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 50
Actions #6

Updated by osmith over 4 years ago

  • Checklist item merge osmo-ci.git patches added
  • Checklist item merge docker-playground.git patches added
  • Checklist item enable this job's e-mail notifications (currently disabled, because patches are not merged) added
  • Checklist item rsync the result to another server added
  • % Done changed from 50 to 70
osmocom-release-tarballs.sh is implemented:
  • This iterates over all Osmocom repos and tags, and builds release tarballs.
  • I've added a blacklist for versions where the release tarball can't be generated.
  • For osmo-mgw I've added a workaround, because the release tarball can't be built for the last 5 versions or so, including the latest one (#4084)
  • The script creates a _release_tarballs dir in the jenkins workspace, and puts all generated tarballs there. It skips the ones that are already generated.
  • Tags are queried from the git server without cloning the repos. The git repos only get cloned when we need to generate a new tarball. When the script is done, the git repos are deleted again to save space (all checked out git repos are about 500 MB in size).

I have also added the jenkins job. The script needs to run in docker, otherwise ./configure will complain that various libraries are missing. I've added "debian-stretch-build-dist" to docker-playground.git, which installs the various -dev packages on top of "debian-stretch-build". The jenkins job builds that docker image with a new function in osmo-ci.git's script/common.sh, and then runs osmocom-release-tarballs.sh inside the container.

The output of the script looks like this:

...
osmo-hlr
  osmo-hlr-0.0.1.tar.bz2 (ignored)
  osmo-hlr-0.1.0.tar.bz2 (exists)
  osmo-hlr-0.2.0.tar.bz2 (exists)
  osmo-hlr-0.2.1.tar.bz2 (exists)
  osmo-hlr-1.0.0.tar.bz2 (creating)
...

Patches:
https://gerrit.osmocom.org/q/topic:tagged-release-tarballs

Jenkins job:
https://jenkins.osmocom.org/jenkins/job/Osmocom-release-tarballs/

Generated tarballs:
https://jenkins.osmocom.org/jenkins/job/Osmocom-release-tarballs/ws/_release_tarballs/

Actions #7

Updated by osmith over 4 years ago

  • Checklist item merge osmo-ci.git patches set to Done
  • Checklist item merge docker-playground.git patches set to Done
  • Checklist item enable this job's e-mail notifications (currently disabled, because patches are not merged) set to Done
Actions #8

Updated by osmith over 4 years ago

Almost done, only missing the rsync now.

laforge, I assume that we want to send the files to somewhere at: https://ftp.osmocom.org/

Could you set up a new account for the releases, like the existing docs account?

Then we can upload the releases similar to how the docs are uploaded.

Actions #9

Updated by osmith over 4 years ago

  • % Done changed from 70 to 80
Actions #10

Updated by laforge over 4 years ago

On Wed, Jul 03, 2019 at 11:54:33AM +0000, wrote:

Could you set up a new account for the releases, like the existing docs
account?

I do not have the required credentials with me on the old, non-work laptop that I
carry with me on the motorbike tour during holidays. I can look into
this once I'm back, please ping me then (July 16).

Actions #11

Updated by osmith over 4 years ago

I do not have the required credentials with me on the old, non-work laptop that I
carry with me on the motorbike tour during holidays. I can look into
this once I'm back, please ping me then (July 16).

laforge: ping :)

Actions #12

Updated by osmith over 4 years ago

laforge: ping

Actions #14

Updated by laforge about 4 years ago

Sorry for dragging this too long.

I tried to make it work, but the fact that it's built inside docuer doesn't make things easier.

In https://jenkins.osmocom.org/jenkins/job/Osmocom_API/configure we use the jenkins credential store with SSH agent forwarding to make the upload work

I would prefer a similar solution. There's now a http://ftp.osmocom.org/releases/ directory that you can rsync to (port 48) releases@rita.osmocom.org:web-files/

I will add a related 'releases' ssh key to the jenkins credential store.

Actions #15

Updated by osmith about 4 years ago

  • Checklist item rsync the result to another server set to Done
  • % Done changed from 80 to 90

the fact that it's built inside docuer doesn't make things easier.

Let's run rsync outside of docker then :)

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

Actions #16

Updated by osmith about 4 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 90 to 100
Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)