A simple to use GitHub Action that updates a dnf-compatible repository from any .rpm files present in the working directory at the time of calling.
-
Supports configurable max retries to avoid merge issues and infinite loops.
-
Creates a ready to use
.repofile.
You need to have a deploy key configured to the to_repository that has write permission and pass the private key with deploy_key.
-
Supports deploying only to GitHub repositories.
-
The repository file’s checksum will not be included in the metadata filename.
Add a uses: teragrep/dfg_01@main step to your workflow.
Examples uses a secret called DEPLOY_KEY that contains the key. DO NOT hardcode the key at any point.
- name: Update from release
uses: teragrep/dfg_01@main
with:
from_repository: teragrep/example-repository
from_version: 1.0.0
to_repository: teragrep/central-repository
deploy_key: ${{ secrets.DEPLOY_KEY }}
files: target/wanted-rpm-*.rpm
gpg_public_key: "${{ secrets.RPM_SIGNING_PUBLIC_KEY }}"- name: Update from release
uses: teragrep/dfg_01@main
with:
from_repository: teragrep/example-repository
from_version: 1.0.0
to_repository: teragrep/central-repository
deploy_key: ${{ secrets.DEPLOY_KEY }}
files: target/wanted-rpm-*.rpm
gpg_public_key: ${{ secrets.RPM_SIGNING_PUBLIC_KEY }}
to_branch: arbitrary-git-branch
to_path: arbitrary-base-path
max_attempts: 1
repo_baseurl: https://custom.repo.example.com/example-repo
repo_name: custom-repo-example
location_prefix: 'packages/'These are required arguments to be used in with: block.
| Required input argument | Description | Example value |
|---|---|---|
|
The source GitHub repository for the release. In |
|
|
The exact release version. |
|
|
The target GitHub repository where the repodata is deployed to. In |
|
|
The private part of the deployment key to be used with pushing to the target repository. |
|
|
The files that are used for making the repodata. Supports glob. |
|
|
The public part of the GPG key the |
|
These are optional arguments to be used in with: block.
| Optional input argument | Description | Default value |
|---|---|---|
|
The branch where repository files are commited to. |
|
|
The path where repository files are commited to. No trailing slash required. |
|
|
How times should committing should be attempted. |
|
|
The baseurl used in the |
|
|
Sets the repository name. |
|
|
Expert setting. Sets the location prefix. Note that it is evaluated to the default value if left empty, and that it can’t contain variables if explicitly set. Mostly useful only when using a repository manager that requires relative paths and an url rewriting proxy which redirects requests to the correct location. |
|
You can involve yourself with our project by opening an issue or submitting a pull request.
Contribution requirements:
-
All changes must be accompanied by a new or changed test. If you think testing is not required in your pull request, include a sufficient explanation as why you think so.
-
Security checks must pass
-
Pull requests must align with the principles and values of extreme programming.
-
Pull requests must follow the principles of Object Thinking and Elegant Objects (EO).
Read more in our Contributing Guideline.
Contributors must sign Teragrep Contributor License Agreement before a pull request is accepted to organization’s repositories.
You need to submit the CLA only once. After submitting the CLA you can contribute to all Teragrep’s repositories.