check for read-only filesystem and exit if write needed and cannot. Fixes #146
This commit is contained in:
parent
378e8d6401
commit
cca283d657
2 changed files with 4 additions and 126 deletions
126
Jenkinsfile
vendored
126
Jenkinsfile
vendored
|
@ -1,126 +0,0 @@
|
||||||
pipeline {
|
|
||||||
agent none
|
|
||||||
environment {
|
|
||||||
DOCKER_REPO = "boerderij/varken"
|
|
||||||
GIT_REPO = 'Boerderij/Varken'
|
|
||||||
VERSION_FILE = "varken/__init__.py"
|
|
||||||
FLAKE_FILES = "Varken.py varken/*.py"
|
|
||||||
TAG = ""
|
|
||||||
GIT_TOKEN = credentials('github-jenkins-token')
|
|
||||||
}
|
|
||||||
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 ${FLAKE_FILES}
|
|
||||||
rm -rf venv/
|
|
||||||
"""
|
|
||||||
script {
|
|
||||||
TAG = sh(returnStdout: true, script: 'grep -i version ${VERSION_FILE} | cut -d" " -f3 | tr -d \\"').trim()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Docker Builds') {
|
|
||||||
parallel {
|
|
||||||
stage('amd64') {
|
|
||||||
when {
|
|
||||||
anyOf {
|
|
||||||
branch 'master'
|
|
||||||
branch 'develop'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
agent { label 'amd64'}
|
|
||||||
steps {
|
|
||||||
script {
|
|
||||||
if (BRANCH_NAME == 'master') {
|
|
||||||
def image = docker.build("${DOCKER_REPO}:${TAG}-amd64")
|
|
||||||
image.push()
|
|
||||||
|
|
||||||
} else if (BRANCH_NAME == 'develop') {
|
|
||||||
def image = docker.build("${DOCKER_REPO}:develop-amd64")
|
|
||||||
image.push()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('ARMv6') {
|
|
||||||
when {
|
|
||||||
anyOf {
|
|
||||||
branch 'master'
|
|
||||||
branch 'develop'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
agent { label 'arm64'}
|
|
||||||
steps {
|
|
||||||
script {
|
|
||||||
if (BRANCH_NAME == 'master') {
|
|
||||||
def image = docker.build("${DOCKER_REPO}:${TAG}-arm", "-f Dockerfile.arm .")
|
|
||||||
image.push()
|
|
||||||
} else if (BRANCH_NAME == 'develop') {
|
|
||||||
def image = docker.build("${DOCKER_REPO}: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 image = docker.build("${DOCKER_REPO}:${TAG}-arm64", "-f Dockerfile.arm64 .")
|
|
||||||
image.push()
|
|
||||||
} else if (BRANCH_NAME == 'develop') {
|
|
||||||
def image = docker.build("${DOCKER_REPO}: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') {
|
|
||||||
sh(script: "docker manifest create ${DOCKER_REPO}:${TAG} ${DOCKER_REPO}:${TAG}-amd64 ${DOCKER_REPO}:${TAG}-arm64 ${DOCKER_REPO}:${TAG}-arm")
|
|
||||||
sh(script: "docker manifest inspect ${DOCKER_REPO}:${TAG}")
|
|
||||||
sh(script: "docker manifest push -p ${DOCKER_REPO}:${TAG}")
|
|
||||||
sh(script: "docker manifest create ${DOCKER_REPO}:latest ${DOCKER_REPO}:${TAG}-amd64 ${DOCKER_REPO}:${TAG}-arm64 ${DOCKER_REPO}:${TAG}-arm")
|
|
||||||
sh(script: "docker manifest inspect ${DOCKER_REPO}:latest")
|
|
||||||
sh(script: "docker manifest push -p ${DOCKER_REPO}:latest")
|
|
||||||
} else if (BRANCH_NAME == 'develop') {
|
|
||||||
sh(script: "docker manifest create ${DOCKER_REPO}:develop ${DOCKER_REPO}:develop-amd64 ${DOCKER_REPO}:develop-arm64 ${DOCKER_REPO}:develop-arm")
|
|
||||||
sh(script: "docker manifest inspect ${DOCKER_REPO}:develop")
|
|
||||||
sh(script: "docker manifest push -p ${DOCKER_REPO}:develop")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('GitHub Release') {
|
|
||||||
when { branch 'master' }
|
|
||||||
agent { label 'amd64'}
|
|
||||||
steps {
|
|
||||||
sh """
|
|
||||||
git remote set-url origin "https://${GIT_TOKEN_USR}:${GIT_TOKEN_PSW}@github.com/${GIT_REPO}.git"
|
|
||||||
git tag ${TAG}
|
|
||||||
git push --tags
|
|
||||||
"""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
from os import W_OK, access
|
||||||
from shutil import copyfile
|
from shutil import copyfile
|
||||||
from os import environ as env
|
from os import environ as env
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
|
@ -77,6 +78,9 @@ class INIParser(object):
|
||||||
file_path = join(self.data_folder, ini)
|
file_path = join(self.data_folder, ini)
|
||||||
if exists(file_path):
|
if exists(file_path):
|
||||||
self.logger.debug('Writing to %s', inifile)
|
self.logger.debug('Writing to %s', inifile)
|
||||||
|
if not access(file_path, W_OK):
|
||||||
|
self.logger.error("Config file is incomplete and read-only. Exiting.")
|
||||||
|
exit(1)
|
||||||
with open(file_path, 'w') as config_ini:
|
with open(file_path, 'w') as config_ini:
|
||||||
self.config.write(config_ini)
|
self.config.write(config_ini)
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in a new issue