Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions .github/workflows/aur.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: AUR

on:
workflow_dispatch:

pull_request:
types: [opened, edited]
branches: [development, master]
paths:
- 'aur/**'
- '.github/workflows/aur.yml'

push:
branches: [master]
paths:
- 'aur/**'
- '.github/workflows/aur.yml'

jobs:
build:
name: Build and Lint AUR Package
runs-on: ubuntu-latest
container:
image: archlinux:latest

steps:
- name: Checkout Code
uses: actions/checkout@v4

- name: Install dependencies
run: |
pacman -Sy --noconfirm base-devel namcap python python-build \
python-installer python-wheel python-setuptools \
python-yaml python-aiohttp python-async-lru python-rich

- name: Create build user
run: |
useradd -m builder
chown -R builder /github/workspace || chown -R builder $GITHUB_WORKSPACE

- name: Lint with namcap
run: namcap aur/PKGBUILD

- name: Build package
run: |
cp -r aur /home/builder/aur
chown -R builder /home/builder/aur
su builder -c 'cd /home/builder/aur && makepkg --noconfirm'

- name: Verify package installs
run: |
pkg=$(ls /home/builder/aur/*.pkg.tar.zst)
pacman -U --noconfirm "$pkg"
badfish --help
55 changes: 55 additions & 0 deletions .github/workflows/production-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -140,3 +140,58 @@ jobs:
podman tag quay.io/quads/badfish:master quay.io/quads/badfish:latest
podman push quay.io/quads/badfish:master
podman push quay.io/quads/badfish:latest

# ------------------------------------------------------------------
# JOB 4: AUR PUBLISH
# ------------------------------------------------------------------
aur_publish:
name: Publish to AUR
needs: release
if: needs.release.outputs.released == 'true'
runs-on: ubuntu-latest

steps:
- name: Checkout Tagged Release
uses: actions/checkout@v4
with:
ref: ${{ needs.release.outputs.tag }}

- name: Update PKGBUILD and .SRCINFO
env:
VERSION: ${{ needs.release.outputs.version }}
TAG: ${{ needs.release.outputs.tag }}
run: |
SHA256=$(curl -sL "https://github.com/quadsproject/badfish/archive/refs/tags/${TAG}.tar.gz" | sha256sum | cut -d' ' -f1)

sed -i "s/^pkgver=.*/pkgver=${VERSION}/" aur/PKGBUILD
sed -i "s/^pkgrel=.*/pkgrel=1/" aur/PKGBUILD
sed -i "s/^sha256sums=.*/sha256sums=('${SHA256}')/" aur/PKGBUILD

sed -i "s/^\tpkgver = .*/\tpkgver = ${VERSION}/" aur/.SRCINFO
sed -i "s/^\tpkgrel = .*/\tpkgrel = 1/" aur/.SRCINFO
sed -i "s|badfish-.*\.tar\.gz::|badfish-${VERSION}.tar.gz::|" aur/.SRCINFO
sed -i "s|/tags/v[^/]*/|/tags/${TAG}/|" aur/.SRCINFO
sed -i "s/^\tsha256sums = .*/\tsha256sums = ${SHA256}/" aur/.SRCINFO

- name: Set up SSH for AUR
env:
AUR_SSH_KEY: ${{ secrets.AUR_SSH_KEY }}
run: |
mkdir -p ~/.ssh
echo "$AUR_SSH_KEY" > ~/.ssh/aur
chmod 600 ~/.ssh/aur
printf 'Host aur.archlinux.org\n IdentityFile ~/.ssh/aur\n User aur\n' >> ~/.ssh/config
ssh-keyscan -H aur.archlinux.org >> ~/.ssh/known_hosts

- name: Push to AUR
env:
VERSION: ${{ needs.release.outputs.version }}
run: |
git config --global user.name "GitHub CI"
git config --global user.email "ci@github.com"
git clone ssh://aur@aur.archlinux.org/badfish.git /tmp/aur-badfish
cp aur/PKGBUILD aur/.SRCINFO /tmp/aur-badfish/
cd /tmp/aur-badfish
git add PKGBUILD .SRCINFO
git commit -m "Update to ${VERSION}"
git push
21 changes: 21 additions & 0 deletions aur/.SRCINFO
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
pkgbase = badfish
pkgdesc = Redfish-based API tool for managing bare-metal systems via out-of-band management
pkgver = 1.5.0
pkgrel = 1
url = https://github.com/quadsproject/badfish
arch = any
license = GPL-3.0-or-later
makedepends = python-build
makedepends = python-installer
makedepends = python-wheel
makedepends = python-setuptools
depends = python
depends = python-yaml
depends = python-aiohttp
depends = python-setuptools
depends = python-async-lru
depends = python-rich
source = badfish-1.5.0.tar.gz::https://github.com/quadsproject/badfish/archive/refs/tags/v1.5.0.tar.gz
sha256sums = 70ffb8e5980e8f0177ce6dec1e78550156a425b63d5ee41854df37a0ffb4b47d

pkgname = badfish
35 changes: 35 additions & 0 deletions aur/PKGBUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Maintainer: Marek Mahut <marek@mahut.dev>

pkgname=badfish
pkgver=1.5.0
pkgrel=1
pkgdesc="Redfish-based API tool for managing bare-metal systems via out-of-band management"
arch=('any')
url="https://github.com/quadsproject/badfish"
license=('GPL-3.0-or-later')
depends=(
'python'
'python-yaml'
'python-aiohttp'
'python-setuptools'
'python-async-lru'
'python-rich'
)
makedepends=(
'python-build'
'python-installer'
'python-wheel'
'python-setuptools'
)
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/quadsproject/badfish/archive/refs/tags/v${pkgver}.tar.gz")
sha256sums=('70ffb8e5980e8f0177ce6dec1e78550156a425b63d5ee41854df37a0ffb4b47d')

build() {
cd "${pkgname}-${pkgver}"
python -m build --wheel --no-isolation
}

package() {
cd "${pkgname}-${pkgver}"
python -m installer --destdir="${pkgdir}" dist/*.whl
}
Loading