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
81 changes: 81 additions & 0 deletions .github/workflows/arch.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
name: Make Arch Package

on:
push:
pull_request:
workflow_dispatch:

permissions:
contents: write

jobs:
build-pkg:
runs-on: ubuntu-latest
container:
image: archlinux:base-devel
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install build dependencies
run: |
pacman -Syu --noconfirm
pacman -S --noconfirm \
python \
python-build \
python-installer \
python-wheel \
python-poetry-core \
python-click \
python-requests \
python-gitpython \
python-yaml \
python-tabulate \
python-matplotlib \
namcap

- name: Update PKGBUILD version from pyproject.toml
working-directory: packaging/arch
run: |
VERSION=$(grep '^version = ' ../../pyproject.toml | sed 's/version = "\(.*\)"/\1/')
sed -i "s/^pkgver=.*/pkgver=${VERSION}/" PKGBUILD
echo "Building version: ${VERSION}"

- name: Validate PKGBUILD
working-directory: packaging/arch
run: namcap PKGBUILD

- name: Build package
working-directory: packaging/arch
run: |
# makepkg cannot run as root, create a build user
useradd -m builder
chown -R builder:builder .
su builder -c "makepkg --printsrcinfo > .SRCINFO"
su builder -c "makepkg -s --noconfirm"

- name: Validate built package
working-directory: packaging/arch
run: namcap *.pkg.tar.zst

- name: Collect artifacts
run: |
mkdir -p artifacts
mv packaging/arch/*.pkg.tar.zst artifacts/
cp packaging/arch/PKGBUILD artifacts/
cp packaging/arch/.SRCINFO artifacts/

- name: Upload Arch package artifact
uses: actions/upload-artifact@v4
with:
name: kci-dev-arch-package
path: artifacts/

- name: Upload Arch package to GitHub Release on new tag
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref_name }}
files: artifacts/*.pkg.tar.zst
24 changes: 24 additions & 0 deletions packaging/arch/.SRCINFO
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
pkgbase = kci-dev
pkgdesc = Stand alone tool for Linux Kernel developers and maintainers to interact with KernelCI
pkgver = 0.1.9
pkgrel = 1
url = https://github.com/kernelci/kci-dev
arch = any
license = LGPL-2.1-or-later
makedepends = python-build
makedepends = python-installer
makedepends = python-wheel
makedepends = python-poetry-core
depends = python>=3.10
depends = python-click
depends = python-requests
depends = python-gitpython
depends = python-yaml
depends = python-tabulate
depends = python-matplotlib
optdepends = python-mplcursors: interactive cursor support for plots (AUR)
optdepends = bash-completion: bash completion support
source = kci-dev-0.1.9.tar.gz::https://github.com/kernelci/kci-dev/archive/refs/tags/v0.1.9.tar.gz
sha256sums = SKIP

pkgname = kci-dev
53 changes: 53 additions & 0 deletions packaging/arch/PKGBUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Maintainer: Ben Copeland <ben.copeland@linaro.org>
# https://github.com/kernelci/kci-dev

pkgname=kci-dev
pkgver=0.1.9
pkgrel=1
pkgdesc='Stand alone tool for Linux Kernel developers and maintainers to interact with KernelCI'
arch=('any')
url='https://github.com/kernelci/kci-dev'
license=('LGPL-2.1-or-later')
depends=(
'python>=3.10'
'python-click'
'python-requests'
'python-gitpython'
'python-yaml'
'python-tabulate'
'python-matplotlib'
)
makedepends=(
'python-build'
'python-installer'
'python-wheel'
'python-poetry-core'
)
optdepends=(
'python-mplcursors: interactive cursor support for plots (AUR)'
'bash-completion: bash completion support'
)
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/kernelci/kci-dev/archive/refs/tags/v${pkgver}.tar.gz")
sha256sums=('SKIP')

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

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

# Shell completions
install -Dm644 completions/kci-dev-completion.bash \
"${pkgdir}/usr/share/bash-completion/completions/kci-dev"
install -Dm644 completions/_kci-dev \
"${pkgdir}/usr/share/zsh/site-functions/_kci-dev"
install -Dm644 completions/kci-dev.fish \
"${pkgdir}/usr/share/fish/vendor_completions.d/kci-dev.fish"

# License and documentation
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
install -Dm644 README.md "${pkgdir}/usr/share/doc/${pkgname}/README.md"
}