Skip to content

Latest commit

 

History

History
48 lines (34 loc) · 1.43 KB

File metadata and controls

48 lines (34 loc) · 1.43 KB

YUM/DNF Repository Publication

This repository publishes RPM packages to a Yum/DNF repo hosted via GitHub Pages under:

https://dan-sherwin.github.io/yum/rpm/$basearch/

Where $basearch is either x86_64 or aarch64.

How it works

  • On every GitHub Release (published), the workflow .github/workflows/publish_shared_yum_repo.yml:
    1. Downloads the release RPM artifacts for linux amd64/arm64.
    2. Adds them into shared/yum/rpm/x86_64 and shared/yum/rpm/aarch64, creates/updates repodata with createrepo_c.
    3. Publishes the shared/yum directory to the user Pages repo (dan-sherwin/dan-sherwin.github.io) gh-pages branch.
    4. GitHub Pages must be enabled for dan-sherwin.github.io with Source: gh-pages.

Client setup

Users can install via DNF by creating /etc/yum.repos.d/dan-sherwin.repo:

[dan-sherwin]
name=dan-sherwin packages
baseurl=https://dan-sherwin.github.io/yum/rpm/$basearch/
enabled=1
gpgcheck=0

Then run:

sudo dnf clean all
sudo dnf makecache
sudo dnf install gormdb2struct

Optional: GPG signing

If you want to sign RPMs and enable gpgcheck=1:

  1. Generate a GPG key and store the private key in GitHub secrets.
  2. Configure nfpm signing in .goreleaser.yaml (rpm.signature section) and pass secrets in the release workflow.
  3. Publish the public key at public.key to the gh-pages branch, and update the repo file to include:
gpgcheck=1
gpgkey=https://dan-sherwin.github.io/public.key