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…
Reference in a new issue