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 os import environ as env
|
||||
from logging import getLogger
|
||||
|
@ -77,6 +78,9 @@ class INIParser(object):
|
|||
file_path = join(self.data_folder, ini)
|
||||
if exists(file_path):
|
||||
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:
|
||||
self.config.write(config_ini)
|
||||
else:
|
||||
|
|
Loading…
Reference in a new issue