Woodpecker CI plugin to publish Debian packages using on Aptly API
6d7c03fb3d
When calling APTLY publish API, we have to pass the distribution name and not the repository name. Distribution names are now collected from changes files and a call to the APTLY publish API will be made for all updated distribution. Also add a PREFIX parameter to permit to specify the APTLY prefix (and storage if it need to be specified). |
||
---|---|---|
.gitignore | ||
.pylintrc | ||
.woodpecker.yml | ||
aptly-publish | ||
Dockerfile | ||
README.md |
Woodpecker CI plugin to publish Debian package on a Aptly repository
This docker image could be used as an Woodpecker CI plugin to publish one (or more) Debian package on a Aptly repository using its API.
This plugin will try to :
- locate all
changes
files in thedist
directory (that matchedsource_name
if provided) - extract files that are mentioned by the changes files and upload it using Aptly files API. Files are published on a subdirectory of the name of the source package
- include all processed changes files using Aplty repos API
- create a snapshot of the repository named using current datetime and repository name (format:
YYYYMMDD-HHMMSS-repo
) using Aptly snapshot API - update the published snapshot of the repository using Aptly publish API
Usage
The below pipeline configuration demonstrates simple usage:
pipeline:
publish:
image: brenard/aptly-publish
settings:
api_url: https://your.aptly.tld/api
api_username: myproject
api_password:
from_secret: aptly_api_password
repo_name: stable
path: dist
source_name: myproject
Parameters:
- api_url: Your Aptly API URL (required)
- api_username: Username to authenticate on your Aptly API (required)
- api_password: Password to authenticate on your Aptly API (required)
- repo_name: Repository name to publish on (optional, default:
stable
) - path: Path to the directory where files to publish are stored (optional, default:
dist
) - source_name: Name of the source package to publish (optional, default: all
changes
files are will be publish)