Saturday 6 October 2012

Testing the source RPM package using Koji


Koji is a utility that uses a scratch package to build a testing environment for the source RPM file, which to verify whether the source RPM file fits into different computer architectures, such as, ARM, IBM, and power PC. Koji is a necessary environment for testing the source RPM file because it can verify the compatibility issue of the source RPM file before releases it. This could effectively enhance the stability for the source package in term of usability in different architectures.  Before we use koji to test our source RPM file, we actually need to create fedora account in here https://admin.fedoraproject.org/accounts/  for authorizing and evaluating our testers’ identity.

1)      First, this is the syntax of the koji command “koji build TargetPlatform --scratch sourceRPMfile”  

# TargetPlatform means what platform we need to test, such as, f17, f18, f18-gnome, f19, and el6-candidate, etc.
# -- scratch is the key word means to ask koji to build the package but not tag it for the target
# the sourceRPMfile is your source that prepares for testing

After I issue the command of “koji build f17 --scratch wget-1.13.4-2.fc17.src.rpm”, then the testing source package will upload to fedora server in this address http://koji.fedoraproject.org/koji/tasks .  You can find your task number after executes the command.  Based on the task number, you can find out your package building status from koji.fedora server. If the command line returns feedback that says build completed successfully and it means that the process of your package testing runs without any errors and passes the testing based on the two basic architectures of x86_64 and i686.  This process is about to take 3 minutes to finish, and the mock building times for this package uses 5 minutes.  Below is the output;

Uploading srpm: wget-1.13.4-2.fc17.src.rpm
[====================================] 100% 00:00:19   1.86 MiB  99.16 KiB/sec
Created task: 4567716
Task info: http://koji.fedoraproject.org/koji/taskinfo?taskID=4567716
Watching tasks (this may be safely interrupted)...
4567716 build (f17, wget-1.13.4-2.fc17.src.rpm): free
4567716 build (f17, wget-1.13.4-2.fc17.src.rpm): free -> open (ppc12.phx2.fedoraproject.org)

4567718 buildArch (wget-1.13.4-2.fc17.src.rpm, i686): free
4567717 buildArch (wget-1.13.4-2.fc17.src.rpm, x86_64): open (buildvm-13.phx2.fedoraproject.org)
4567718 buildArch (wget-1.13.4-2.fc17.src.rpm, i686): free -> open (buildvm-06.phx2.fedoraproject.org)
4567717 buildArch (wget-1.13.4-2.fc17.src.rpm, x86_64): open (buildvm-13.phx2.fedoraproject.org) -> closed
0    free  2 open  1 done  0 failed
4567718 buildArch (wget-1.13.4-2.fc17.src.rpm, i686): open (buildvm-06.phx2.fedoraproject.org) -> closed
0 free  1 open  2 done  0 failed
4567716 build (f17, wget-1.13.4-2.fc17.src.rpm): open (ppc12.phx2.fedoraproject.org) -> closed
0 free  0 open  3 done  0 failed 
4567716 build (f17, wget-1.13.4-2.fc17.src.rpm) completed successfully

2)      Follow this solution, we can test the same package throughout different architectures, such IBM, and uses follow command of “S390-koji build f17 --scratch wget-1.13.4-2.fc17.src.rpm”. The task status will up load to http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=whateveryourtasknumber for testing the source RPM package in IBM platform. This process takes longer than others in general as least in my attempt because it depends how many people are actually using the testing services in the fedora server end. The testing will exam IBM s390 and s390x platform if it finishes successfully, then the result should look similar like below example.

Uploading srpm: wget-1.13.4-2.fc17.src.rpm
[====================================] 100% 00:00:20   1.86 MiB  91.00 KiB/sec
Created task: 827832
Task info: http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=827832
Watching tasks (this may be safely interrupted)...
827832 build (f17, wget-1.13.4-2.fc17.src.rpm): free
827832 build (f17, wget-1.13.4-2.fc17.src.rpm): free -> open (fedora3.s390.bos.redhat.com)
  827833 buildArch (wget-1.13.4-2.fc17.src.rpm, s390): free
  827834 buildArch (wget-1.13.4-2.fc17.src.rpm, s390x): free
  827833 buildArch (wget-1.13.4-2.fc17.src.rpm, s390): free -> open (fedora2.s390.bos.redhat.com)
  827834 buildArch (wget-1.13.4-2.fc17.src.rpm, s390x): free -> open (fedora1.s390.bos.redhat.com)
  827834 buildArch (wget-1.13.4-2.fc17.src.rpm, s390x): open (fedora1.s390.bos.redhat.com) -> closed
  0 free  2 open  1 done  0 failed
  827833 buildArch (wget-1.13.4-2.fc17.src.rpm, s390): open (fedora2.s390.bos.redhat.com) -> closed
  0 free  1 open  2 done  0 failed
