mirror of https://gerrit.osmocom.org/osmo-ci
Neels Hofmeyr
cf0d92ff21
Depends: libosmo-pfcp 0.1.2 I6ae6cf59e769214e11447107316d38fe5fad583d Depends: osmo-upf 0.1.1 I1d73255f8cc30feabd3c251bdc3af1682ed4694a Change-Id: Ia65508eaf241b799b5d4b1b81eebdeaa40f4381e |
||
---|---|---|
.. | ||
data | ||
lib | ||
README | ||
build_srcpkg.py | ||
update_obs_project.py |
README
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 -b neels/pkg home:nhofmeyr:test osmo-hnbgw The -b option chooses a custom branch to build. 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.