Files
overleaf-cep/services/filestore/Jenkinsfile
Jakob Ackermann fd0d21fbbd [monorepo] migrate build scripts to Jenkins (#29019)
* [monorepo] migrate build scripts to Jenkins

* [fraud-dash] fix integration with monorepo

GitOrigin-RevId: 6a30ec5ea68a1eae9b663faf9ccdc741ec7f9cf8
2025-10-13 08:07:11 +00:00

152 lines
3.8 KiB
Groovy

// Autogenerated by build scripts. Do not edit.
pipeline {
agent {
node {
label 'jenkins-agent-web'
customWorkspace '/workspace'
}
}
options {
timestamps()
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}"
DOCKER_COMPOSE_FLAGS = '-f docker-compose.ci.yml'
COMMIT_SHA = "${GIT_COMMIT}"
SHORT_SHA = "${GIT_COMMIT.take(7)}"
}
stages {
stage('Stage 1') {
parallel {
stage('Build') {
steps {
dir('services/filestore') {
retry(count: 3) {
sh 'make build'
}
}
}
}
stage('Create reports folder') {
steps {
sh 'mkdir services/filestore/reports'
}
}
}
}
stage('Stage 2') {
parallel {
stage('Push Branch Image') {
steps {
dir('services/filestore') {
sh 'make push_branch'
}
}
}
stage('Shellcheck') {
steps {
dir('services/filestore') {
sh 'make shellcheck'
}
}
}
stage('Lint') {
steps {
dir('services/filestore') {
sh 'make lint_ci'
}
}
post {
always {
recordIssues checksAnnotationScope: 'ALL', enabledForFailure: true, failOnError: true, id: 'filestore-eslint', name: 'filestore eslint', qualityGates: [[integerThreshold: 1, threshold: 1.0, type: 'TOTAL']], sourceCodeRetention: 'LAST_BUILD', tools: [esLint(pattern: 'services/filestore/reports/eslint.json')]
}
}
}
stage('Format') {
steps {
dir('services/filestore') {
sh 'make format_ci'
}
}
}
stage('Typecheck') {
steps {
dir('services/filestore') {
sh 'make typecheck_ci'
}
}
}
stage('Test Unit') {
steps {
dir('services/filestore') {
retry(count: 3) {
sh 'make test_unit'
}
}
}
}
stage('Test Acceptance SHARD_01_') {
environment {
COMPOSE_PROJECT_NAME_TEST_ACCEPTANCE = "test_acceptance_shard_01_x"
MOCHA_GREP = "SHARD_01_"
}
steps {
dir('services/filestore') {
retry(count: 3) {
sh 'make test_acceptance'
}
}
}
}
stage('Test Acceptance SHARD_02_') {
environment {
COMPOSE_PROJECT_NAME_TEST_ACCEPTANCE = "test_acceptance_shard_02_x"
MOCHA_GREP = "SHARD_02_"
}
steps {
dir('services/filestore') {
retry(count: 3) {
sh 'make test_acceptance'
}
}
}
}
stage('Test Acceptance SHARD_03_') {
environment {
COMPOSE_PROJECT_NAME_TEST_ACCEPTANCE = "test_acceptance_shard_03_x"
MOCHA_GREP = "SHARD_03_"
}
steps {
dir('services/filestore') {
retry(count: 3) {
sh 'make test_acceptance'
}
}
}
}
}
}
stage('Push Production') {
steps {
dir('services/filestore') {
sh 'make push'
}
}
}
}
post {
always {
junit checksName: 'filestore test results', testResults: 'services/filestore/reports/junit-*.xml'
}
cleanup {
dir('services/filestore') {
sh 'make clean'
}
sh 'make clean_jenkins -j10'
}
}
}