827832 build (f17, wget-1.13.4-2.fc17.src.rpm): open (fedora3.s390.bos.redhat.com) -> closed
  0 free  0 open  3 done  0 failed

827832 build (f17, wget-1.13.4-2.fc17.src.rpm) completed successfully

3)      Then, we can try to test the package in power PC to see whether it works or not. I uses the command of “ppc-koji build f17 --scratch wget-1.13.4-2.fc17.src.rpm” to test the package in power pc environment. The task status can be found in the link of http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=whateveryourtasknumber. The testing case will exam the ppc 32bit and 64bit system. If it finishes successfully, then the result should look similar like below example.

[root@localhost SRPMS]# ppc-koji build f17 --scratch wget-1.13.4-2.fc17.src.rpm
Uploading srpm: wget-1.13.4-2.fc17.src.rpm
[====================================] 100% 00:00:22   1.86 MiB  85.16 KiB/sec
Created task: 728977
Watching tasks (this may be safely interrupted)...
728977 build (f17, wget-1.13.4-2.fc17.src.rpm): free
728977 build (f17, wget-1.13.4-2.fc17.src.rpm): free -> open (ppc-builder6)
  728978 buildArch (wget-1.13.4-2.fc17.src.rpm, ppc): free
  728979 buildArch (wget-1.13.4-2.fc17.src.rpm, ppc64): free
  728978 buildArch (wget-1.13.4-2.fc17.src.rpm, ppc): free -> open (ppc-builder6)
  728979 buildArch (wget-1.13.4-2.fc17.src.rpm, ppc64): free -> open (ppc-builder6)
  728978 buildArch (wget-1.13.4-2.fc17.src.rpm, ppc): open (ppc-builder6) -> closed
  0 free  2 open  1 done  0 failed
  728979 buildArch (wget-1.13.4-2.fc17.src.rpm, ppc64): open (ppc-builder6) -> closed
  0 free  1 open  2 done  0 failed
728977 build (f17, wget-1.13.4-2.fc17.src.rpm): open (ppc-builder6) -> closed
  0 free  0 open  3 done  0 failed

4)      The last attempt is to test arm architectures of armv5tel and armv7hl.  I use command of “arm-koji build f17 --scratch wget-1.13.4-2.fc17.src.rpm” for testing rpm package.  The process takes around 6 minutes to completing the testing. As the example below, the test result can be found from here:  http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=1178537

[root@localhost SRPMS]# arm-koji build f17 --scratch wget-1.13.4-2.fc17.src.rpm
Uploading srpm: wget-1.13.4-2.fc17.src.rpm
[====================================] 100% 00:00:34   1.86 MiB  55.98 KiB/sec
Created task: 1178537
Task info: http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=1178537
Watching tasks (this may be safely interrupted)...
1178537 build (f17, wget-1.13.4-2.fc17.src.rpm): free
1178537 build (f17, wget-1.13.4-2.fc17.src.rpm): free -> open (hsv-yosemite-1-4-v5tel)
  1178539 buildArch (wget-1.13.4-2.fc17.src.rpm, armv5tel): free
  1178538 buildArch (wget-1.13.4-2.fc17.src.rpm, armv7hl): free
  1178538 buildArch (wget-1.13.4-2.fc17.src.rpm, armv7hl): free -> open (cdot-panda-12-2-v7hl)
  1178539 buildArch (wget-1.13.4-2.fc17.src.rpm, armv5tel): free -> open (cdot-panda-6-1)
  1178539 buildArch (wget-1.13.4-2.fc17.src.rpm, armv5tel): open (cdot-panda-6-1) -> closed
  0 free  2 open  1 done  0 failed
  1178538 buildArch (wget-1.13.4-2.fc17.src.rpm, armv7hl): open (cdot-panda-12-2-v7hl) -> closed
  0 free  1 open  2 done  0 failed
1178537 build (f17, wget-1.13.4-2.fc17.src.rpm): open (hsv-yosemite-1-4-v5tel) -> closed
  0 free  0 open  3 done  0 failed

1178537 build (f17, wget-1.13.4-2.fc17.src.rpm) completed successfully


No comments:

Post a Comment