chore: build in external vms (#937)
diff --git a/Jenkinsfile b/Jenkinsfile
index 75b3574..f5f766b 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -1,3 +1,16 @@
+def installDocker() {
+ sh 'curl -fsSL https://get.docker.com | sh'
+ sh 'sudo usermod -aG docker ubuntu'
+}
+
+def installEarthly() {
+ installDocker()
+
+ sh 'curl -fsSL https://github.com/earthly/earthly/releases/latest/download/earthly-linux-amd64 -o /usr/local/bin/earthly'
+ sh 'chmod +x /usr/local/bin/earthly'
+ sh 'earthly bootstrap'
+}
+
pipeline {
agent none
@@ -21,10 +34,11 @@
parallel {
stage('ansible-lint') {
agent {
- label 'earthly'
+ label 'jammy-2c-4g'
}
steps {
+ installEarthly()
sh 'earthly --output +lint.ansible-lint'
}
@@ -37,10 +51,11 @@
stage('helm') {
agent {
- label 'earthly'
+ label 'jammy-2c-4g'
}
steps {
+ installEarthly()
sh 'earthly --output +lint.helm'
}
@@ -53,10 +68,11 @@
stage('markdownlint') {
agent {
- label 'earthly'
+ label 'jammy-2c-4g'
}
steps {
+ installEarthly()
sh 'earthly --output +lint.markdownlint'
}
@@ -69,10 +85,11 @@
stage('image-manifest') {
agent {
- label 'earthly'
+ label 'jammy-2c-4g'
}
steps {
+ installEarthly()
sh 'earthly +lint.image-manifest'
}
}
@@ -83,10 +100,11 @@
parallel {
stage('go') {
agent {
- label 'earthly'
+ label 'jammy-2c-4g'
}
steps {
+ installEarthly()
sh 'earthly --output +unit.go'
}
@@ -103,10 +121,11 @@
parallel {
stage('collection') {
agent {
- label 'earthly'
+ label 'jammy-2c-4g'
}
steps {
+ installEarthly()
sh 'earthly --output +build.collection'
archiveArtifacts artifacts: 'dist/**'
}
@@ -136,10 +155,11 @@
stage('docs') {
agent {
- label 'earthly'
+ label 'jammy-2c-4g'
}
steps {
+ installEarthly()
sh 'earthly +mkdocs-build'
}
}