mirror of
https://github.com/overleaf/overleaf.git
synced 2025-03-22 02:04:31 +00:00
Push master branch to public repo after successful build
Note that this has to happen outside of the docker container to work around issues with git and user ids, so we've had to modify the pipeline to explicitly run the steps inside docker as needed.
This commit is contained in:
parent
a7217f1d37
commit
f0092bc85a
1 changed files with 52 additions and 6 deletions
58
services/web/Jenkinsfile
vendored
58
services/web/Jenkinsfile
vendored
|
@ -1,11 +1,6 @@
|
||||||
pipeline {
|
pipeline {
|
||||||
|
|
||||||
agent {
|
agent any
|
||||||
docker {
|
|
||||||
image 'node:6.9.5'
|
|
||||||
args "-v /var/lib/jenkins/.npm:/tmp/.npm"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
environment {
|
environment {
|
||||||
HOME = "/tmp"
|
HOME = "/tmp"
|
||||||
|
@ -18,6 +13,12 @@ pipeline {
|
||||||
|
|
||||||
stages {
|
stages {
|
||||||
stage('Set up') {
|
stage('Set up') {
|
||||||
|
agent {
|
||||||
|
docker {
|
||||||
|
image 'node:6.9.5'
|
||||||
|
reuseNode true
|
||||||
|
}
|
||||||
|
}
|
||||||
steps {
|
steps {
|
||||||
// we need to disable logallrefupdates, else git clones during the npm install will require git to lookup the user id
|
// we need to disable logallrefupdates, else git clones during the npm install will require git to lookup the user id
|
||||||
// which does not exist in the container's /etc/passwd file, causing the clone to fail.
|
// which does not exist in the container's /etc/passwd file, causing the clone to fail.
|
||||||
|
@ -44,7 +45,15 @@ pipeline {
|
||||||
}
|
}
|
||||||
|
|
||||||
stage('Install') {
|
stage('Install') {
|
||||||
|
agent {
|
||||||
|
docker {
|
||||||
|
image 'node:6.9.5'
|
||||||
|
args "-v /var/lib/jenkins/.npm:/tmp/.npm"
|
||||||
|
reuseNode true
|
||||||
|
}
|
||||||
|
}
|
||||||
steps {
|
steps {
|
||||||
|
sh 'git config --global core.logallrefupdates false'
|
||||||
sh 'mv app/views/external/robots.txt public/robots.txt'
|
sh 'mv app/views/external/robots.txt public/robots.txt'
|
||||||
sh 'mv app/views/external/googlebdb0f8f7f4a17241.html public/googlebdb0f8f7f4a17241.html'
|
sh 'mv app/views/external/googlebdb0f8f7f4a17241.html public/googlebdb0f8f7f4a17241.html'
|
||||||
sh 'npm install'
|
sh 'npm install'
|
||||||
|
@ -56,24 +65,48 @@ pipeline {
|
||||||
}
|
}
|
||||||
|
|
||||||
stage('Compile') {
|
stage('Compile') {
|
||||||
|
agent {
|
||||||
|
docker {
|
||||||
|
image 'node:6.9.5'
|
||||||
|
reuseNode true
|
||||||
|
}
|
||||||
|
}
|
||||||
steps {
|
steps {
|
||||||
sh 'node_modules/.bin/grunt compile --verbose'
|
sh 'node_modules/.bin/grunt compile --verbose'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stage('Smoke Test') {
|
stage('Smoke Test') {
|
||||||
|
agent {
|
||||||
|
docker {
|
||||||
|
image 'node:6.9.5'
|
||||||
|
reuseNode true
|
||||||
|
}
|
||||||
|
}
|
||||||
steps {
|
steps {
|
||||||
sh 'node_modules/.bin/grunt compile:smoke_tests'
|
sh 'node_modules/.bin/grunt compile:smoke_tests'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stage('Minify') {
|
stage('Minify') {
|
||||||
|
agent {
|
||||||
|
docker {
|
||||||
|
image 'node:6.9.5'
|
||||||
|
reuseNode true
|
||||||
|
}
|
||||||
|
}
|
||||||
steps {
|
steps {
|
||||||
sh 'node_modules/.bin/grunt compile:minify'
|
sh 'node_modules/.bin/grunt compile:minify'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stage('Unit Test') {
|
stage('Unit Test') {
|
||||||
|
agent {
|
||||||
|
docker {
|
||||||
|
image 'node:6.9.5'
|
||||||
|
reuseNode true
|
||||||
|
}
|
||||||
|
}
|
||||||
steps {
|
steps {
|
||||||
sh 'env NODE_ENV=development ./node_modules/.bin/grunt test:unit --reporter=tap'
|
sh 'env NODE_ENV=development ./node_modules/.bin/grunt test:unit --reporter=tap'
|
||||||
}
|
}
|
||||||
|
@ -87,6 +120,7 @@ pipeline {
|
||||||
sh 'tar -czf build.tar.gz --exclude=build.tar.gz --exclude-vcs .'
|
sh 'tar -czf build.tar.gz --exclude=build.tar.gz --exclude-vcs .'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stage('Publish') {
|
stage('Publish') {
|
||||||
steps {
|
steps {
|
||||||
withAWS(credentials:'S3_CI_BUILDS_AWS_KEYS', region:"${S3_REGION_BUILD_ARTEFACTS}") {
|
withAWS(credentials:'S3_CI_BUILDS_AWS_KEYS', region:"${S3_REGION_BUILD_ARTEFACTS}") {
|
||||||
|
@ -96,6 +130,18 @@ pipeline {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
stage('Sync OSS') {
|
||||||
|
when {
|
||||||
|
branch 'master'
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
sshagent (credentials: ['GIT_DEPLOY_KEY']) {
|
||||||
|
sh 'git push git@github.com:sharelatex/web-sharelatex.git HEAD:ja-oss-test'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
post {
|
post {
|
||||||
|
|
Loading…
Reference in a new issue