mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-23 09:09:36 +02:00
[git-bridge] migrate pipeline to Jenkins (#28763)
* [git-bridge] migrate pipeline to Jenkins * [terraform] remove cloud build trigger for git-bridge GitOrigin-RevId: fdf842a561c00a609f2de0cab894a761900322c6
This commit is contained in:
1
services/git-bridge/.jenkinsIncludeFile
Normal file
1
services/git-bridge/.jenkinsIncludeFile
Normal file
@@ -0,0 +1 @@
|
||||
services/git-bridge/**
|
||||
88
services/git-bridge/Jenkinsfile
vendored
Normal file
88
services/git-bridge/Jenkinsfile
vendored
Normal file
@@ -0,0 +1,88 @@
|
||||
pipeline {
|
||||
agent {
|
||||
node {
|
||||
label 'jenkins-agent-web'
|
||||
customWorkspace '/workspace'
|
||||
}
|
||||
}
|
||||
options {
|
||||
timestamps()
|
||||
parallelsAlwaysFailFast()
|
||||
timeout(time: 15, unit: 'MINUTES')
|
||||
}
|
||||
environment {
|
||||
BRANCH_NAME = "${env.CHANGE_BRANCH ? env.CHANGE_BRANCH : env.BRANCH_NAME}"
|
||||
JENKINS_BUILD_NUMBER = "${BUILD_NUMBER}"
|
||||
BUILD_NUMBER = "${SHORT_SHA}_${BUILD_NUMBER}"
|
||||
COMMIT_SHA = "${GIT_COMMIT}"
|
||||
SHORT_SHA = "${GIT_COMMIT.take(7)}"
|
||||
}
|
||||
stages {
|
||||
stage('Stage 1') {
|
||||
parallel {
|
||||
stage('Build') {
|
||||
steps {
|
||||
dir('services/git-bridge') {
|
||||
sh 'make docker_build_base'
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Install monorepo') {
|
||||
steps {
|
||||
sh 'make monorepo_setup'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Stage 2') {
|
||||
parallel {
|
||||
stage('Build production and push') {
|
||||
steps {
|
||||
dir('services/git-bridge') {
|
||||
sh 'make docker_build'
|
||||
sh 'make push_branch'
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Format Java') {
|
||||
steps {
|
||||
dir('services/git-bridge') {
|
||||
sh 'make docker_format'
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Format Jenkinsfile') {
|
||||
steps {
|
||||
sh 'bin/run monorepo npm run format:jenkins'
|
||||
}
|
||||
}
|
||||
stage('Test') {
|
||||
steps {
|
||||
dir('services/git-bridge') {
|
||||
sh 'make docker_test'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Push Production') {
|
||||
steps {
|
||||
dir('services/git-bridge') {
|
||||
sh 'make push'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
post {
|
||||
// Collect junit test results for both success and failure case.
|
||||
always {
|
||||
junit checksName: 'git-bridge test results', testResults: 'services/git-bridge/target/surefire-reports/*.xml'
|
||||
}
|
||||
cleanup {
|
||||
dir('services/git-bridge') {
|
||||
sh 'make clean_ci'
|
||||
}
|
||||
sh 'make clean_jenkins'
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,17 @@
|
||||
MVN_OPTS := --no-transfer-progress
|
||||
MVN_TARGET := target/writelatex-git-bridge-1.0-SNAPSHOT-jar-with-dependencies.jar
|
||||
|
||||
export BUILD_NUMBER ?= local
|
||||
export BRANCH_NAME ?= $(shell git rev-parse --abbrev-ref HEAD)
|
||||
export COMMIT_SHA ?= $(shell git rev-parse HEAD)
|
||||
PROJECT_NAME = git-bridge
|
||||
|
||||
IMAGE_CI ?= ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
|
||||
IMAGE_REPO ?= us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME)
|
||||
IMAGE_REPO_BRANCH ?= $(IMAGE_REPO):$(BRANCH_NAME)
|
||||
IMAGE_REPO_MAIN ?= $(IMAGE_REPO):main
|
||||
IMAGE_REPO_FINAL ?= $(IMAGE_REPO_BRANCH)-$(BUILD_NUMBER)
|
||||
|
||||
runtime-conf:
|
||||
/opt/envsubst < conf/envsubst_template.json > conf/runtime.json
|
||||
|
||||
@@ -16,10 +27,17 @@ $(MVN_TARGET): $(shell find src -type f) pom.xml
|
||||
|
||||
build: $(MVN_TARGET)
|
||||
|
||||
docker_build_base:
|
||||
docker build --tag $(IMAGE_CI) --target base .
|
||||
|
||||
docker_build:
|
||||
docker build --tag $(IMAGE_REPO_BRANCH) --tag $(IMAGE_REPO_FINAL) .
|
||||
|
||||
format:
|
||||
mvn $(MVN_OPTS) com.spotify.fmt:fmt-maven-plugin:check
|
||||
|
||||
docker_format:
|
||||
docker run --rm -v $(PWD):$(PWD) -w $(PWD) --user node $(IMAGE_CI) make format
|
||||
|
||||
format_fix:
|
||||
mvn $(MVN_OPTS) com.spotify.fmt:fmt-maven-plugin:format
|
||||
@@ -28,6 +46,8 @@ format_fix:
|
||||
test:
|
||||
mvn $(MVN_OPTS) test
|
||||
|
||||
docker_test:
|
||||
docker run --rm -v $(PWD):$(PWD) -w $(PWD) --user node $(IMAGE_CI) make test
|
||||
|
||||
clean:
|
||||
mvn $(MVN_OPTS) clean
|
||||
@@ -36,5 +56,14 @@ clean:
|
||||
package: clean
|
||||
mvn $(MVN_OPTS) package -DskipTests
|
||||
|
||||
push:
|
||||
docker push $(IMAGE_REPO_FINAL)
|
||||
|
||||
push_branch:
|
||||
docker push $(IMAGE_REPO_BRANCH)
|
||||
|
||||
clean_ci:
|
||||
-docker rmi -f $(IMAGE_CI) $(IMAGE_REPO_BRANCH) $(IMAGE_REPO_FINAL)
|
||||
-git clean -xdf .
|
||||
|
||||
.PHONY: run package build clean test runtime-conf
|
||||
|
||||
Reference in New Issue
Block a user