switch from travis-ci to jenkins
This commit is contained in:
		
							parent
							
								
									f5be97beb9
								
							
						
					
					
						commit
						f217da5e62
					
				
					 4 changed files with 111 additions and 100 deletions
				
			
		
							
								
								
									
										18
									
								
								.travis.yml
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								.travis.yml
									
										
									
									
									
								
							|  | @ -1,18 +0,0 @@ | ||||||
| sudo: true |  | ||||||
| dist: xenial |  | ||||||
| language: minimal |  | ||||||
| services: |  | ||||||
|   - docker |  | ||||||
| addons: |  | ||||||
|   apt: |  | ||||||
|     packages: |  | ||||||
|       - docker-ce |  | ||||||
| deploy: |  | ||||||
|   - provider: script |  | ||||||
|     script: bash deploy.sh |  | ||||||
|     on: |  | ||||||
|       branch: master |  | ||||||
|   - provider: script |  | ||||||
|     script: bash deploy.sh |  | ||||||
|     on: |  | ||||||
|       branch: develop |  | ||||||
							
								
								
									
										111
									
								
								Jenkinsfile
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										111
									
								
								Jenkinsfile
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,111 @@ | ||||||
|  | pipeline { | ||||||
|  |     agent none | ||||||
|  |     environment { | ||||||
|  |         REPOSITORY = "boerderij/varken" | ||||||
|  |     } | ||||||
|  |     stages { | ||||||
|  |         stage('Flake8') { | ||||||
|  |             agent { label 'amd64'} | ||||||
|  |             steps { | ||||||
|  |                 sh ''' | ||||||
|  |                     python3 -m venv venv && venv/bin/pip install flake8 && venv/bin/python -m flake8 --max-line-length 120 *.py varken/*.py | ||||||
|  |                     rm -rf venv/ | ||||||
|  |                 ''' | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         stage('Docker Builds') { | ||||||
|  |             parallel { | ||||||
|  |                 stage('amd64') { | ||||||
|  |                     when { | ||||||
|  |                         anyOf { | ||||||
|  |                             branch 'master' | ||||||
|  |                             branch 'develop' | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                     agent { label 'amd64'} | ||||||
|  |                     steps { | ||||||
|  |                         script { | ||||||
|  |                             if (BRANCH_NAME == 'master') { | ||||||
|  |                                 def tag = sh(returnStdout: true, script: 'grep -i version varken/__init__.py | cut -d" " -f3 | tr -d \\"').trim() | ||||||
|  |                                 def image = docker.build("${REPOSITORY}:${tag}-amd64") | ||||||
|  |                                 image.push() | ||||||
|  |                                  | ||||||
|  |                             } else if (BRANCH_NAME == 'develop') { | ||||||
|  |                                 def image = docker.build("${REPOSITORY}:develop-amd64") | ||||||
|  |                                 image.push() | ||||||
|  |                             } | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |                 stage('ARMv6') { | ||||||
|  |                     when { | ||||||
|  |                         anyOf { | ||||||
|  |                             branch 'master' | ||||||
|  |                             branch 'develop' | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                     agent { label 'arm64'} | ||||||
|  |                     steps { | ||||||
|  |                         script { | ||||||
|  |                             if (BRANCH_NAME == 'master') { | ||||||
|  |                                 def tag = sh(returnStdout: true, script: 'grep -i version varken/__init__.py | cut -d" " -f3 | tr -d \\"').trim() | ||||||
|  |                                 def image = docker.build("${REPOSITORY}:${tag}-arm", "-f Dockerfile.arm .") | ||||||
|  |                                 image.push() | ||||||
|  |                             } else if (BRANCH_NAME == 'develop') { | ||||||
|  |                                 def image = docker.build("${REPOSITORY}:develop-arm", "-f Dockerfile.arm .") | ||||||
|  |                                 image.push() | ||||||
|  |                             } | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |                 stage('ARM64v8') { | ||||||
|  |                     when { | ||||||
|  |                         anyOf { | ||||||
|  |                             branch 'master' | ||||||
|  |                             branch 'develop' | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                     agent { label 'arm64'} | ||||||
|  |                     steps { | ||||||
|  |                         script { | ||||||
|  |                             if (BRANCH_NAME == 'master') { | ||||||
|  |                                 def tag = sh(returnStdout: true, script: 'grep -i version varken/__init__.py | cut -d" " -f3 | tr -d \\"').trim() | ||||||
|  |                                 def image = docker.build("${REPOSITORY}:${tag}-arm64", "-f Dockerfile.arm64 .") | ||||||
|  |                                 image.push() | ||||||
|  |                             } else if (BRANCH_NAME == 'develop') { | ||||||
|  |                                 def image = docker.build("${REPOSITORY}:develop-arm64", "-f Dockerfile.arm64 .") | ||||||
|  |                                 image.push() | ||||||
|  |                             } | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         stage('Docker Manifest Build') { | ||||||
|  |             when { | ||||||
|  |                 anyOf { | ||||||
|  |                     branch 'master' | ||||||
|  |                     branch 'develop' | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             agent { label 'amd64'} | ||||||
|  |             steps { | ||||||
|  |                 script { | ||||||
|  |                     if (BRANCH_NAME == 'master') { | ||||||
|  |                         def tag = sh(returnStdout: true, script: 'grep -i version varken/__init__.py | cut -d" " -f3 | tr -d \\"').trim() | ||||||
|  |                         sh(script: "docker manifest create ${REPOSITORY}:${tag} ${REPOSITORY}:${tag}-amd64 ${REPOSITORY}:${tag}-arm64 ${REPOSITORY}:${tag}-arm") | ||||||
|  |                         sh(script: "docker manifest inspect ${REPOSITORY}:${tag}") | ||||||
|  |                         sh(script: "docker manifest push -p ${REPOSITORY}:${tag}") | ||||||
|  |                         sh(script: "docker manifest create ${REPOSITORY}:latest ${REPOSITORY}:${tag}-amd64 ${REPOSITORY}:${tag}-arm64 ${REPOSITORY}:${tag}-arm") | ||||||
|  |                         sh(script: "docker manifest inspect ${REPOSITORY}:latest") | ||||||
|  |                         sh(script: "docker manifest push -p ${REPOSITORY}:latest") | ||||||
|  |                     } else if (BRANCH_NAME == 'develop') { | ||||||
|  |                         sh(script: "docker manifest create ${REPOSITORY}:develop ${REPOSITORY}:develop-amd64 ${REPOSITORY}:develop-arm64 ${REPOSITORY}:develop-arm") | ||||||
|  |                         sh(script: "docker manifest inspect ${REPOSITORY}:develop") | ||||||
|  |                         sh(script: "docker manifest push -p ${REPOSITORY}:develop") | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										79
									
								
								deploy.sh
									
										
									
									
									
								
							
							
						
						
									
										79
									
								
								deploy.sh
									
										
									
									
									
								
							|  | @ -1,79 +0,0 @@ | ||||||
| #!/usr/bin/env bash |  | ||||||
| # Travis-ci convenience environment vars used: |  | ||||||
| # TRAVIS_BRANCH | branch name |  | ||||||
| # $TRAVIS_REPO_SLUG | organization/project (GitHub Capitalization) |  | ||||||
| # Travis-ci manual environment vars used: |  | ||||||
| # GITHUB_USER | github username |  | ||||||
| # GITHUB_TOKEN | $GITHUB_USER's token |  | ||||||
| # DOCKER_USER | docker username |  | ||||||
| # DOCKER_PASSWORD | $DOCKER_USER's password |  | ||||||
| 
 |  | ||||||
| VERSION="$(grep -i version varken/__init__.py | cut -d' ' -f3 | tr -d \")" |  | ||||||
| 
 |  | ||||||
| # Set branch to latest if master, else keep the same |  | ||||||
| if [[ "$TRAVIS_BRANCH" == "master" ]]; then |  | ||||||
|     BRANCH="latest" |  | ||||||
| else |  | ||||||
|     BRANCH="$TRAVIS_BRANCH" |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| # get the docker lowercase variant of the repo_name |  | ||||||
| REPOSITORY="$(echo $TRAVIS_REPO_SLUG | tr '[:upper:]' '[:lower:]')" |  | ||||||
| 
 |  | ||||||
| # Docker experimental config |  | ||||||
| echo '{"experimental":true}' | sudo tee /etc/docker/daemon.json |  | ||||||
| [[ -d ~/.docker ]] || mkdir ~/.docker |  | ||||||
| [[ -f ~/.docker/config.json ]] || touch ~/.docker/config.json |  | ||||||
| echo '{"experimental":"enabled"}' | sudo tee ~/.docker/config.json |  | ||||||
| sudo service docker restart |  | ||||||
| 
 |  | ||||||
| # Auth |  | ||||||
| echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USER" --password-stdin |  | ||||||
| 
 |  | ||||||
| # Prepare QEMU for ARM builds |  | ||||||
| docker run --rm --privileged multiarch/qemu-user-static:register --reset |  | ||||||
| bash prebuild.sh |  | ||||||
| chmod +x qemu-aarch64-static qemu-arm-static |  | ||||||
| 
 |  | ||||||
| # Set tag based off of branch |  | ||||||
| if [[ "$BRANCH" == "latest" ]]; then |  | ||||||
|     TAG="$VERSION" |  | ||||||
| else |  | ||||||
|     TAG="$BRANCH" |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| # AMDx64 |  | ||||||
| docker build -t "${REPOSITORY}:${TAG}-amd64" . && \ |  | ||||||
| docker push "${REPOSITORY}:${TAG}-amd64" |  | ||||||
| 
 |  | ||||||
| # Create Initial Manifests |  | ||||||
| docker manifest create "${REPOSITORY}:${TAG}" "${REPOSITORY}:${TAG}-amd64" |  | ||||||
| if [[ "$BRANCH" == "latest" ]]; then |  | ||||||
|     docker manifest create "${REPOSITORY}:${BRANCH}" "${REPOSITORY}:${TAG}-amd64" |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| # ARM variants |  | ||||||
| for i in $(ls *arm*); do |  | ||||||
|     ARCH="$(echo ${i} | cut -d. -f2)" |  | ||||||
|     docker build -f "Dockerfile.${ARCH}" -t "${REPOSITORY}:${TAG}-${ARCH}" . && \ |  | ||||||
|     docker push "${REPOSITORY}:${TAG}-${ARCH}" |  | ||||||
|     # Add variant to manifest |  | ||||||
|     docker manifest create -a "${REPOSITORY}:${TAG}" "${REPOSITORY}:${TAG}-${ARCH}" |  | ||||||
|     if [[ "$BRANCH" == "latest" ]]; then |  | ||||||
|         docker manifest create -a "${REPOSITORY}:${BRANCH}" "${REPOSITORY}:${TAG}-${ARCH}" |  | ||||||
|     fi |  | ||||||
| done |  | ||||||
| 
 |  | ||||||
| docker manifest inspect "${REPOSITORY}:${TAG}" && \ |  | ||||||
| docker manifest push "${REPOSITORY}:${TAG}" |  | ||||||
| if [[ "$BRANCH" == "latest" ]]; then |  | ||||||
|     docker manifest inspect "${REPOSITORY}:${BRANCH}" && \ |  | ||||||
|     docker manifest push "${REPOSITORY}:${BRANCH}" |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| # Git tags |  | ||||||
| if [[ "$BRANCH" == "latest" ]]; then |  | ||||||
|     git remote set-url origin "https://${GITHUB_USER}:${GITHUB_TOKEN}@github.com/${REPOSITORY}.git" && \ |  | ||||||
|     git tag "${VERSION}" && \ |  | ||||||
|     git push --tags |  | ||||||
| fi |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| #!/usr/bin/env bash |  | ||||||
| wget -q "https://github.com/multiarch/qemu-user-static/releases/download/v3.1.0-2/qemu-aarch64-static" |  | ||||||
| wget -q "https://github.com/multiarch/qemu-user-static/releases/download/v3.1.0-2/qemu-arm-static" |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue