Difference between revisions of "Koji Usage"

From SME Server
Jump to navigationJump to search
Tags: Mobile edit Mobile web edit
 
(9 intermediate revisions by 3 users not shown)
Line 35: Line 35:
 
* on centos 7 do
 
* on centos 7 do
 
   yum install koji -y
 
   yum install koji -y
 +
 +
* On Rocky 8<syntaxhighlight lang="shell">
 +
#!/bin/sh
 +
dnf -y install epel-release
 +
dnf -y install policycoreutils-python-utils
 +
dnf -y install setools-console
 +
dnf -y install rsyslog
 +
dnf -y install setroubleshoot-server
 +
dnf -y install koji
 +
 +
</syntaxhighlight>
  
 
Check that you can connect<syntaxhighlight lang="bash">
 
Check that you can connect<syntaxhighlight lang="bash">
Line 42: Line 53:
 
=== Build from git ===
 
=== Build from git ===
 
For now, this is the only way we can do a build from git on koji, but in the future this will be incorporated into the 'make build'. <syntaxhighlight lang="bash">
 
For now, this is the only way we can do a build from git on koji, but in the future this will be incorporated into the 'make build'. <syntaxhighlight lang="bash">
koji build dist-sme<ver>-<target> git+https://src.koozali.org/<org>/<pkg>.git?#<tag>
+
koji build sme11-test git+https://src.koozali.org/smeserver/<pkg>.git?#<tag>
 +
koji build sme11-contribs-test git+https://src.koozali.org/smecontribs/<pkg>.git?#<tag>
 
</syntaxhighlight>Where:
 
</syntaxhighlight>Where:
  
* <ver> = 10,11 or 12
 
* <target> = os or contribs
 
* <org> = smeserver or smecontribs
 
 
* <pkg> = your package (e.g. smeserver-php)
 
* <pkg> = your package (e.g. smeserver-php)
* <tag> = version tag to be built (3.0.0)
+
* <tag> = version tag to be built (3_0-1)
 +
 
 
Example:<syntaxhighlight lang="bash">
 
Example:<syntaxhighlight lang="bash">
koji build dist-sme11-os git+https://src.koozali.org/smeserver/daemontools.git?#0.76-6
+
koji build sme11-test git+https://src.koozali.org/smeserver/smeserver-php.git?#3_0-1
 
</syntaxhighlight>
 
</syntaxhighlight>
  
== Advanced commands ==
+
== Structure ==
to add a rpm to the base rpm to install in a mock environment :
+
We have created build targets that align with the standard development practice of building into test, then migrating that build through the different environments
 +
 
 +
* smeserver/<pkg>-<tag> -> sme11-test (dist-sme11-os-testing) -> dist-sme11-updates-testing -> dist-sme11-updates
 +
* smecontribs/<pkg>-<tag> -> sme11-contribs-test (dist-sme11-contribs-testing) -> dist-sme11-contribs
 +
{{Note box|There is a target of sme11-os that will build into dist-sme11-os, but this should ONLY be used for tthe initial load of the smeos repository}}
 +
There is ONLY 1 build tag for sme11 which is used by all targets (dist-sme11-build) as all sme11 builds use the same external repos and settings.
 +
 
  
 +
The repos align with the repos available to dnf in smeserver:
  
koji add-group-pkg dist-sme11-os-build build perl-Module-Install
+
* smeos (dist-sme11-os)
 +
* smetest (dist-sme11-os-test)
 +
* smeupdates-test (dist-sme11-updates-testing)
 +
* smeupdates (dist-sme11-updates)
 +
* smecontribs-test (dist-sme11-contribs-testing)
 +
* smecontribs (dist-sme11-contribs)
 +
*smeaddons (dist-sme11-addons)
  
 +
==Advanced commands ==
 +
to add a rpm to the base rpm to install in a mock environment :
 +
 +
koji add-group-pkg dist-sme11-build build perl-Module-Install
  
 
to list rpms in the mock environment:
 
to list rpms in the mock environment:
  
 +
  koji list-groups dist-sme11-build build
 +
 +
to add a package to build list
 +
  koji add-pkg  --owner jpp dist-sme10-os smeserver-manager-jsquery
 +
  koji add-pkg  --owner jpp dist-sme11-os smeserver-manager-jsquery
 +
  koji add-pkg  --owner jpp dist-sme12-os smeserver-manager-jsquery
  
koji list-groups dist-sme11-os-build build
+
to tag and existing build against a new tag (e.g. copy from testing to updates-testing-)
 +
    koji tag-build dist-sme11-updates-testing smeserver-updaye-11.0.0-7.el8.sme
  
[[Category:Developer]]
+
to populate an external repo for use by dnf
 +
    koji dist-repo dist-sme11-testing --allow-missing-signatures
 +
    koji dist-repo dist-sme11-updates-testing --allow-missing-signatures
 +
    koji dist-repo dist-sme11-os --allow-missing-signatures
 +
    koji dist-repo dist-sme11-contribs-testing --allow-missing-signatures
 +
    koji dist-repo dist-sme11-contribs --allow-missing-signatures
 +
 +
[[Category:Developer]]

Latest revision as of 08:20, 8 April 2024

This howto is for using the Koozali.org Koji Build Farm (http://koji.koozali.org/koji).


Important.png Note:
Warning: The Koji farm is still in development and locked inside the koozali compound, so you will need to have VPN access until we open it up to the world.


Official Koji documentation can be found at: https://docs.pagure.org/koji/


We are slowliy migrating smeserver to newer build tools, which includes git for source management and koji for managing the builds.

Here we will try to explain how to setup and use Koji within the development process.

Web Interface

The web interface is available to everyone for read-only access to the status of builds the configuration of the farm.

Developers and Admins have additional rights after they login.

<<We'll add a bit more here>>

Developers

As a developer, you will need access to koji to be able to initiate builds, add new packages and tweak settings.

Please ask in the Development Forum or via the #buildsys channel on Rocket Chat.

A koji user will be created and you'll be given a 'bundle' (koji-<userid>-bundle.tgz) that contains your koji config and keys.

Please extract this in your home directory on your development workstation.

 tar -xzf koji-<userid>-bundle.tgz
 ls ~/.koji
 client.crt  config  <userid>_browser_cert.p12  serverca.crt

Install the koji client ('sudo dnf install koji' or equivalent on your flavour of linux)

  • on fedora do
 dnf install koji-tool -y
  • on centos 7 do
 yum install koji -y
  • On Rocky 8
    #!/bin/sh
    dnf -y install epel-release
    dnf -y install policycoreutils-python-utils
    dnf -y install setools-console
    dnf -y install rsyslog
    dnf -y install setroubleshoot-server
    dnf -y install koji
    

Check that you can connect

koji moshimoshi

And you should receive a welcome message, telling you that you've connected.

Build from git

For now, this is the only way we can do a build from git on koji, but in the future this will be incorporated into the 'make build'.

koji build sme11-test git+https://src.koozali.org/smeserver/<pkg>.git?#<tag>
koji build sme11-contribs-test git+https://src.koozali.org/smecontribs/<pkg>.git?#<tag>

Where:

  • <pkg> = your package (e.g. smeserver-php)
  • <tag> = version tag to be built (3_0-1)

Example:

koji build sme11-test git+https://src.koozali.org/smeserver/smeserver-php.git?#3_0-1

Structure

We have created build targets that align with the standard development practice of building into test, then migrating that build through the different environments

  • smeserver/<pkg>-<tag> -> sme11-test (dist-sme11-os-testing) -> dist-sme11-updates-testing -> dist-sme11-updates
  • smecontribs/<pkg>-<tag> -> sme11-contribs-test (dist-sme11-contribs-testing) -> dist-sme11-contribs
Important.png Note:
There is a target of sme11-os that will build into dist-sme11-os, but this should ONLY be used for tthe initial load of the smeos repository


There is ONLY 1 build tag for sme11 which is used by all targets (dist-sme11-build) as all sme11 builds use the same external repos and settings.


The repos align with the repos available to dnf in smeserver:

  • smeos (dist-sme11-os)
  • smetest (dist-sme11-os-test)
  • smeupdates-test (dist-sme11-updates-testing)
  • smeupdates (dist-sme11-updates)
  • smecontribs-test (dist-sme11-contribs-testing)
  • smecontribs (dist-sme11-contribs)
  • smeaddons (dist-sme11-addons)

Advanced commands

to add a rpm to the base rpm to install in a mock environment :

koji add-group-pkg dist-sme11-build build perl-Module-Install

to list rpms in the mock environment:

 koji list-groups dist-sme11-build build

to add a package to build list

 koji add-pkg  --owner jpp dist-sme10-os smeserver-manager-jsquery 
 koji add-pkg  --owner jpp dist-sme11-os smeserver-manager-jsquery 
 koji add-pkg  --owner jpp dist-sme12-os smeserver-manager-jsquery 

to tag and existing build against a new tag (e.g. copy from testing to updates-testing-)

   koji tag-build dist-sme11-updates-testing smeserver-updaye-11.0.0-7.el8.sme

to populate an external repo for use by dnf

   koji dist-repo dist-sme11-testing --allow-missing-signatures
   koji dist-repo dist-sme11-updates-testing --allow-missing-signatures
   koji dist-repo dist-sme11-os --allow-missing-signatures
   koji dist-repo dist-sme11-contribs-testing --allow-missing-signatures
   koji dist-repo dist-sme11-contribs --allow-missing-signatures