v1.7.3 Merge

v1.7.3 Merge
This commit is contained in:
Nicholas St. Germain 2019-08-09 17:40:52 -05:00 committed by GitHub
commit f3286ca8f3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 156 additions and 133 deletions

129
.gitlab-ci.yml Normal file
View file

@ -0,0 +1,129 @@
stages:
- test
- build and push
- manifests
- release
.common_build: &common_build
image: docker:stable
stage: build and push
variables:
DOCKER_HOST: tcp://docker:2375/
DOCKER_DRIVER: overlay2
services:
- docker:dind
except:
- tags
only:
changes:
- "Dockerfile*"
- Varken.py
- varken/*
- .gitlab-ci.yml
before_script:
- mkdir $HOME/.docker
- echo '{"experimental":"enabled"}' > $HOME/.docker/config.json
- if [[ $CI_COMMIT_REF_NAME == "master" ]]; then
export TAG=$(grep -i version varken/__init__.py | cut -d \ -f3 | tr -d \");
else
export TAG="develop";
fi
- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USER" --password-stdin
- export CI_PROJECT_PATH=$(echo $CI_PROJECT_PATH | tr "[:upper:]" "[:lower:]")
.common_release: &common_release
<<: *common_build
tags:
- docker
- shared
only:
refs:
- master
flake8:
image: python:3.7.3-alpine
stage: test
cache:
key: "varken-cache"
paths:
- .cache/pip
- venv/
variables:
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
tags:
- shared
before_script:
- python -m venv venv
- source venv/bin/activate
- pip install -U flake8
script:
- flake8 --max-line-length 120 Varken.py varken/*.py
amd64:
<<: *common_build
tags:
- docker
- shared
script:
- docker build --pull
--cache-from "$CI_PROJECT_PATH":"$TAG-amd64"
-t "$CI_PROJECT_PATH":"$TAG-amd64" .
- docker push "$CI_PROJECT_PATH":"$TAG-amd64"
armv6:
<<: *common_build
tags:
- docker
- arm
script:
- docker build --pull
--cache-from "$CI_PROJECT_PATH":"$TAG-arm"
-t "$CI_PROJECT_PATH":"$TAG-arm"
-f Dockerfile.arm .
- docker push "$CI_PROJECT_PATH":"$TAG-arm"
arm64v8:
<<: *common_build
tags:
- docker
- arm64
script:
- docker build --pull
--cache-from "$CI_PROJECT_PATH":"$TAG-arm64"
-t "$CI_PROJECT_PATH":"$TAG-arm64"
-f Dockerfile.arm64 .
- docker push "$CI_PROJECT_PATH":"$TAG-arm64"
versioned:
<<: *common_build
stage: manifests
tags:
- docker
- shared
script:
- docker manifest create "$CI_PROJECT_PATH":"$TAG"
"$CI_PROJECT_PATH":"$TAG-amd64"
"$CI_PROJECT_PATH":"$TAG-arm64"
"$CI_PROJECT_PATH":"$TAG-arm"
- docker manifest push -p "$CI_PROJECT_PATH":"$TAG"
latest:
<<: *common_release
stage: manifests
tags:
- docker
script:
- docker manifest create "$CI_PROJECT_PATH":latest
"$CI_PROJECT_PATH":"$TAG-amd64"
"$CI_PROJECT_PATH":"$TAG-arm64"
"$CI_PROJECT_PATH":"$TAG-arm"
- docker manifest push -p "$CI_PROJECT_PATH":latest
.github:
<<: *common_release
stage: release
script:
- apk add git
- git remote set-url origin "https://$GITHUB_USER:$GITHUB_TOKEN@github.com/$CI_PROJECT_PATH".git"
- git tag $TAG
- git push --tags

View file

@ -1,7 +1,23 @@
# Change Log # Change Log
## [v1.7.2](https://github.com/Boerderij/Varken/tree/v1.7.2) (2019-06-23) ## [v1.7.3](https://github.com/Boerderij/Varken/tree/v1.7.3) (2019-08-09)
[Full Changelog](https://github.com/Boerderij/Varken/compare/1.7.1...v1.7.2) [Full Changelog](https://github.com/Boerderij/Varken/compare/1.7.2...v1.7.3)
**Implemented enhancements:**
- \#141 Take monitored status into account for Missing Available Movies check [\#145](https://github.com/Boerderij/Varken/pull/145) ([mikeporterdev](https://github.com/mikeporterdev))
**Fixed bugs:**
- \[BUG\] Varken Crashes when ini is read only [\#146](https://github.com/Boerderij/Varken/issues/146)
- \[BUG\] Missing Available Movies/TV Shows does not take Monitored status into account [\#141](https://github.com/Boerderij/Varken/issues/141)
**Merged pull requests:**
- v1.7.3 Merge [\#149](https://github.com/Boerderij/Varken/pull/149) ([DirtyCajunRice](https://github.com/DirtyCajunRice))
## [1.7.2](https://github.com/Boerderij/Varken/tree/1.7.2) (2019-06-24)
[Full Changelog](https://github.com/Boerderij/Varken/compare/1.7.1...1.7.2)
**Implemented enhancements:** **Implemented enhancements:**

126
Jenkinsfile vendored
View file

@ -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
"""
}
}
}
}

View file

@ -2,7 +2,7 @@
<img width="800" src="https://raw.githubusercontent.com/Boerderij/Varken/master/assets/varken_full_banner.jpg" alt="Logo Banner"> <img width="800" src="https://raw.githubusercontent.com/Boerderij/Varken/master/assets/varken_full_banner.jpg" alt="Logo Banner">
</p> </p>
[![Build Status](https://jenkins.cajun.pro/buildStatus/icon?job=Varken/master)](https://jenkins.cajun.pro/job/Varken/job/master/) [![pipeline status](https://gitlab.com/boerderij/Varken/badges/master/pipeline.svg)](https://gitlab.com/boerderij/Varken/commits/master)
[![Discord](https://img.shields.io/discord/518970285773422592.svg?colorB=7289DA&label=Discord&logo=Discord&logoColor=7289DA&style=flat-square)](https://discord.gg/VjZ6qSM) [![Discord](https://img.shields.io/discord/518970285773422592.svg?colorB=7289DA&label=Discord&logo=Discord&logoColor=7289DA&style=flat-square)](https://discord.gg/VjZ6qSM)
[![ko-fi](https://img.shields.io/badge/Buy%20Us%20A%20Coffee-Donate-ff813f.svg?logo=CoffeeScript&style=flat-square)](https://ko-fi.com/varken) [![ko-fi](https://img.shields.io/badge/Buy%20Us%20A%20Coffee-Donate-ff813f.svg?logo=CoffeeScript&style=flat-square)](https://ko-fi.com/varken)
[![Docker-Layers](https://images.microbadger.com/badges/image/boerderij/varken.svg)](https://microbadger.com/images/boerderij/varken) [![Docker-Layers](https://images.microbadger.com/badges/image/boerderij/varken.svg)](https://microbadger.com/images/boerderij/varken)

View file

@ -1,2 +1,2 @@
VERSION = "1.7.2" VERSION = "1.7.3"
BRANCH = 'master' BRANCH = 'master'

View file

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

View file

@ -37,7 +37,7 @@ class RadarrAPI(object):
return return
for movie in movies: for movie in movies:
if not movie.downloaded: if movie.monitored and not movie.downloaded:
if movie.isAvailable: if movie.isAvailable:
ma = 0 ma = 0
else: else:

View file

@ -54,7 +54,7 @@ class SonarrAPI(object):
else: else:
downloaded = 0 downloaded = 0
if query == "Missing": if query == "Missing":
if not downloaded: if show.monitored and not downloaded:
missing.append((show.series['title'], downloaded, sxe, show.title, show.airDateUtc, show.id)) missing.append((show.series['title'], downloaded, sxe, show.title, show.airDateUtc, show.id))
else: else:
air_days.append((show.series['title'], downloaded, sxe, show.title, show.airDateUtc, show.id)) air_days.append((show.series['title'], downloaded, sxe, show.title, show.airDateUtc, show.id))