From 0a6a23bc66a125c6495ad6d8b0745771da1daaa6 Mon Sep 17 00:00:00 2001 From: "Nicholas St. Germain" Date: Mon, 24 Jun 2019 10:37:01 -0500 Subject: [PATCH 1/9] version bump + develop --- varken/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/varken/__init__.py b/varken/__init__.py index f6e1dae4..4088c02a 100644 --- a/varken/__init__.py +++ b/varken/__init__.py @@ -1,2 +1,2 @@ -VERSION = "1.7.2" -BRANCH = 'master' +VERSION = "1.7.3" +BRANCH = 'develop' From ec73dd8c0fc46eb023eb6938761ae2624148f8bd Mon Sep 17 00:00:00 2001 From: Michael Porter Date: Mon, 24 Jun 2019 18:57:02 +0100 Subject: [PATCH 2/9] #141 Take monitored status into account for Missing Available Movies check --- varken/radarr.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/varken/radarr.py b/varken/radarr.py index e8a15d06..6692ddf7 100644 --- a/varken/radarr.py +++ b/varken/radarr.py @@ -37,7 +37,7 @@ def get_missing(self): return for movie in movies: - if not movie.downloaded: + if movie.monitored and not movie.downloaded: if movie.isAvailable: ma = 0 else: From 6d33253608a94cfe667b9dcb85ba08785749d2ba Mon Sep 17 00:00:00 2001 From: "Nicholas St. Germain" Date: Fri, 12 Jul 2019 19:42:01 -0500 Subject: [PATCH 3/9] mini gitlab-ci test --- .gitlab-ci.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..fc34344c --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,20 @@ +stages: + - test + - deploy + - release + +variables: + 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') + +flake8-test: + image: python:3.7.3-alpine + stage: test + script: + - pip install flake8 + - flake8 --max-line-length 120 $FLAKE_FILES + - grep -i version $VERSION_FILE | cut -d" " -f3 | tr -d \\" From aa6b8694438565b5e40b2b476bac8bb0c731bab4 Mon Sep 17 00:00:00 2001 From: "Nicholas St. Germain" Date: Fri, 12 Jul 2019 19:52:35 -0500 Subject: [PATCH 4/9] mini gitlab-ci test 2 --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fc34344c..e5a7112e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,3 +18,4 @@ flake8-test: - pip install flake8 - flake8 --max-line-length 120 $FLAKE_FILES - grep -i version $VERSION_FILE | cut -d" " -f3 | tr -d \\" + - echo $CI_PROJECT_PATH $CI_PROJECT_PATH_SLUG From 3503031cebe81494ea55c3e178316b1aba12bcd8 Mon Sep 17 00:00:00 2001 From: "Nicholas St. Germain" Date: Fri, 9 Aug 2019 15:46:06 -0500 Subject: [PATCH 5/9] update gitlab ci --- .gitlab-ci.yml | 134 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 121 insertions(+), 13 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e5a7112e..fb8e73f9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,21 +1,129 @@ stages: - test - - deploy + - build and push + - manifests - release -variables: - 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') +.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:]") -flake8-test: +.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: - - pip install flake8 - - flake8 --max-line-length 120 $FLAKE_FILES - - grep -i version $VERSION_FILE | cut -d" " -f3 | tr -d \\" - - echo $CI_PROJECT_PATH $CI_PROJECT_PATH_SLUG + - 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 \ No newline at end of file From 378e8d6401c4a3634764b5b3201378659e68cf48 Mon Sep 17 00:00:00 2001 From: "Nicholas St. Germain" Date: Fri, 9 Aug 2019 15:59:21 -0500 Subject: [PATCH 6/9] added check for sonarr monitored as well for #141 --- varken/sonarr.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/varken/sonarr.py b/varken/sonarr.py index 463b1ad2..db93ef74 100644 --- a/varken/sonarr.py +++ b/varken/sonarr.py @@ -54,7 +54,7 @@ def get_calendar(self, query="Missing"): else: downloaded = 0 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)) else: air_days.append((show.series['title'], downloaded, sxe, show.title, show.airDateUtc, show.id)) From cca283d657b15e093e4a5c4d6b7542c427284847 Mon Sep 17 00:00:00 2001 From: "Nicholas St. Germain" Date: Fri, 9 Aug 2019 17:06:41 -0500 Subject: [PATCH 7/9] check for read-only filesystem and exit if write needed and cannot. Fixes #146 --- Jenkinsfile | 126 -------------------------------------------- varken/iniparser.py | 4 ++ 2 files changed, 4 insertions(+), 126 deletions(-) delete mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index d751aef5..00000000 --- a/Jenkinsfile +++ /dev/null @@ -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 - """ - } - } - } -} diff --git a/varken/iniparser.py b/varken/iniparser.py index ed32c088..594c9c39 100644 --- a/varken/iniparser.py +++ b/varken/iniparser.py @@ -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 @@ def write_file(self, inifile): 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: From 2468230bc5f8daf672f844a27525821b3cfbf213 Mon Sep 17 00:00:00 2001 From: "Nicholas St. Germain" Date: Fri, 9 Aug 2019 17:21:52 -0500 Subject: [PATCH 8/9] switch build to gitlab runners --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f99c8e17..484d218b 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Logo Banner

-[![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) [![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) From 2ef9dcb714e204f0b4d3811f21e9a72d0067fc5f Mon Sep 17 00:00:00 2001 From: "Nicholas St. Germain" Date: Fri, 9 Aug 2019 17:36:11 -0500 Subject: [PATCH 9/9] version bump + changelog --- CHANGELOG.md | 22 +++++++++++++++++++--- varken/__init__.py | 2 +- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 200532fe..2e7c6442 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,23 @@ # Change Log -## [v1.7.2](https://github.com/Boerderij/Varken/tree/v1.7.2) (2019-06-23) -[Full Changelog](https://github.com/Boerderij/Varken/compare/1.7.1...v1.7.2) +## [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.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:** @@ -295,4 +311,4 @@ - Create crontabs [\#6](https://github.com/Boerderij/Varken/pull/6) ([ghost](https://github.com/ghost)) - update plex\_dashboard.json [\#5](https://github.com/Boerderij/Varken/pull/5) ([ghost](https://github.com/ghost)) - Update README.md [\#4](https://github.com/Boerderij/Varken/pull/4) ([ghost](https://github.com/ghost)) -- added sickrage portion [\#3](https://github.com/Boerderij/Varken/pull/3) ([ghost](https://github.com/ghost)) +- added sickrage portion [\#3](https://github.com/Boerderij/Varken/pull/3) ([ghost](https://github.com/ghost)) \ No newline at end of file diff --git a/varken/__init__.py b/varken/__init__.py index 4088c02a..754c281d 100644 --- a/varken/__init__.py +++ b/varken/__init__.py @@ -1,2 +1,2 @@ VERSION = "1.7.3" -BRANCH = 'develop' +BRANCH = 'master'