Merge pull request #4 from JustFiesta/jenkins-assesment

Jenkins assesment
This commit is contained in:
Matthew 2024-05-18 10:08:42 +02:00 committed by GitHub
commit 242d94717c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 33 additions and 86 deletions

79
Jenkinsfile vendored
View file

@ -1,9 +1,11 @@
// Merge request pipeline
pipeline {
agent any
environment {
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 {
@ -11,6 +13,7 @@ pipeline {
}
stages {
// Merge request pipeline
stage('Checkstyle') {
steps{
echo 'Running gradle checkstyle'
@ -53,60 +56,44 @@ pipeline {
}
stage('Docker Push (MR)') {
steps {
echo 'Pushing Image to docker hub'
echo 'Pushing Image to docker repo'
sh 'docker push $NEXUS_DOCKER_REPO_MR/spring-petclinic:${GIT_COMMIT}'
}
}
}
post {
always {
cleanWs()
// Main branch pipeline
stage('Docker Build (Main)') {
when {
branch 'main'
}
steps {
echo 'Building docker Image'
sh 'docker build -t $NEXUS_DOCKER_REPO_MAIN/spring-petclinic:${GIT_COMMIT} .'
}
}
}
}
// Main branch pipeline
pipeline {
agent any
environment {
NEXUS_CREDS = credentials('nexus-cred')
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 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)') {
when {
branch 'main'
}
steps {
echo 'Pushing Image to docker hub'
sh 'docker push $NEXUS_DOCKER_REPO_MAIN/spring-petclinic:${GIT_COMMIT}'
stage('Docker Push (Main)') {
when {
branch 'main'
}
steps {
echo 'Pushing Image to docker repo'
sh 'docker push $NEXUS_DOCKER_REPO_MAIN/spring-petclinic:${GIT_COMMIT}'
}
}
}
post {
always {
cleanWs()

View file

@ -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/