Compare commits

..

2 Commits

Author SHA1 Message Date
71bb2e8de5 Provide installonlypkg(kernel-module)
Some checks failed
RPMs/gasket-driver/pipeline/head There was a failure building this commit
This should hopefully allow multiple simultaneous versions of the
package to be installed (i.e. one for each installed kernel), without
having to explicitly specify `installonlypkgs = gasket-driver` in
`dnf.conf`.
2025-11-23 18:15:08 -06:00
1a2b2f604c ci: Use fedoraBuild function
All checks were successful
RPMs/gasket-driver/pipeline/head This commit looks good
Instead of manually specifying a list of Fedora versions to target, we
can now use the `fedoraBuild` pipeline function to generate the target
matrix automatically.

Note that the stage names need to be unique, as the `when` function
cannot mark the correct stage as "skipped" if there are multiple stages
with the same name.
2025-11-23 16:48:40 -06:00
2 changed files with 67 additions and 88 deletions

149
ci/Jenkinsfile vendored
View File

@@ -1,7 +1,7 @@
pipeline {
agent none
@Library('dch')_
triggers {
properties([
pipelineTriggers([
GenericTrigger(
causeString: 'Webhook Trigger',
genericVariables: [[
@@ -15,100 +15,75 @@ pipeline {
silentResponse: true,
tokenCredentialId: 'webhook-trigger',
)
}
])
])
stages {
stage('RPM') {
matrix {
axes {
axis {
name 'FEDORA'
values '41', '42'
}
try {
fedoraBuild(
architectures: ['amd64'],
podTemplate: 'ci/podTemplate.yaml',
buildContainer: 'fedora',
) { arch, fedoraVersion ->
stage("Prepare f${fedoraVersion}/${arch}") {
checkout scm
container('fedora') {
sh '. ci/prepare.sh'
}
}
stage("Build f${fedoraVersion}/${arch}") {
withCredentials([file(
credentialsId: 'kmod-signing-cert',
variable: 'SIGNING_KEY',
)]) {
container('fedora') {
sh '. ci/build.sh'
}
}
}
agent {
kubernetes {
yamlFile 'ci/podTemplate.yaml'
yamlMergeStrategy merge()
defaultContainer 'fedora'
containerTemplate {
name 'fedora'
image "registry.fedoraproject.org/fedora:${FEDORA}"
stage("Sign f${fedoraVersion}/${arch}") {
when(BRANCH_NAME == 'main') {
withEnvironment([
"GNUPGHOME=${env.WORKSPACE_TMP}/gnupg",
]) {
withCredentials([
file(
credentialsId: 'rpm-gpg-key',
variable: 'RPM_GPG_PRIVATE_KEY',
),
file(
credentialsId: 'rpm-gpg-key-passphrase',
variable: 'RPM_GPG_KEY_PASSPHRASE',
),
]) {
container('fedora') {
sh '. ci/sign.sh'
}
}
}
}
}
stages {
stage('Prepare') {
steps {
sh '. ci/prepare.sh'
}
archiveArtifacts '*.rpm'
stage("Publish f${fedoraVersion}/${arch}") {
when(BRANCH_NAME == 'main') {
container('fedora') {
sshagent(['jenkins-repohost']) {
sh '. ci/publish.sh'
}
stage('Build') {
steps {
withCredentials([file(
credentialsId: 'kmod-signing-cert',
variable: 'SIGNING_KEY',
)]) {
sh '. ci/build.sh'
}
}
}
stage('Sign') {
when {
branch 'main'
}
environment {
GNUPGHOME = "${env.WORKSPACE_TMP}/gnupg"
}
steps {
withCredentials([
file(
credentialsId: 'rpm-gpg-key',
variable: 'RPM_GPG_PRIVATE_KEY',
),
file(
credentialsId: 'rpm-gpg-key-passphrase',
variable: 'RPM_GPG_KEY_PASSPHRASE',
),
]) {
sh '. ci/sign.sh'
}
}
}
stage('Archive') {
steps {
archiveArtifacts '*.rpm'
}
}
stage('Publish') {
when {
branch 'main'
}
steps {
sshagent(['jenkins-repohost']) {
sh '. ci/publish.sh'
}
}
}
}
}
}
}
post {
failure {
emailext(
to: 'gyrfalcon@ebonfire.com',
subject: '$DEFAULT_SUBJECT',
body: '$DEFAULT_CONTENT',
)
}
}
} catch (ex) {
currentBuild.result = 'FAILED'
emailext(
to: 'gyrfalcon@ebonfire.com',
subject: '$DEFAULT_SUBJECT',
body: '$DEFAULT_CONTENT',
)
throw ex
}

View File

@@ -9,7 +9,7 @@
Name: gasket-driver
Version: 0.0.git%{git_revision}
Release: 3.k%{kernel_version}%{?dist}
Release: 4.k%{kernel_version}%{?dist}
Summary: The Coral Gasket Driver allows usage of the Coral EdgeTPU on Linux systems
License: GPL-2.0
@@ -19,6 +19,7 @@ Patch0: 0001-core-Omit-no_llseek-reference.patch
Patch1: 0002-Update-gasket_page_table.c-Fix-MODULE_IMPORT_NS.patch
BuildRequires: kernel-devel
Provides: installonlypkg(kernel-module)
Requires: kernel-core == %{kernel_version}
Conflicts: kernel-core > %{kernel_version}
Requires(post): kmod
@@ -50,6 +51,9 @@ depmod -a %{kernel_ver}.%{_arch}
%changelog
* Sun Nov 23 2025 Dustin C. Hatch <dustin@hatch.name> [0.0.git5815ee3-4]
- Provide installonlypkg(kernel-module)
* Sun Nov 16 2025 Dustin C. Hatch <dustin@hatch.name> [0.0.git5815ee3-2]
- Include kernel version in release tag