78 lines
2.5 KiB
Groovy
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}"
|
|
}
|
|
}
|
|
}
|