1+ // ////////////////////////////////////////////////////////////////////////////////////////
2+
3+ def withSecretEnv (List<Map > varAndPasswordList , Closure closure ) {
4+ wrap([$class : ' MaskPasswordsBuildWrapper' , varPasswordPairs : varAndPasswordList]) {
5+ withEnv(varAndPasswordList. collect { " ${ it.var} =${ it.password} " }) {
6+ closure()
7+ }
8+ }
9+ }
10+
11+ // ////////////////////////////////////////////////////////////////////////////////////////
12+
13+ node {
14+
15+ env. PROJECT_NAME = ' polymesh-apps'
16+ env. GIT_REPO = " ssh://git@ssh.gitea.polymesh.dev:4444/Deployment/${ PROJECT_NAME} .git"
17+
18+ properties([[$class : ' BuildDiscarderProperty' ,
19+ strategy : [$class : ' LogRotator' ,
20+ numToKeepStr : ' 7' ,
21+ daysToKeepStr : ' 7' ,
22+ artifactNumToKeepStr : ' 7' ,
23+ artifactDaysToKeepStr : ' 7' ]]])
24+
25+ if (env. CHANGE_BRANCH ) {
26+ env. GIT_BRANCH = env. CHANGE_BRANCH // Job was started from a pull request
27+ } else {
28+ env. GIT_BRANCH = env. BRANCH_NAME
29+ }
30+
31+ dir(" ${ JENKINS_HOME} /workspace/${ JOB_NAME} /${ BUILD_NUMBER} " ) {
32+
33+ withCredentials([
34+ usernamePassword(credentialsId : ' vault_approle' ,
35+ usernameVariable : ' VAULT_ROLE_ID' ,
36+ passwordVariable : ' VAULT_SECRET_ID' ),
37+ ]) {
38+
39+ env. VAULT_ADDR = ' https://127.0.0.1:8200/'
40+ env. VAULT_CACERT = ' /etc/ssl/certs/vault.tls.chain.pem'
41+
42+ withSecretEnv([[var : ' VAULT_TOKEN' ,
43+ password : sh (returnStdout : true ,
44+ label : ' Login To Vault' ,
45+ script : ''' \
46+ vault write -field=token \
47+ -format=table \
48+ auth/approle/login \
49+ role_id="$VAULT_ROLE_ID" \
50+ secret_id="$VAULT_SECRET_ID"
51+ ''' . stripIndent()). trim()]]) {
52+ stage(' Clone Repo' ) {
53+ sh (label : ' Clone Repo' ,
54+ script : ' /usr/local/bin/gitea-clone-repo.sh' )
55+ }
56+ }
57+ }
58+
59+ dir(" ${ PROJECT_NAME} " ) {
60+
61+ env. GIT_COMMIT = sh (returnStdout : true ,
62+ label : ' Read Git Commit' ,
63+ script : ' git rev-parse HEAD' ). trim()
64+
65+ echo " GIT_COMMIT: ${ env.GIT_COMMIT} "
66+
67+ stage(' Build' ) {
68+ sh (label : ' Run `./deploy/build.sh`' ,
69+ script : ' ./deploy/build.sh' )
70+ }
71+
72+ stage(' Push' ) {
73+ sh (label : ' Run `./deploy/push.sh`' ,
74+ script : ' ./deploy/push.sh' )
75+ }
76+
77+ }
78+ }
79+ }
80+
81+ // ////////////////////////////////////////////////////////////////////////////////////////
0 commit comments