Mohammed Naser | 1220717 | 2024-02-05 18:49:35 -0500 | [diff] [blame] | 1 | pipeline { |
Mohammed Naser | e7569e0 | 2024-02-20 14:33:37 -0500 | [diff] [blame] | 2 | agent none |
Mohammed Naser | 1220717 | 2024-02-05 18:49:35 -0500 | [diff] [blame] | 3 | |
Mohammed Naser | e7569e0 | 2024-02-20 14:33:37 -0500 | [diff] [blame] | 4 | options { |
5 | disableConcurrentBuilds(abortPrevious: true); | ||||
6 | } | ||||
Mohammed Naser | 1220717 | 2024-02-05 18:49:35 -0500 | [diff] [blame] | 7 | |
Mohammed Naser | e7569e0 | 2024-02-20 14:33:37 -0500 | [diff] [blame] | 8 | // TODO: periodic multi-node jobs |
Mohammed Naser | 1220717 | 2024-02-05 18:49:35 -0500 | [diff] [blame] | 9 | |
Mohammed Naser | e7569e0 | 2024-02-20 14:33:37 -0500 | [diff] [blame] | 10 | environment { |
11 | EARTHLY_CI = 'true' | ||||
12 | } | ||||
Mohammed Naser | 1220717 | 2024-02-05 18:49:35 -0500 | [diff] [blame] | 13 | |
Mohammed Naser | e7569e0 | 2024-02-20 14:33:37 -0500 | [diff] [blame] | 14 | stages { |
15 | stage('lint') { | ||||
16 | parallel { | ||||
17 | stage('ansible-lint') { | ||||
18 | agent { | ||||
19 | label 'earthly-2c-4g' | ||||
20 | } | ||||
Mohammed Naser | 1220717 | 2024-02-05 18:49:35 -0500 | [diff] [blame] | 21 | |
Mohammed Naser | e7569e0 | 2024-02-20 14:33:37 -0500 | [diff] [blame] | 22 | steps { |
23 | sh 'earthly --output +lint.ansible-lint' | ||||
24 | } | ||||
Mohammed Naser | 1220717 | 2024-02-05 18:49:35 -0500 | [diff] [blame] | 25 | |
Mohammed Naser | e7569e0 | 2024-02-20 14:33:37 -0500 | [diff] [blame] | 26 | post { |
27 | always { | ||||
28 | junit testResults: 'ansible-lint.xml', allowEmptyResults: true | ||||
29 | } | ||||
30 | } | ||||
31 | } | ||||
Mohammed Naser | 1220717 | 2024-02-05 18:49:35 -0500 | [diff] [blame] | 32 | |
Mohammed Naser | e7569e0 | 2024-02-20 14:33:37 -0500 | [diff] [blame] | 33 | stage('markdownlint') { |
34 | agent { | ||||
35 | label 'earthly-2c-4g' | ||||
36 | } | ||||
Mohammed Naser | 1220717 | 2024-02-05 18:49:35 -0500 | [diff] [blame] | 37 | |
Mohammed Naser | e7569e0 | 2024-02-20 14:33:37 -0500 | [diff] [blame] | 38 | steps { |
39 | sh 'earthly --output +lint.markdownlint' | ||||
40 | } | ||||
Mohammed Naser | 1220717 | 2024-02-05 18:49:35 -0500 | [diff] [blame] | 41 | |
Mohammed Naser | e7569e0 | 2024-02-20 14:33:37 -0500 | [diff] [blame] | 42 | post { |
43 | always { | ||||
44 | junit testResults: 'junit.xml', allowEmptyResults: true | ||||
45 | } | ||||
46 | } | ||||
47 | } | ||||
Mohammed Naser | e7569e0 | 2024-02-20 14:33:37 -0500 | [diff] [blame] | 48 | } |
49 | } | ||||
Mohammed Naser | 1220717 | 2024-02-05 18:49:35 -0500 | [diff] [blame] | 50 | |
Mohammed Naser | e7569e0 | 2024-02-20 14:33:37 -0500 | [diff] [blame] | 51 | stage('unit') { |
Mohammed Naser | 4c8e0cb | 2024-02-21 11:51:34 -0500 | [diff] [blame] | 52 | agent { |
53 | label 'earthly-2c-4g' | ||||
54 | } | ||||
Mohammed Naser | 1220717 | 2024-02-05 18:49:35 -0500 | [diff] [blame] | 55 | |
Mohammed Naser | 4c8e0cb | 2024-02-21 11:51:34 -0500 | [diff] [blame] | 56 | steps { |
57 | sh 'earthly --output +unit.go' | ||||
58 | } | ||||
Mohammed Naser | 1220717 | 2024-02-05 18:49:35 -0500 | [diff] [blame] | 59 | |
Mohammed Naser | 4c8e0cb | 2024-02-21 11:51:34 -0500 | [diff] [blame] | 60 | post { |
61 | always { | ||||
62 | junit 'junit-go.xml' | ||||
Mohammed Naser | e7569e0 | 2024-02-20 14:33:37 -0500 | [diff] [blame] | 63 | } |
64 | } | ||||
65 | } | ||||
Mohammed Naser | 1220717 | 2024-02-05 18:49:35 -0500 | [diff] [blame] | 66 | |
Mohammed Naser | e7569e0 | 2024-02-20 14:33:37 -0500 | [diff] [blame] | 67 | stage('build') { |
68 | parallel { | ||||
69 | stage('collection') { | ||||
70 | agent { | ||||
71 | label 'earthly-2c-4g' | ||||
72 | } | ||||
Mohammed Naser | 1220717 | 2024-02-05 18:49:35 -0500 | [diff] [blame] | 73 | |
Mohammed Naser | e7569e0 | 2024-02-20 14:33:37 -0500 | [diff] [blame] | 74 | steps { |
75 | sh 'earthly --output +build.collection' | ||||
76 | } | ||||
Mohammed Naser | fdd5cee | 2024-02-07 23:45:52 -0500 | [diff] [blame] | 77 | |
Mohammed Naser | e7569e0 | 2024-02-20 14:33:37 -0500 | [diff] [blame] | 78 | post { |
79 | success { | ||||
80 | archiveArtifacts artifacts: 'dist/**' | ||||
81 | } | ||||
82 | } | ||||
83 | } | ||||
Mohammed Naser | 1220717 | 2024-02-05 18:49:35 -0500 | [diff] [blame] | 84 | |
Mohammed Naser | e7569e0 | 2024-02-20 14:33:37 -0500 | [diff] [blame] | 85 | stage('docs') { |
86 | agent { | ||||
87 | label 'earthly-2c-4g' | ||||
88 | } | ||||
Mohammed Naser | 1220717 | 2024-02-05 18:49:35 -0500 | [diff] [blame] | 89 | |
Mohammed Naser | e7569e0 | 2024-02-20 14:33:37 -0500 | [diff] [blame] | 90 | steps { |
91 | sh 'earthly +mkdocs-build' | ||||
92 | } | ||||
93 | } | ||||
94 | } | ||||
95 | } | ||||
Mohammed Naser | 1220717 | 2024-02-05 18:49:35 -0500 | [diff] [blame] | 96 | |
Mohammed Naser | e7569e0 | 2024-02-20 14:33:37 -0500 | [diff] [blame] | 97 | // promote images |
98 | // release? | ||||
99 | // todo: manual pin commit to main (avoiding loop) | ||||
100 | } | ||||
Mohammed Naser | 1220717 | 2024-02-05 18:49:35 -0500 | [diff] [blame] | 101 | } |