Skip to content
Snippets Groups Projects
Commit 35b8bd24 authored by Benjamin Bertrand's avatar Benjamin Bertrand
Browse files

Switch to gitlab

parent 4f47b44f
No related branches found
No related tags found
No related merge requests found
image: docker:latest
.runner_tags: &runner_tags
tags:
- dind
services:
- docker:dind
variables:
CONTAINER_TEST_IMAGE: "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME"
CONTAINER_RELEASE_IMAGE: "$CI_REGISTRY_IMAGE:latest"
CONTAINER_TAG_IMAGE: "$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG"
stages:
- build
- test
- release
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
build:
<<: *runner_tags
stage: build
script:
- docker pull "$CONTAINER_TEST_IMAGE"
- docker build --pull --cache-from "$CONTAINER_TEST_IMAGE" -t "$CONTAINER_TEST_IMAGE" .
- docker push "$CONTAINER_TEST_IMAGE"
test:
<<: *runner_tags
stage: test
before_script:
- apk add --update py-pip
- pip install docker-compose
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script:
- docker pull "$CONTAINER_TEST_IMAGE"
- docker-compose -f docker-compose.yml up -d postgres redis
- sleep 5
- docker-compose -f docker-compose.yml run --rm web
after_script:
- docker rm -f csentry_postgres
- docker rm -f csentry_redis
release-image:
<<: *runner_tags
stage: release
script:
- docker pull "$CONTAINER_TEST_IMAGE"
- docker tag "$CONTAINER_TEST_IMAGE" "$CONTAINER_RELEASE_IMAGE"
- docker tag "$CONTAINER_TEST_IMAGE" "$CONTAINER_TAG_IMAGE"
- docker push "$CONTAINER_RELEASE_IMAGE"
- docker push "$CONTAINER_TAG_IMAGE"
only:
- tags
pipeline {
agent { label 'docker-compose' }
environment {
GIT_TAG = sh(returnStdout: true, script: 'git describe --exact-match || true').trim()
}
stages {
stage('Refresh') {
steps {
slackSend (color: 'good', message: "STARTED: <${env.BUILD_URL}|${env.JOB_NAME} [${env.BUILD_NUMBER}]>")
sh 'make clean'
sh 'make refresh'
}
}
stage('Build') {
steps {
ansiColor('xterm') {
sh 'make build'
}
}
}
stage('Test') {
steps {
sh 'make db_image'
/* let the time to postgres to start */
sh 'sleep 5'
sh 'make test_image'
}
}
stage('Push') {
when {
not { environment name: 'GIT_TAG', value: '' }
}
environment {
DOCKERHUB = credentials('dockerhub')
}
steps {
sh 'docker login -u $DOCKERHUB_USR -p $DOCKERHUB_PSW'
sh 'make tag'
sh 'make push'
sh 'docker logout'
}
}
}
post {
always {
sh 'make clean'
/* clean up the workspace */
deleteDir()
}
failure {
slackSend (color: 'danger', message: "FAILED: <${env.BUILD_URL}|${env.JOB_NAME} [${env.BUILD_NUMBER}]>")
}
success {
slackSend (color: 'good', message: "SUCCESSFUL: <${env.BUILD_URL}|${env.JOB_NAME} [${env.BUILD_NUMBER}]>")
}
}
}
.PHONY: help build tag push refresh release db initdb test db_image test_image
OWNER := europeanspallationsource
OWNER := registry.esss.lu.se/ics-infrastructure
GIT_TAG := $(shell git describe --always)
IMAGE := csentry
......
version: '2'
services:
web:
image: europeanspallationsource/csentry:latest
image: registry.esss.lu.se/ics-infrastructure/csentry:master
container_name: csentry_web
command: pytest --cov=app -v
depends_on:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment