github.com/upcmd/up@v0.8.1-0.20230108151705-ad8b797bf04f/tests/functests/e0166.yml (about) 1 notes: 2 - documented in docs 3 4 scopes: 5 - name: global 6 vars: 7 my_docker_ep: gitlab/mydocker_repo/jenkins 8 dvars: 9 - name: ENV 10 value: dev1 11 flags: 12 - envVar 13 14 - name: JENKINS_NAME 15 value: '{{ env "JENKINS_NAME" |validateMandatoryFailIfNone "JENKINS_NAME" }}' 16 17 - name: JENKINS_MASTER_DOCKER_IMAGE_URL 18 value: '{{.my_docker_ep}}/master' 19 flags: 20 - envVar 21 22 - name: JENKINS_SLAVE_DOCKER_IMAGE_URL 23 value: '{{.my_docker_ep}}/slave' 24 flags: 25 - envVar 26 27 - name: JENKINS_EXPECTED_VERSION 28 value: 2.222.4 29 flags: 30 - envVar 31 32 - name: nonprod 33 members: 34 - dev 35 - staging 36 dvars: 37 - name: ASSUME_ROLE_ARN 38 value: arn:aws:iam::123456789012:role/my-nonn-prod-iam-role 39 flags: 40 - envVar 41 - name: JENKINS_PVT_USERNAME 42 value: svc_go 43 flags: 44 - envVar 45 46 - name: prod 47 members: 48 - dr 49 - prod 50 vars: 51 host_alias: prod 52 dvars: 53 - name: ENV 54 value: prod 55 flags: 56 - envVar 57 - name: ASSUME_ROLE_ARN 58 value: arn:aws:iam::998654321012:role/my-nonn-prod-iam-role 59 flags: 60 - envVar 61 62 - name: JENKINS_USERNAME 63 value: my_jenkins_prod_user 64 flags: 65 - envVar 66 67 - name: staging 68 dvars: 69 - name: ENV 70 value: staging 71 flags: 72 - envVar 73 74 dvars: 75 - name: JENKINS_URL 76 desc: | 77 auto render to a specific valid url 78 value: '{{ printf "%s-%s.myjenkins.xyz" .JENKINS_NAME .ENV}}' 79 flags: 80 - envVar 81 82 eprofiles: 83 - name: my-jenkins-local-test 84 desc: | 85 a test profile for test in local machine 86 instance: staging 87 evars: 88 - name: JENKINS_NAME 89 value: my-jenkins-test 90 91 - name: SKIP_EBS_BACKUP 92 value: "true" 93 94 - name: jenkins-prod-gocd 95 instance: prod 96 desc: | 97 a profile for jenkins prod stack creation in GoCD 98 evars: 99 - name: JENKINS_NAME 100 value: jenkins-prod 101 102 - name: SKIP_EBS_BACKUP 103 value: "false" 104 105 - name: jenkins-dev 106 instance: dev 107 desc: | 108 all other tests are running in jenkins slave 109 evars: 110 - name: JENKINS_NAME 111 value: dev-jenkins 112 113 - name: SKIP_EBS_BACKUP 114 value: "true" 115 116 tasks: 117 - 118 name: task 119 desc: main entry 120 task: 121 - func: cmd 122 do: 123 - name: inspect 124 cmd: 125 - exec_vars 126 - exec_base_env_vars_configured 127 128 - name: assert 129 cmd: 130 - '{{eq .JENKINS_NAME "my-jenkins-test" }}' 131 - '{{eq .JENKINS_URL "my-jenkins-test-staging.myjenkins.xyz" }}' 132 - '{{eq .JENKINS_SLAVE_DOCKER_IMAGE_URL "gitlab/mydocker_repo/jenkins/slave" }}' 133 134 - 135 func: shell 136 dvars: 137 - name: env_export_test 138 value: '{{envExport "exec_env_vars_configured" ""}}' 139 flags: 140 - v 141 desc: main job 142 do: 143 - 'echo """{{.env_export_test}}"""' 144 145 - 146 func: shell 147 do: 148 - echo "demo conditionally quit" 149 if: '{{ne .ENV "prod"}}' 150 else: 151 - func: cmd 152 do: 153 - name: print 154 cmd: not allow to touch prod 155 - name: exit 156 157 - func: block 158 desc: | 159 conditionally exec in gocd / jenkins / local 160 obtain the env var from the build environment, it could be either GoCD agent, or a Jenkins slave 161 it does not matter if the agent is in a EC2 instance, or a docker, or inside of k8s pod, as long as the env var used as indication is right for your case, below is just for example 162 dvars: 163 - name: gocd_marker 164 value: '{{ env "GOCD_AGENT_VERSION" }}' 165 flags: 166 - taskScope 167 - v 168 - name: jenkins_marker 169 value: '{{ env "JENKINS_20_AGENT_SERVICE_PORT" }}' 170 flags: 171 - taskScope 172 - v 173 if: '{{or (ne .gocd_marker "None") (ne .jenkins_marker "None")}}' 174 do: 175 - 176 func: shell 177 desc: | 178 run in gocd if it detects there is a GoCD marker 179 also it runs the piped in comand as prior script before real provision step 180 do: | 181 #{{.up_runtime_task_pipe_in_content}} 182 echo "make my_jenkins_stack_creation" 183 if: '{{(ne .gocd_marker "None") }}' 184 - 185 func: shell 186 desc: | 187 run in jenkins 188 it use different prior step to assume role 189 do: | 190 echo "source ./assume_role.sh" 191 echo "make my_jenkins_stack_creation" 192 if: '{{(ne .jenkins_marker "None")}}' 193 else: 194 - 195 func: shell 196 do: 197 - echo "starting my real stack creation work" 198 - echo "this job is running in my local machine" 199 - echo "make my_jenkins_stack_creation"