make version/branch dynamic to build and add build-date

This commit is contained in:
Nicholas St. Germain 2020-12-21 11:00:45 -06:00
parent eeb0198e3d
commit 0906480270
No known key found for this signature in database
GPG key ID: 7221152119DAB1E6
5 changed files with 20 additions and 139 deletions

View file

@ -3,7 +3,9 @@ on:
schedule:
- cron: '0 10 * * *'
push:
branches: master
branches:
- master
- develop
tags:
- 'v*.*.*'
paths:
@ -11,7 +13,9 @@ on:
- 'Varken.py'
- 'Dockerfile'
pull_request:
branches: master
branches:
- master
- develop
paths:
- 'varken/**'
- 'Varken.py'

View file

@ -1,128 +0,0 @@
stages:
- test
- build and push
- manifests
- release
.common_build: &common_build
image: docker:stable
stage: build and push
variables:
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,5 +1,11 @@
FROM python:3.9.1-alpine
ENV DEBUG="True" \
DATA_FOLDER="/config" \
VERSION="0.0.0"
BRANCH="edge"
BUILD_DATE="1/1/1970"
LABEL maintainer="dirtycajunrice,samwiseg0" \
org.opencontainers.image.created=$BUILD_DATE \
org.opencontainers.image.url="https://github.com/Boerderij/Varken" \
@ -11,10 +17,6 @@ LABEL maintainer="dirtycajunrice,samwiseg0" \
org.opencontainers.image.description="Varken is a standalone application to aggregate data from the Plex ecosystem into InfluxDB using Grafana for a frontend" \
org.opencontainers.image.licenses="MIT"
ENV DEBUG="True"
ENV DATA_FOLDER="/config"
WORKDIR /app
COPY /requirements.txt /Varken.py /app/
@ -25,7 +27,9 @@ COPY /data /app/data
COPY /utilities /app/data/utilities
RUN apk add --no-cache tzdata && \
pip install --no-cache-dir -r /app/requirements.txt
RUN \
apk add --no-cache tzdata \
&& pip install --no-cache-dir -r /app/requirements.txt \
&& sed -i "s/0.0.0/${VERSION}/;s/develop/${BRANCH}/;s/1\/1\/1970/${BUILD_DATE//\//\\/}/" varken/__init__.py
CMD cp /app/data/varken.example.ini /config/varken.example.ini && python3 /app/Varken.py

View file

@ -15,7 +15,7 @@ from logging import getLogger, StreamHandler, Formatter, DEBUG
from varken import structures # noqa
from varken.ombi import OmbiAPI
from varken.unifi import UniFiAPI
from varken import VERSION, BRANCH
from varken import VERSION, BRANCH, BUILD_DATE
from varken.sonarr import SonarrAPI
from varken.radarr import RadarrAPI
from varken.lidarr import LidarrAPI
@ -87,7 +87,7 @@ if __name__ == "__main__":
vl.logger.info(u"Python %s", version)
vl.logger.info("Varken v%s-%s", VERSION, BRANCH)
vl.logger.info("Varken v%s-%s %s", VERSION, BRANCH, BUILD_DATE)
CONFIG = INIParser(DATA_FOLDER)
DBMANAGER = DBManager(CONFIG.influx_server)

View file

@ -1,2 +1,3 @@
VERSION = "1.7.7"
VERSION = "0.0.0"
BRANCH = 'develop'
BUILD_DATE = '1/1/1970'