Files
hermes-agent-packer/Jenkinsfile
2026-04-23 21:07:49 +00:00

78 lines
2.5 KiB
Groovy

pipeline {
agent any
parameters {
string(name: 'HERMES_VERSION', defaultValue: 'v0.7.0', description: 'Hermes Agent version to install (e.g. v0.7.0)')
string(name: 'VULTR_REGION', defaultValue: 'ewr', description: 'Vultr region for the build instance')
string(name: 'VULTR_PLAN', defaultValue: 'vc2-2c-4gb', description: 'Vultr plan for the build instance')
string(name: 'VULTR_OS_ID', defaultValue: '2284', description: 'Vultr OS ID (2284 = Ubuntu 24.04 LTS)')
}
stages {
stage('Validate') {
steps {
script {
if (!params.HERMES_VERSION?.trim()) {
error "HERMES_VERSION parameter is required."
}
}
}
}
stage('Checkout') {
steps {
checkout([
$class: 'GitSCM',
branches: [[name: '*/master']],
userRemoteConfigs: [[
url: 'https://git.vultropenclaw.com/vultr/hermes-agent-marketplace-packer.git'
]]
])
}
}
stage('Check Packer') {
steps {
sh 'packer --version'
}
}
stage('Packer Init') {
steps {
sh 'packer init hermes.pkr.hcl'
}
}
stage('Packer Build') {
steps {
withCredentials([string(
credentialsId: 'VULTR_API_KEY',
variable: 'VULTR_API_KEY'
)]) {
sh """
packer build \
-var 'vultr_api_key=${VULTR_API_KEY}' \
-var 'hermes_version=${params.HERMES_VERSION}' \
-var 'region_id=${params.VULTR_REGION}' \
-var 'plan_id=${params.VULTR_PLAN}' \
-var 'os_id=${params.VULTR_OS_ID}' \
-color=false \
hermes.pkr.hcl
"""
}
}
}
}
post {
success {
echo "✅ Snapshot built for Hermes Agent ${params.HERMES_VERSION}"
echo "✅ Region: ${params.VULTR_REGION} Plan: ${params.VULTR_PLAN}"
}
failure {
echo "❌ Packer build failed for Hermes Agent ${params.HERMES_VERSION}"
}
}
}