/ Jenkinsfile
Jenkinsfile
 1  pipeline {
 2    agent { label 'linux' }
 3  
 4    options {
 5      disableConcurrentBuilds()
 6      /* manage how many builds we keep */
 7      buildDiscarder(logRotator(
 8        numToKeepStr: '20',
 9        daysToKeepStr: '30',
10      ))
11    }
12  
13    environment {
14      GIT_COMMITTER_NAME = 'status-im-auto'
15      GIT_COMMITTER_EMAIL = 'auto@status.im'
16      /* dev page settings */
17      DEV_SITE = 'dev-js.waku.guide'
18      DEV_HOST = 'jenkins@node-01.do-ams3.sites.misc.statusim.net'
19      SCP_OPTS = 'StrictHostKeyChecking=no'
20    }
21  
22    stages {
23      stage('Build') {
24        steps {
25          sh "hugo ${env.GIT_BRANCH ==~ /.*master/ ? '' : "-b https://${DEV_SITE}"}"
26        }
27      }
28  
29      stage('Publish Prod') {
30        when { expression { env.GIT_BRANCH ==~ /.*master/ } }
31        steps {
32          sshagent(credentials: ['status-im-auto-ssh']) {
33            sh "ghp-import -p public"
34          }
35        }
36      }
37  
38      stage('Publish Devel') {
39        when { expression { env.GIT_BRANCH ==~ /.*develop/ } }
40        steps {
41          sshagent(credentials: ['jenkins-ssh']) {
42            sh """
43              rsync -e 'ssh -o ${SCP_OPTS}' -r --delete public/. \
44                ${env.DEV_HOST}:/var/www/${env.DEV_SITE}/
45            """
46          }
47        }
48      }
49    }
50  }