diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0827de1a48e820be4ee5e6187fa547886123d530..b4d25c96d7cacd40854a4e31b0b62c8d555d6bb9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,50 +1,9 @@ stages: - - release - build - review - - deploy - -sentry_release_master: - stage: release - image: - name: getsentry/sentry-cli - entrypoint: [""] - script: - - export SENTRY_URL=$SENTRY_URL - - export SENTRY_AUTH_TOKEN=$SENTRY_AUTH_TOKEN - - export SENTRY_ORG=$SENTRY_ORG - - export SENTRY_PROJECT=$SENTRY_PROJECT - - sentry-cli releases new --project $SENTRY_PROJECT $(cat sickrage/version.txt) - - sentry-cli releases set-commits --auto $(cat sickrage/version.txt) - - sentry-cli releases finalize $(cat sickrage/version.txt) - - sentry-cli releases deploys $(cat sickrage/version.txt) new -e master - only: - - /^[0-9.]+$/ - except: - - branches - - triggers - -sentry_release_develop: - stage: release - image: - name: getsentry/sentry-cli - entrypoint: [""] - script: - - export SENTRY_URL=$SENTRY_URL - - export SENTRY_AUTH_TOKEN=$SENTRY_AUTH_TOKEN - - export SENTRY_ORG=$SENTRY_ORG - - export SENTRY_PROJECT=$SENTRY_PROJECT - - sentry-cli releases new --project $SENTRY_PROJECT $(cat sickrage/version.txt) - - sentry-cli releases set-commits --auto $(cat sickrage/version.txt) - - sentry-cli releases finalize $(cat sickrage/version.txt) - - sentry-cli releases deploys $(cat sickrage/version.txt) new -e develop - only: - - /^[0-9.]+dev[0-9]+$/ - except: - - branches - - triggers + - release -build:mr: +merge_request:build: stage: build image: name: docker:latest @@ -64,10 +23,10 @@ build:mr: only: - merge_requests -deploy:mr: +merge_request:review: stage: review dependencies: - - build:mr + - merge_request:build image: name: lachlanevenson/k8s-kubectl:latest entrypoint: ["/bin/sh", "-c"] @@ -91,11 +50,11 @@ deploy:mr: environment: name: review/$CI_COMMIT_REF_NAME url: https://review.sickrage.ca/$CI_COMMIT_REF_SLUG - on_stop: stop:mr + on_stop: merge_request:stop only: - merge_requests -stop:mr: +merge_request:stop: stage: review image: name: lachlanevenson/k8s-kubectl:latest @@ -113,91 +72,34 @@ stop:mr: only: - merge_requests -deploy_pypi: - stage: deploy - image: python:3.7-alpine3.9 - script: - - apk add --no-cache py-pip - - pip install -U twine - - python setup.py sdist bdist_wheel - - twine upload dist/* - only: - - /^[0-9.]+$/ - - /^[0-9.]+dev[0-9]+$/ - except: - - branches - - triggers - -deploy_docker_master: - stage: deploy - variables: - UPSTREAM_BRANCH: master - UPSTREAM_COMMIT_SHA: $CI_COMMIT_SHA - trigger: - project: sickrage/sickrage-docker - branch: master - only: - - /^[0-9.]+$/ - except: - - branches - - triggers - -deploy_docker_develop: - stage: deploy - variables: - UPSTREAM_BRANCH: develop - UPSTREAM_COMMIT_SHA: $CI_COMMIT_SHA - trigger: - project: sickrage/sickrage-docker - branch: master - only: - - /^[0-9.]+dev[0-9]+$/ - except: - - branches - - triggers - -deploy_synology: - stage: deploy - variables: - UPSTREAM_BRANCH: master - UPSTREAM_COMMIT_SHA: $CI_COMMIT_SHA - trigger: - project: sickrage/sickrage-synology - branch: master - only: - - /^[0-9.]+$/ - except: - - branches - - triggers - -deploy_readynas: - stage: deploy +release:develop: + stage: release + image: + name: nikolaik/python-nodejs:python3.7-nodejs10-alpine variables: - UPSTREAM_COMMIT_TAG: $CI_COMMIT_TAG - UPSTREAM_PROJECT_NAME: $CI_PROJECT_NAME - UPSTREAM_COMMIT_TAG_MESSAGE: $CI_COMMIT_TAG_MESSAGE - UPSTREAM_PROJECT_ID: $CI_PROJECT_ID - trigger: - project: sickrage/sickrage-readynas - branch: master + NODE_ENV: "development" + script: + - apk add --no-cache git bash openssh-client + - pip install bumpversion + - npm install -qs + - pip install -r requirements-dev.txt + - eval $(ssh-agent -s) + - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + - git config --global user.email $(git --no-pager show -s --format='%ae' HEAD) + - git config --global user.name $(git --no-pager show -s --format='%an' HEAD) + - npm run build + - python setup.py extract_messages + - crowdin-cli-py upload sources + - crowdin-cli-py download + - python setup.py compile_catalog + - git add --all + - bumpversion --allow-dirty preversion sickrage/version.txt + - git push https://$GIT_ACCESS_USER:$GIT_ACCESS_TOKEN@$CI_SERVER_HOST/$CI_PROJECT_PATH.git HEAD:$CI_COMMIT_REF_NAME --follow-tags only: - - /^[0-9.]+$/ + - test-develop except: - - branches + - tags - triggers - -deploy_qnap: - stage: deploy - variables: - UPSTREAM_COMMIT_TAG: $CI_COMMIT_TAG - UPSTREAM_PROJECT_NAME: $CI_PROJECT_NAME - UPSTREAM_COMMIT_TAG_MESSAGE: $CI_COMMIT_TAG_MESSAGE - UPSTREAM_PROJECT_ID: $CI_PROJECT_ID - trigger: - project: sickrage/sickrage-qnap - branch: master - only: - - /^[0-9.]+$/ - except: - - branches - - triggers \ No newline at end of file + - pipelines \ No newline at end of file diff --git a/Gruntfile.js b/Gruntfile.js index e8ab3a5cda0a8808026cad1b6c19f638f71ec7d8..4ee750003a26e1d312363c34f413ed6f86415730 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,5 +1,4 @@ module.exports = function (grunt) { - const shell = require('shelljs'); const webpackConfig = require('./webpack.config'); require('load-grunt-tasks')(grunt); @@ -42,70 +41,6 @@ module.exports = function (grunt) { 'babel_extract': {cmd: 'python setup.py extract_messages'}, 'babel_update': {cmd: 'python setup.py update_catalog'}, 'babel_compile': {cmd: 'python setup.py compile_catalog'}, - - // Git Commands - 'git': { - cmd: function (cmd, branch) { - branch = branch ? ' ' + branch : ''; - return 'git ' + cmd + branch; - } - }, - 'git_push': { - cmd: function (remote, branch, tags) { - let pushCmd = 'git push ' + remote + ' ' + branch; - if (tags) { - pushCmd += ' --tags'; - } - return pushCmd; - }, - stderr: false, - callback: function (err, stdout, stderr) { - grunt.log.write(stderr); - } - }, - 'git_commit': { - cmd: function (message) { - return 'git commit -am "' + message + '"'; - }, - stderr: false, - callback: function (err, stdout, stderr) { - grunt.log.write(stderr); - } - }, - 'git_last_tag': { - cmd: 'git for-each-ref refs/tags --sort=-taggerdate --count=1 --format=%(refname:short)', - stdout: false, - callback: function (err, stdout) { - stdout = stdout.trim(); - if (/^\d{1,2}.\d{1,2}.\d+(?:.dev\d+)?$/.test(stdout)) { - grunt.config('last_tag', stdout); - } else { - grunt.fatal('Could not get the last tag name. We got: ' + stdout); - } - } - }, - 'git_list_changes': { - cmd: function () { - return 'git log --oneline --pretty=format:%s ' + grunt.config('last_tag') + '..HEAD'; - }, - stdout: false, - maxBuffer: 500 * 1024, - callback: function (err, stdout) { - const commits = stdout.trim() - .replace(/`/gm, '').replace(/^\([\w\d\s,.\-+_/>]+\)\s/gm, ''); // removes ` and tag information - if (commits) { - grunt.config('commits', commits); - } else { - grunt.fatal('Getting new commit list failed!'); - } - } - }, - 'git_tag': { - cmd: function (version) { - return 'git tag ' + version + ' -m "' + grunt.config('commits') + '"'; - }, - stdout: false - } } }); @@ -154,91 +89,11 @@ module.exports = function (grunt) { } }); - grunt.registerTask('bump_version', function (new_version) { - const vFile = 'sickrage/version.txt'; - grunt.file.write(vFile, new_version) - }); - - grunt.registerTask('pre-release', function () { - grunt.task.run(['exec:git:checkout:develop']); - - const vFile = 'sickrage/version.txt'; - const version = grunt.file.read(vFile); - const versionParts = version.split('.'); - const vArray = { - vMajor: versionParts[0], - vMinor: versionParts[1], - vPatch: versionParts[2], - vPre: versionParts[3] || 0 - }; - - if (vArray.vPre === 0) { - vArray.vPatch = parseFloat(vArray.vPatch) + 1; - } - - if (vArray.vPre !== 0) { - vArray.vPre = vArray.vPre.split('dev')[1]; - vArray.vPre = parseFloat(vArray.vPre) + 1; - } else { - vArray.vPre = parseFloat(vArray.vPre) + 1; - } - - const newVersion = vArray.vMajor + '.' + vArray.vMinor + '.' + vArray.vPatch + '.dev' + vArray.vPre; - - const tasks = [ - 'changelog', - 'webpack:dev', - //'sync_trans', - 'bump_version:' + newVersion, - 'exec:git_commit:Pre-Release v' + newVersion, - 'exec:git_last_tag', 'exec:git_list_changes', 'exec:git_tag:' + newVersion, - 'exec:git_push:origin:develop:tags', - ]; - - grunt.task.run(tasks); - }); - grunt.registerTask('release', function () { - grunt.task.run(['exec:git:checkout:develop']); - - const vFile = 'sickrage/version.txt'; - const version = grunt.file.read(vFile); - const versionParts = version.split('.'); - const vArray = { - vMajor: versionParts[0], - vMinor: versionParts[1], - vPatch: versionParts[2], - vPre: versionParts[3] || 0 - }; - - if (vArray.vPre === 0) { - vArray.vPatch = parseFloat(vArray.vPatch) + 1; - } - - if (vArray.vPre !== 0) { - vArray.vPre = vArray.vPre.split('dev')[1]; - vArray.vPre = parseFloat(vArray.vPre) + 1; - } else { - vArray.vPre = parseFloat(vArray.vPre) + 1; - } - - const newVersion = vArray.vMajor + '.' + vArray.vMinor + '.' + vArray.vPatch; - const tasks = [ - 'exec:git:checkout:-b release-v' + newVersion + ':develop', 'changelog', - 'webpack:prod', - //'sync_trans', - 'bump_version:' + newVersion, - 'exec:git_commit:Release v' + newVersion, - 'exec:git:checkout:master', - 'exec:git:merge:release-v' + newVersion, - 'exec:git_last_tag', 'exec:git_list_changes', 'exec:git_tag:' + newVersion, - 'exec:git_push:origin:master:tags', - 'exec:git:checkout:develop', - 'exec:git:merge:release-v' + newVersion, - 'exec:git_push:origin:develop', - 'exec:git:branch:-d release-v' + newVersion, + 'webpack', + 'sync_trans', ]; grunt.task.run(tasks); diff --git a/README.txt b/README.txt index d5fdb4d1ba0598239e60959a2934b1fa426caab9..f6c250ddf8db8e891aaf8eb8d5abfea12dd8372d 100644 --- a/README.txt +++ b/README.txt @@ -32,4 +32,6 @@ Before using this with your existing database (sickrage.db or sickbeard.db) plea any other database files such as cache.db and failed.db if present. We HIGHLY recommend starting out with no database files at all to make this a fresh start but the choice is at your own -risk. \ No newline at end of file +risk. + +test \ No newline at end of file diff --git a/package.json b/package.json index b9d9a721e3fec8dbe11831676a46a3430edc5301..888ca248bd39aa8cf749da17726fa34956a0bf75 100644 --- a/package.json +++ b/package.json @@ -10,8 +10,7 @@ }, "homepage": "https://www.sickrage.ca", "scripts": { - "dev": "webpack --mode development", - "prod": "webpack --mode production" + "build": "webpack --config webpack.config.js -p" }, "devDependencies": { "@fortawesome/fontawesome-free": "^5.1.0", diff --git a/requirements-dev.txt b/requirements-dev.txt index 9e4a3be4005ba05dc8d401d85f89b4a27516e063..7d83160f09fa478e119954b354a893ef02e25572 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -3,5 +3,5 @@ crowdin-cli-py babel wheel tox -wheel -vcrpy-unittest \ No newline at end of file +vcrpy-unittest +Mako \ No newline at end of file diff --git a/setup.cfg b/setup.cfg index 93ac254a5fe40ee8bd7a8763eb12774de803c045..13bfb7771f39a67f80801a51039959abfc7e0a34 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,3 +1,12 @@ +[bumpversion] +current_version = 9.4.184.dev4 +parse = (?P\d+)\.(?P\d+)\.(?P\d+)(\.(?P[a-z]+)(?P\d+))? +serialize = + {major}.{minor}.{patch}.{releaselevel}{preversion} + {major}.{minor}.{patch} +commit = True +tag = True + [metadata] description-file = README.txt @@ -24,4 +33,5 @@ input_file = sickrage/locale/messages.pot output_dir = sickrage/locale input_file = sickrage/locale/messages.pot ignore_obsolete = true -previous = true \ No newline at end of file +previous = true +