mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2025-07-20 23:05:49 +00:00
Merge pull request #4 from JustFiesta/jenkins-assesment
Jenkins assesment
This commit is contained in:
commit
242d94717c
2 changed files with 33 additions and 86 deletions
79
Jenkinsfile
vendored
79
Jenkinsfile
vendored
|
@ -1,9 +1,11 @@
|
||||||
// Merge request pipeline
|
|
||||||
pipeline {
|
pipeline {
|
||||||
agent any
|
agent any
|
||||||
|
|
||||||
environment {
|
environment {
|
||||||
NEXUS_CREDS = credentials('nexus-cred')
|
NEXUS_CREDS = credentials('nexus-cred')
|
||||||
NEXUS_DOCKER_REPO_MR = '34.241.46.54:8085'
|
NEXUS_DOCKER_REPO_MR = '34.245.131.115:8085'
|
||||||
|
NEXUS_DOCKER_REPO_MAIN = '34.245.131.115:8084'
|
||||||
}
|
}
|
||||||
|
|
||||||
tools {
|
tools {
|
||||||
|
@ -11,6 +13,7 @@ pipeline {
|
||||||
}
|
}
|
||||||
|
|
||||||
stages {
|
stages {
|
||||||
|
// Merge request pipeline
|
||||||
stage('Checkstyle') {
|
stage('Checkstyle') {
|
||||||
steps{
|
steps{
|
||||||
echo 'Running gradle checkstyle'
|
echo 'Running gradle checkstyle'
|
||||||
|
@ -53,60 +56,44 @@ pipeline {
|
||||||
}
|
}
|
||||||
stage('Docker Push (MR)') {
|
stage('Docker Push (MR)') {
|
||||||
steps {
|
steps {
|
||||||
echo 'Pushing Image to docker hub'
|
echo 'Pushing Image to docker repo'
|
||||||
sh 'docker push $NEXUS_DOCKER_REPO_MR/spring-petclinic:${GIT_COMMIT}'
|
sh 'docker push $NEXUS_DOCKER_REPO_MR/spring-petclinic:${GIT_COMMIT}'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
post {
|
// Main branch pipeline
|
||||||
always {
|
stage('Docker Build (Main)') {
|
||||||
cleanWs()
|
when {
|
||||||
|
branch 'main'
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
echo 'Building docker Image'
|
||||||
|
sh 'docker build -t $NEXUS_DOCKER_REPO_MAIN/spring-petclinic:${GIT_COMMIT} .'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
stage('Docker Login') {
|
||||||
}
|
when {
|
||||||
|
branch 'main'
|
||||||
// Main branch pipeline
|
}
|
||||||
pipeline {
|
steps {
|
||||||
agent any
|
echo 'Nexus Docker Repository Login'
|
||||||
|
script{
|
||||||
environment {
|
withCredentials([usernamePassword(credentialsId: 'nexus-cred', usernameVariable: 'USER', passwordVariable: 'PASS' )]){
|
||||||
NEXUS_CREDS = credentials('nexus-cred')
|
sh 'echo $PASS | docker login -u $USER --password-stdin $NEXUS_DOCKER_REPO_MAIN'
|
||||||
NEXUS_DOCKER_REPO_MAIN = '34.241.46.54:8084'
|
}
|
||||||
}
|
|
||||||
|
|
||||||
stage('Docker Build (Main)') {
|
|
||||||
when {
|
|
||||||
branch 'main'
|
|
||||||
}
|
|
||||||
steps {
|
|
||||||
echo 'Building docker Image'
|
|
||||||
sh 'docker build -t $NEXUS_DOCKER_REPO_MAIN/spring-petclinic:${GIT_COMMIT} .'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Docker Login') {
|
|
||||||
when {
|
|
||||||
branch 'main'
|
|
||||||
}
|
|
||||||
steps {
|
|
||||||
echo 'Nexus Docker Repository Login'
|
|
||||||
script{
|
|
||||||
withCredentials([usernamePassword(credentialsId: 'nexus-cred', usernameVariable: 'USER', passwordVariable: 'PASS' )]){
|
|
||||||
sh 'echo $PASS | docker login -u $USER --password-stdin $NEXUS_DOCKER_REPO_MAIN'
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
stage('Docker Push (Main)') {
|
||||||
stage('Docker Push (Main)') {
|
when {
|
||||||
when {
|
branch 'main'
|
||||||
branch 'main'
|
}
|
||||||
}
|
steps {
|
||||||
steps {
|
echo 'Pushing Image to docker repo'
|
||||||
echo 'Pushing Image to docker hub'
|
sh 'docker push $NEXUS_DOCKER_REPO_MAIN/spring-petclinic:${GIT_COMMIT}'
|
||||||
sh 'docker push $NEXUS_DOCKER_REPO_MAIN/spring-petclinic:${GIT_COMMIT}'
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
post {
|
post {
|
||||||
always {
|
always {
|
||||||
cleanWs()
|
cleanWs()
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
jenkins assesment:
|
|
||||||
|
|
||||||
3 kontenery na EC2 -> jenkins-docker, jenkins-blueocean, nexus
|
|
||||||
|
|
||||||
!!! Pobranie klucza do EC2 !!!
|
|
||||||
|
|
||||||
EC2 - security groups + t6 type:
|
|
||||||
ssh -i C:\lokalizacja_klucza\jenkins-assesement-ec2.pem ec2-user@ec2-3-252-205-41.eu-west-1.compute.amazonaws.com
|
|
||||||
|
|
||||||
Po uruchomieniu EC2:
|
|
||||||
docker start nexus
|
|
||||||
docker start jenkins-blueocean
|
|
||||||
docker run \/
|
|
||||||
|
|
||||||
!!!!!!!! zmieniaj IP w env w JenkinsFile (GitHub), daemon.json (EC2), docker:dind dodaj --insecure-registries !!!!!!!!!!!!
|
|
||||||
|
|
||||||
----------------------------
|
|
||||||
W jenkinsie:
|
|
||||||
add creds - github, nexus
|
|
||||||
|
|
||||||
!!! create github token !!!
|
|
||||||
|
|
||||||
----------------------------
|
|
||||||
Serwer Jenkinsa na EC2:
|
|
||||||
|
|
||||||
Nexus:
|
|
||||||
sudo docker run -d -p 8081-8085:8081-8085 --name nexus -v nexus-data:/nexus-data sonatype/nexus3
|
|
||||||
|
|
||||||
Jenkins Docker:
|
|
||||||
sudo docker run --name jenkins-docker --rm --detach --privileged --network jenkins --network-alias docker --env DOCKER_TLS_CERTDIR=/certs --volume jenkins-docker-certs:/certs/client --volume jenkins-data:/var/jenkins_home --publish 2376:2376 docker:dind --insecure-registry 54.195.172.42:8085 --insecure-registry 54.195.172.42:8084 --storage-driver overlay2
|
|
||||||
|
|
||||||
Jenkins Blueocean:
|
|
||||||
dockerfile z dokumentacji jenkinsa + run blueocean
|
|
||||||
https://www.jenkins.io/doc/book/installing/docker/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue