Woodpecker CI plugin to publish Debian packages using on Aptly API
Find a file
Benjamin Renard 6d7c03fb3d Fix publishing snapshot
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).
2022-11-30 20:23:41 +01:00
.gitignore First release 2022-05-02 00:39:47 +02:00
.pylintrc Fix some pylint warnings 2022-05-02 16:12:37 +02:00
.woodpecker.yml Fix install dependencies in pylint test 2022-05-02 16:22:19 +02:00
aptly-publish Fix publishing snapshot 2022-11-30 20:23:41 +01:00
Dockerfile Rename entrypoint.py to aptly-publish 2022-11-30 20:13:57 +01:00
README.md Add CI badge to README 2022-05-02 16:15:10 +02:00

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 the dist directory (that matched source_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

status-badge

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)