feat: use two deploy branches for CI builds

This way we have two branches on GitHub that reflect the state of the
website after CI build has finished and pushed. See README.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
This commit is contained in:
Jakub Sokołowski 2024-02-19 15:24:25 +01:00
parent 378518a427
commit 58394dec00
No known key found for this signature in database
GPG Key ID: FE65CD384D5BF7B4
2 changed files with 22 additions and 24 deletions

33
Jenkinsfile vendored
View File

@ -16,45 +16,30 @@ pipeline {
environment {
GIT_COMMITTER_NAME = 'status-im-auto'
GIT_COMMITTER_EMAIL = 'auto@status.im'
PROD_SITE = 'docs.waku.org'
DEV_SITE = 'dev-docs.waku.org'
DEV_HOST = 'jenkins@node-01.do-ams3.sites.misc.statusim.net'
SCP_OPTS = 'StrictHostKeyChecking=no'
}
stages {
stage('Install') {
steps {
sh "yarn install"
sh 'yarn install'
}
}
stage('Build') {
steps { script {
sh 'yarn build'
dir('build') {
sh "echo ${env.PROD_SITE} > CNAME"
jenkins.genBuildMetaJSON()
jenkins.genBuildMetaJSON('build/build.json')
} }
}
}
stage('Publish Prod') {
when { expression { env.GIT_BRANCH ==~ /.*master/ } }
stage('Publish') {
steps {
sshagent(credentials: ['status-im-auto-ssh']) {
sh "ghp-import -p build"
}
}
}
stage('Publish Devel') {
when { expression { env.GIT_BRANCH !=~ /.*master/ } }
steps {
sshagent(credentials: ['jenkins-ssh']) {
sh """
rsync -e 'ssh -o ${SCP_OPTS}' -r --delete build/. \
${env.DEV_HOST}:/var/www/${env.DEV_SITE}/
ghp-import \
-b ${deployBranch()} \
-c ${deployDomain()} \
-p build
"""
}
}
@ -65,3 +50,7 @@ pipeline {
cleanup { cleanWs() }
}
}
def isMasterBranch() { GIT_BRANCH ==~ /.*master/ }
def deployBranch() { isMasterBranch() ? 'deploy-master' : 'deploy-develop' }
def deployDomain() { isMasterBranch() ? 'docs.waku.org' : 'dev-docs.waku.org' }

View File

@ -85,3 +85,12 @@ Docusaurus depends heavily on caching to enhance site performance. If you make c
```shell
yarn clear
```
## CI/CD
- [CI builds](https://ci.infra.status.im/job/website/job/docs.waku.org/) `master` and pushes to `deploy-master` branch, which is hosted at <https://docs.waku.org/>.
- [CI builds](https://ci.infra.status.im/job/website/job/dev-docs.waku.org/) `develop` and pushes to `deploy-develop` branch, which is hosted at <https://dev-docs.waku.org/>.
The hosting is done using [Caddy server with Git plugin for handling GitHub webhooks](https://github.com/status-im/infra-misc/blob/master/ansible/roles/caddy-git).
Information about deployed build can be also found in `/build.json` available on the website.