137 lines
3.4 KiB
Groovy
137 lines
3.4 KiB
Groovy
pipeline {
|
|
agent any
|
|
|
|
environment {
|
|
PACKAGE_NAME = "espos-kernel"
|
|
APTLY_REPO = "espos-unstable"
|
|
|
|
APTLY_HOST = "ubuntu@elordenador.org"
|
|
|
|
DEB_FILE = "*.deb"
|
|
}
|
|
|
|
stages {
|
|
|
|
stage('Checkout') {
|
|
steps {
|
|
checkout scm
|
|
}
|
|
}
|
|
|
|
stage('Install Build Dependencies') {
|
|
steps {
|
|
sh '''
|
|
sudo apt update
|
|
|
|
sudo apt install -y \
|
|
build-essential \
|
|
bc \
|
|
bison \
|
|
flex \
|
|
libssl-dev \
|
|
libelf-dev \
|
|
dwarves \
|
|
fakeroot \
|
|
rsync \
|
|
kmod \
|
|
cpio \
|
|
wget \
|
|
curl \
|
|
xz-utils \
|
|
debhelper \
|
|
lintian \
|
|
libdw-dev
|
|
'''
|
|
}
|
|
}
|
|
|
|
stage('Build Kernel') {
|
|
steps {
|
|
sh '''
|
|
chmod +x build-kernel.sh
|
|
./build-kernel.sh
|
|
|
|
echo "=== Generated packages ==="
|
|
ls -lah *.deb
|
|
'''
|
|
}
|
|
}
|
|
|
|
stage('Lintian Check') {
|
|
steps {
|
|
sh '''
|
|
lintian *.deb || true
|
|
'''
|
|
}
|
|
}
|
|
|
|
stage('Archive Packages') {
|
|
steps {
|
|
archiveArtifacts(
|
|
artifacts: '*.deb',
|
|
fingerprint: true
|
|
)
|
|
}
|
|
}
|
|
|
|
stage('Upload to Aptly') {
|
|
steps {
|
|
sshagent(['srv01_elordenador_org']) {
|
|
sh '''
|
|
mkdir -p ~/.ssh
|
|
ssh-keyscan -H elordenador.org >> ~/.ssh/known_hosts
|
|
|
|
scp ${DEB_FILE} ${APTLY_HOST}:/tmp/
|
|
'''
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Publish Repository') {
|
|
steps {
|
|
sshagent(['srv01_elordenador_org']) {
|
|
|
|
withCredentials([
|
|
string(
|
|
credentialsId: 'aptly_gpg_pass',
|
|
variable: 'GPG_PASS'
|
|
)
|
|
]) {
|
|
|
|
sh '''
|
|
ssh ${APTLY_HOST} "
|
|
|
|
aptly repo add ${APTLY_REPO} /tmp/*.deb
|
|
|
|
if aptly publish list | grep -q ${APTLY_REPO}
|
|
then
|
|
aptly publish update \
|
|
-passphrase='${GPG_PASS}' \
|
|
${APTLY_REPO}
|
|
else
|
|
aptly publish repo \
|
|
-distribution=${APTLY_REPO} \
|
|
-component=main \
|
|
-passphrase='${GPG_PASS}' \
|
|
${APTLY_REPO}
|
|
fi
|
|
|
|
rm -f /tmp/*.deb
|
|
"
|
|
'''
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
post {
|
|
success {
|
|
echo 'Kernel publicado correctamente'
|
|
}
|
|
|
|
failure {
|
|
echo 'Error construyendo kernel'
|
|
}
|
|
}
|
|
} |