Fake Koji serves as a storage for builds along with logs and source snapshots.
Fake Koji uses Koji's NVRA (name, version, release, architecture):
name
represents java product (java-10-openjdk, java-11-openjdk)version
represents tag (jdk.10.46, jdk.11.23)release
represents:
architecture
can be:
data
stores build log for each architecture and pull/incoming logs for srcscp ./dir/file user@host:nvra
scp ./dir/nvra user@host
scp ./dir/nvra user@host:/any_path/differentNvra
scp .dir/nvra user@host:/any_path/nvra
The uploaded file will be stored in user@host:/path_to_builds/n/v/r/a/
.
Note that in the last two cases the any_path
, where the NVRA should be stored, is ignored.
scp user@host:nvra ./dir/
scp user@host:nvra ./dir/differentNvra
The downloaded file: ./dir/nvra
.
Works similarly:
scp ./dir/nvra1 ./dir/nvra2 user@host
scp user@host:nvra1 user@host:nvra2 ./dir
scp ./dir/logFile user@host:nvra/log
scp ./dir/logFile user@host:nvra/log/newFile
The logFile
will be stored in user@host:/path_to_builds/n/v/r/data/logs/a/
scp user@host:nvra/log/logFile ./dir
scp user@host:nvra/log/logFile ./dir/newLogFile
The downloaded file: ./dir/logFile
Works the same as single upload/download:
scp logFile1 logFile2 user@host:nvra/log
scp user@host:nvra1/log/logFile1 user@host:nvra2/log/logFile2 ./dir
Having nvra1
and nvra2
in ./dir
, then
scp -r ./dir user@host
will upload nvras to user@host:/path_to_builds/n1/v1/r1/a1
and user@host:/path_to_builds/n2/v2/r2/a2
, respectively.
Having logFile1
and logFile2
in ./dir
, then
scp -r ./dir user@host:nvra/logs
will upload both log files to user@host:/path_to_builds/n/v/r/data/logs/a/
.
Having data1
and data2
in ./dir
, then
scp -r ./dir user@host:nvra/data
will upload both files to user@host:/path_to_builds/n/v/r/data/
NVRA:
Recursive download of nvra works same as normal download. Multiple tarballs for one nvra is unlikely to be supported.
Logs:
scp -r user@host:nvra/logs ./dir
will download all logs for given nvra.
scp -r user@host:nvra/data/logs ./dir
and
scp -r user@host:nvra/data ./dir
are currently broken.
Part of Fake Koji is xml-rpc server compatible with Koji and Brew. You can get build information using these methods:
You can get various information about Fake Koji's configuration and storage using its curl api.
curl host/get?option:argument
Alternatively you can use url bar in your browser.
allProducts
allProjects
dport
expectedArchesOfNvr
java-10-openjdk-jdk.10.46-0.static.x86_64
)expectedArchesOfProject
java-10-openjdk-updates
)productOfNvra
productOfProject
projectOfNvra
projectsOfProduct
java-10-openjdk
)repos
root
uport
viewlport
xport
Here you can browse Fake Koji's folder structure. There are three sections with same content but different sorting. The first one uses version sorting(last version on top), the second uses latest modified sorting(the latest modified file on top) and the last one uses latest modified directory content.
└── name └── version └── release ├── arch1 │ └── name-version-release-arch1.tar.gz ├── arch2 │ └── name-version-release-arch2.tar.gz ├── arch3 │ └── name-version-release-arch3.tar.gz ├── data │ └── logs │ ├── arch1 │ ├── arch2 │ ├── arch3 │ └── src └── src └── name-version-release-src.tar.gz
This is the frontend of fake Koji. Here you can see the latest successful builds of every project. Projects are divided by their product. To see all builds of a project by clicking on project's details.
Next to Fake Koji there is Jenkins plugin, which ensures cooperation between Jenkins and Fake Koji. Based on configuration, plugin provides builds. -Dhudson.remoting.ClassFilter=hudson.plugins.scm.koji.model.Build,hudson.plugins.scm.koji.model.RPM,hudson.plugins.scm.koji.model.BuildProvider
may be still necessary to add to jenkins start up.
Koji top URLs
Koji download URLs
Package name
Package arch
Package tag
Excluding NVRs
{*debug*, *src*}
Download directory
Max previous builds
Clean download directory
Create subdirectory for each NVR
After Jenkins jobs is finished, the plugin generates a page with results information. This page shows what specific build was used(name, version, release, NVR, tags), what RPMs or archives were downloaded, links and hash sums to this build can be also found here. If available, sources of build are included.