| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- pipeline {
- agent {
- node {
- label 'jenkins-agent-web'
- customWorkspace '/workspace'
- }
- }
- options {
- timestamps()
- parallelsAlwaysFailFast()
- retry(3)
- timeout(time: 15, unit: 'MINUTES')
- }
- environment {
- IMAGE_NAME = 'contacts'
- PROJECT_NAME = 'contacts'
- IMAGE_REPO = 'us-east1-docker.pkg.dev/overleaf-ops/ol-docker/contacts'
- AR_REPO_LOCATION = 'us-east1'
- AR_URL = 'us-east1-docker.pkg.dev/overleaf-ops/ol-docker'
- 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 ('Build') {
- steps {
- dir ('services/contacts') {
- sh 'make build'
- }
- }
- }
- stage ('Tests') {
- parallel {
- stage ('Push Branch Image') {
- steps {
- dir ('services/contacts') {
- sh 'docker push ${AR_URL}/${IMAGE_NAME}:${BRANCH_NAME}'
- }
- }
- }
- stage ('Shellcheck') {
- steps {
- dir ('services/contacts') {
- sh 'make shellcheck'
- }
- }
- }
- stage ('Lint') {
- steps {
- dir ('services/contacts') {
- sh 'make lint_ci'
- }
- }
- }
- stage ('Format') {
- steps {
- dir ('services/contacts') {
- sh 'make format_ci'
- }
- }
- }
- stage ('Typecheck') {
- steps {
- dir ('services/contacts') {
- sh 'make typecheck_ci'
- }
- }
- }
- stage ('Test Unit') {
- steps {
- dir ('services/contacts') {
- sh 'make test_unit'
- }
- }
- }
- stage ('Test Acceptance') {
- steps {
- dir ('services/contacts') {
- sh 'make test_acceptance'
- }
- }
- }
- }
- }
- stage('Push Production') {
- steps {
- dir('services/contacts') {
- sh 'docker push ${AR_URL}/${IMAGE_NAME}:${BRANCH_NAME}-${BUILD_NUMBER}'
- }
- }
- }
- }
- post {
- cleanup {
- dir('services/contacts') {
- sh 'make clean'
- }
- sh 'make clean_jenkins'
- }
- }
- }
|