| pipeline { |
| agent none |
| |
| options { |
| disableConcurrentBuilds(abortPrevious: true); |
| } |
| |
| // TODO: periodic multi-node jobs |
| |
| environment { |
| EARTHLY_CI = 'true' |
| } |
| |
| stages { |
| stage('lint') { |
| parallel { |
| stage('ansible-lint') { |
| agent { |
| label 'earthly-2c-4g' |
| } |
| |
| steps { |
| sh 'earthly --output +lint.ansible-lint' |
| } |
| |
| post { |
| always { |
| junit testResults: 'ansible-lint.xml', allowEmptyResults: true |
| } |
| } |
| } |
| |
| stage('markdownlint') { |
| agent { |
| label 'earthly-2c-4g' |
| } |
| |
| steps { |
| sh 'earthly --output +lint.markdownlint' |
| } |
| |
| post { |
| always { |
| junit testResults: 'junit.xml', allowEmptyResults: true |
| } |
| } |
| } |
| } |
| } |
| |
| stage('unit') { |
| agent { |
| label 'earthly-2c-4g' |
| } |
| |
| steps { |
| sh 'earthly --output +unit.go' |
| } |
| |
| post { |
| always { |
| junit 'junit-go.xml' |
| } |
| } |
| } |
| |
| stage('build') { |
| parallel { |
| stage('collection') { |
| agent { |
| label 'earthly-2c-4g' |
| } |
| |
| steps { |
| sh 'earthly --output +build.collection' |
| } |
| |
| post { |
| success { |
| archiveArtifacts artifacts: 'dist/**' |
| } |
| } |
| } |
| } |
| } |
| |
| // promote images |
| // release? |
| // todo: manual pin commit to main (avoiding loop) |
| } |
| } |