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!