aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <nhofmeyr@sysmocom.de>2022-08-16 17:05:49 +0200
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2022-08-17 15:32:07 +0200
commit39cde7f098de2c84936840fa1b9aa4f8b7d0296e (patch)
tree093cfa074e672e37699053b73e936d9064c80150
parent60fe5c86b519eb7cc074f59068b01b4d60451b8e (diff)
obs: add README
Explain how to use the obs/ scripts to test a private git branch. Change-Id: I4d1303e0c04e827200b48a9fe4aea3680c9c9f84
-rw-r--r--scripts/obs/README127
1 files changed, 127 insertions, 0 deletions
diff --git a/scripts/obs/README b/scripts/obs/README
new file mode 100644
index 0000000..6d18f7d
--- /dev/null
+++ b/scripts/obs/README
@@ -0,0 +1,127 @@
+Usage Example: Submitting source packages to Osmocom's OBS build server
+=======================================================================
+
+I want to test changes to the packaging of osmo-hnbgw.
+They are committed on a private branch osmo-hnbgw.git:neels/pkg.
+I want to test this in my OBS "Home Project" called home:nhofmeyr:test.
+
+Here are the steps of what I do:
+
+
+OBS home project
+----------------
+
+Sign up / sign in to obs.osmocom.org and create the "test" project under the
+"Home Project" link (right next to the "Logout" link on the OBS web interface),
+so that https://obs.osmocom.org/project/show/home:nhofmeyr:test exists.
+
+Make sure I can list the project using the 'osc' tool.
+That requires an osc config file. Easiest is to let osc create one:
+
+ $ osc -A https://obs.osmocom.org list home:nhofmeyr:test
+ Username: nhofmeyr
+ Password: ************
+ Select credentials manager: 4
+
+Verify that it worked:
+
+ $ osc list home:nhofmeyr:test
+ libosmo-pfcp
+ osmo-hnbgw
+
+FYI, the config file will look like this:
+
+ [general]
+ apiurl = https://obs.osmocom.org
+
+ [https://obs.osmocom.org]
+ user=nhofmeyr
+ pass=***********
+ credentials_mgr_class=osc.credentials.PlaintextConfigFileCredentialsManager
+
+
+Publish patches in private branch
+---------------------------------
+
+(Optional: bypassing gerrit.osmocom.org explained in next section below.)
+
+Push my private branch to Osmocom's git repository at gerrit.osmocom.org -- not
+submit for review, just push a private branch.
+
+Why is that? The obs scripts here potentially maim a git tree, so it uses a
+separate git clone, which is cloned from gerrit.osmocom.org. When my private
+branch is pushed there, I can trivially use it.
+
+ cd ~/osmo-dev/src/osmo-hnbgw
+ git push --set-upstream origin neels/pkg
+
+
+Optional: fetch from local git repos
+------------------------------------
+
+Instead of using gerrit.osmocom.org, I can change the config of a locally
+cached repository, so that the branch is fetched from my local working copy.
+That is useful if I want to avoid pushing my branch upstream.
+
+Create initial git clone in _cache/:
+
+ cd ~/osmo-dev/src/osmo-ci/scripts/obs/
+ ./build_srcpkg.py osmo-hnbgw
+
+Set the 'origin' of the './_cache/osmo-hnbgw' git clone to my local working
+copy in '~/osmo-dev/src/osmo-hnbgw':
+
+ git -C _cache/osmo-hnbgw remote set-url origin '~/osmo-dev/src/osmo-hnbgw'
+
+After this, no need to push to Osmocom's git, i just commit patches on my local
+branch in my git clone in '~/osmo-dev/src/osmo-hnbgw'. The obs script will
+fetch my local branch, known as 'origin/neels/pkg' in its cached git tree.
+
+Verify:
+
+ $ git -C _cache/osmo-hnbgw remote -v
+ origin ~/osmo-dev/src/osmo-hnbgw (fetch)
+ origin ~/osmo-dev/src/osmo-hnbgw (push)
+
+
+Build and upload source package to OBS
+--------------------------------------
+
+ cd ~/osmo-dev/src/osmo-ci/scripts/obs/
+ ./update_obs_project.py -g -b origin/neels/pkg home:nhofmeyr:test osmo-hnbgw
+
+The -g option ensures that the latest branch tip is fetched from Osmocom's git.
+Without it, the cached git repository will stay stuck on its currently checked
+out branch version -- you will keep submitting the same state.
+
+The -b option chooses a custom branch to build. It is important to prepend
+'origin/' to 'your/branch', so that repeated dev cycles use the latest branch
+tip that was fetched instead staying stuck on the local branch.
+
+
+See results
+-----------
+
+I can now see my hnbgw package listed:
+
+ $ osc list home:nhofmeyr:test
+ libosmo-pfcp
+ osmo-hnbgw
+
+I could query things via the osc tool:
+
+ $ osc results home:nhofmeyr:test osmo-hnbgw
+ neels_test2 x86_64 unresolvable
+ neels_test x86_64 failed
+
+Or point my web browser at
+https://obs.osmocom.org/project/show/home:nhofmeyr:test
+
+
+Repeat
+------
+
+The dev cycle of rebuilding a change is:
+
+* Commit changes on private branch (and push to Osmocom's git server if necessary),
+* Re-run './update_obs_project.py -g -b origin/...' as above.