Files
Daniel 79d9f06f8a Remove obsolete files and add kernel metapackage build scripts
- Deleted the Mozilla Public License file as it is no longer needed.
- Removed unused MOTD and Debian vendor information files.
- Added new scripts for building a kernel metapackage and detecting kernel packages.
- Removed legacy shell configuration files and associated MD5 sums.
- Cleaned up unnecessary documentation and policy files related to /usr/local permissions.
2026-07-18 17:16:12 +02:00

123 lines
4.2 KiB
Groovy

pipeline {
agent any
options {
skipDefaultCheckout(true)
disableConcurrentBuilds()
timestamps()
}
environment {
KERNEL_JOB = 'espos-kernel'
APTLY_REPO = 'espos-unstable'
APTLY_HOST = 'ubuntu@elordenador.org'
APTLY_SSH_HOST = 'elordenador.org'
}
stages {
stage('Checkout') {
steps {
deleteDir()
checkout scm
}
}
stage('Download kernel artifacts') {
steps {
// Copy Artifact plugin: latest successful build of espos-kernel.
copyArtifacts(
projectName: env.KERNEL_JOB,
selector: lastSuccessful(stable: false),
filter: '**/linux-image-*-espos_*.deb,**/linux-headers-*-espos_*.deb',
target: 'kernel-artifacts',
flatten: true,
optional: false
)
sh 'find kernel-artifacts -maxdepth 1 -type f -name "*.deb" -print'
}
}
stage('Install build dependencies') {
steps {
sh '''
set -eu
sudo apt-get update
sudo apt-get install -y dpkg-dev lintian
'''
}
}
stage('Build metapackage') {
steps {
sh '''
set -eu
./scripts/build-metapackage kernel-artifacts dist
dpkg-deb --info dist/espos-kernel_*.deb
'''
}
}
stage('Lintian') {
steps {
sh 'lintian dist/espos-kernel_*.deb'
}
}
stage('Publish in Aptly') {
steps {
sshagent(['srv01_elordenador_org']) {
withCredentials([
string(credentialsId: 'aptly_gpg_pass', variable: 'GPG_PASS')
]) {
sh '''
set -eu
remote_dir="/tmp/espos-kernel-metapackage-${BUILD_TAG}"
mkdir -p "$HOME/.ssh"
chmod 700 "$HOME/.ssh"
ssh-keyscan -H "$APTLY_SSH_HOST" >> "$HOME/.ssh/known_hosts"
ssh "$APTLY_HOST" "mkdir -p '$remote_dir' && chmod 700 '$remote_dir'"
trap 'ssh "$APTLY_HOST" "rm -rf '\''$remote_dir'\''"' EXIT HUP INT TERM
scp dist/espos-kernel_*.deb "$APTLY_HOST:$remote_dir/"
# The passphrase travels over SSH stdin and is never an argument.
printf '%s' "$GPG_PASS" | ssh "$APTLY_HOST" \
"umask 077; cat > '$remote_dir/gpg-passphrase'"
ssh "$APTLY_HOST" "
set -eu
aptly repo add -force-replace '$APTLY_REPO' '$remote_dir'/espos-kernel_*.deb
if aptly publish list -raw | grep -Eq '^[^[:space:]]+[[:space:]]+$APTLY_REPO$'; then
aptly publish update \
-passphrase-file='$remote_dir/gpg-passphrase' \
'$APTLY_REPO'
else
aptly publish repo \
-distribution='$APTLY_REPO' \
-component=main \
-passphrase-file='$remote_dir/gpg-passphrase' \
'$APTLY_REPO'
fi
"
'''
}
}
}
}
}
post {
always {
archiveArtifacts artifacts: 'dist/espos-kernel_*.deb', fingerprint: true, allowEmptyArchive: true
}
success {
echo 'Metapaquete espos-kernel publicado correctamente'
}
failure {
echo 'Error construyendo o publicando espos-kernel'
}
}
}