A drop-in replacement for your entire desktop packaging and deployment pipeline
Launch fast
We bundle pkggen with plugins for popular platforms like GitHub
Flexible
Generate, test and publish thousands of packages in parallel
Extensible
Customize pkggen to fit your needs with our powerful plugin system
Simplistic interface
Your entire packaging and deployment pipeline fits into just 3 commands
pkggen:
generator: github
packages:
- myproject:
github:
username: example
repo: myproject
query: releases
tarballs: [ "{{ pkgname }}.tar.gz" ]
Define your project's metadata
Define your project's metadata in simple YAML format
Templateize
Convert your current packages to Jinja-like templates
...
DESCRIPTION="{{ description }}"
HOMEPAGE="{{ homepage }}"
SRC_URI="{{ uris[0].uri }}
{{ uris[1].uri }}"
...
user $ pkggen
Downloading tarball... ✅
Generating ebuild... ✅
Generating rpm... ✅
Generating deb... ✅
Generating pkgbuild... ✅
Successfully generated packages ✅
Generate
Generate all your packages with a single command
Test
pkggen automatically spins up containers and virtual machines for efficient and correct testing on multiple systems
user $ pkggen test
Spinning up virtual machine... ✅
Spinning up containers... ✅
Building in parallel...
...
Testing done! Results:
Success: ebuild ✅
Success: rpm ✅
Success: deb ✅
Failed: pkgbuild ❌
user $ pkggen push
Generating ebuild... ✅
Generating rpm... ✅
Generating deb... ✅
Generating pkgbuild... ✅
Successfully generated packages ✅
Pushing to MyOverlay Gentoo overlay... ✅
Pushing to MyPPA PPA... ✅
Pushing to AUR ✅
Deploy
Publish to all your repositories with one command!
Get involved
Anybody can easily create and contribute a generator and deployment agent in their favourite language!
Check out our GitHub repository for the source code and issue tracker!
So what are you waiting for?
Head to the documentation to learn more about pkggen!