ci: Begin Jenkins pipeline
This commit is contained in:
52
ci/Jenkinsfile
vendored
Normal file
52
ci/Jenkinsfile
vendored
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
pipeline {
|
||||||
|
agent none
|
||||||
|
|
||||||
|
stages {
|
||||||
|
stage('RPM') {
|
||||||
|
matrix {
|
||||||
|
axes {
|
||||||
|
axis {
|
||||||
|
name 'FEDORA'
|
||||||
|
values '41', '42'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
agent {
|
||||||
|
kubernetes {
|
||||||
|
yamlFile 'ci/podTemplate.yaml'
|
||||||
|
yamlMergeStrategy merge()
|
||||||
|
defaultContainer 'fedora'
|
||||||
|
containerTemplate {
|
||||||
|
name 'fedora'
|
||||||
|
image "registry.fedoraproject.org/fedora:${FEDORA}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stages {
|
||||||
|
stage('Prepare') {
|
||||||
|
steps {
|
||||||
|
sh '. ci/prepare.sh'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Build') {
|
||||||
|
steps {
|
||||||
|
sh '. ci/build.sh'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
failure {
|
||||||
|
emailext(
|
||||||
|
to: 'gyrfalcon@ebonfire.com',
|
||||||
|
subject: '$DEFAULT_SUBJECT',
|
||||||
|
body: '$DEFAULT_CONTENT',
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
21
ci/build.sh
Normal file
21
ci/build.sh
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if [ $(id -u) -eq 0 ]; then
|
||||||
|
exec setpriv --clear-groups --reuid 1000 --regid 1000 --inh-caps=-all \
|
||||||
|
sh -ex ci/build.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
git_rev=$(
|
||||||
|
sed -nr '/^%global git_revision_full/s/.* ([a-z0-9]{40})$/\1/p' \
|
||||||
|
gasket-driver.spec
|
||||||
|
)
|
||||||
|
curl -fL \
|
||||||
|
-o gasket-driver-${git_rev}.tar.gz \
|
||||||
|
https://github.com/google/gasket-driver/archive/${git_rev}.tar.gz
|
||||||
|
|
||||||
|
rpmbuild \
|
||||||
|
-D "_topdir ${PWD}" \
|
||||||
|
-D '_sourcedir %{_topdir}' \
|
||||||
|
-ba gasket-driver.spec
|
||||||
|
|
||||||
|
ln RPMS/*/*.rpm SRPMS/*.rpm .
|
||||||
24
ci/podTemplate.yaml
Normal file
24
ci/podTemplate.yaml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: fedora
|
||||||
|
command:
|
||||||
|
- cat
|
||||||
|
stdin: true
|
||||||
|
tty: true
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 1500m
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 0
|
||||||
|
runAsGroup: 0
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /etc/ssh/ssh_known_hosts
|
||||||
|
name: ssh-known-hosts
|
||||||
|
subPath: ssh_known_hosts
|
||||||
|
hostUsers: false
|
||||||
|
nodeSelector:
|
||||||
|
du5t1n.me/jenkins:
|
||||||
|
volumes:
|
||||||
|
- name: ssh-known-hosts
|
||||||
|
configMap:
|
||||||
|
name: ssh-known-hosts
|
||||||
8
ci/prepare.sh
Normal file
8
ci/prepare.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
xargs dnf install -y --setopt install_weak_deps=0 <<EOF
|
||||||
|
kernel-devel
|
||||||
|
rpm-build
|
||||||
|
rpm-sign
|
||||||
|
util-linux
|
||||||
|
EOF
|
||||||
Reference in New Issue
Block a user