Update CI & Deployment scripts (#22)

* ci test

* update hgignore. ci test.

* Update README.md

* add codeclimate stuff

* update codeclimate.

* ditto

* deploy script
This commit is contained in:
Nick Earwood 2019-10-14 23:22:24 -05:00 committed by GitHub
parent 49ac6a2d74
commit fe2b03776e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 271 additions and 33 deletions

33
.codeclimate.yml Normal file
View File

@ -0,0 +1,33 @@
---
engines:
csslint:
enabled: true
duplication:
enabled: true
config:
languages:
- ruby
- javascript
- python
- php
eslint:
enabled: true
fixme:
enabled: true
phpmd:
enabled: true
ratings:
paths:
- "**.css"
- "**.inc"
- "**.js"
- "**.jsx"
- "**.module"
- "**.php"
- "**.py"
- "**.rb"
exclude_paths:
- db/
- tests/
- src/view/lib/
- doxygen/

2
.csslintrc Normal file
View File

@ -0,0 +1,2 @@
--exclude-exts=.min.css
--ignore=adjoining-classes,box-model,ids,order-alphabetical,unqualified-attributes

1
.eslintignore Normal file
View File

@ -0,0 +1 @@
**/*{.,-}min.js

213
.eslintrc Normal file
View File

@ -0,0 +1,213 @@
ecmaFeatures:
modules: true
jsx: true
env:
amd: true
browser: true
es6: true
jquery: true
node: true
# http://eslint.org/docs/rules/
rules:
# Possible Errors
comma-dangle: [2, never]
no-cond-assign: 2
no-console: 0
no-constant-condition: 2
no-control-regex: 2
no-debugger: 2
no-dupe-args: 2
no-dupe-keys: 2
no-duplicate-case: 2
no-empty: 2
no-empty-character-class: 2
no-ex-assign: 2
no-extra-boolean-cast: 2
no-extra-parens: 0
no-extra-semi: 2
no-func-assign: 2
no-inner-declarations: [2, functions]
no-invalid-regexp: 2
no-irregular-whitespace: 2
no-negated-in-lhs: 2
no-obj-calls: 2
no-regex-spaces: 2
no-sparse-arrays: 2
no-unexpected-multiline: 2
no-unreachable: 2
use-isnan: 2
valid-jsdoc: 0
valid-typeof: 2
# Best Practices
accessor-pairs: 2
block-scoped-var: 0
complexity: [2, 6]
consistent-return: 0
curly: 0
default-case: 0
dot-location: 0
dot-notation: 0
eqeqeq: 2
guard-for-in: 2
no-alert: 2
no-caller: 2
no-case-declarations: 2
no-div-regex: 2
no-else-return: 0
no-empty-label: 2
no-empty-pattern: 2
no-eq-null: 2
no-eval: 2
no-extend-native: 2
no-extra-bind: 2
no-fallthrough: 2
no-floating-decimal: 0
no-implicit-coercion: 0
no-implied-eval: 2
no-invalid-this: 0
no-iterator: 2
no-labels: 0
no-lone-blocks: 2
no-loop-func: 2
no-magic-number: 0
no-multi-spaces: 0
no-multi-str: 0
no-native-reassign: 2
no-new-func: 2
no-new-wrappers: 2
no-new: 2
no-octal-escape: 2
no-octal: 2
no-proto: 2
no-redeclare: 2
no-return-assign: 2
no-script-url: 2
no-self-compare: 2
no-sequences: 0
no-throw-literal: 0
no-unused-expressions: 2
no-useless-call: 2
no-useless-concat: 2
no-void: 2
no-warning-comments: 0
no-with: 2
radix: 2
vars-on-top: 0
wrap-iife: 2
yoda: 0
# Strict
strict: 0
# Variables
init-declarations: 0
no-catch-shadow: 2
no-delete-var: 2
no-label-var: 2
no-shadow-restricted-names: 2
no-shadow: 0
no-undef-init: 2
no-undef: 0
no-undefined: 0
no-unused-vars: 0
no-use-before-define: 0
# Node.js and CommonJS
callback-return: 2
global-require: 2
handle-callback-err: 2
no-mixed-requires: 0
no-new-require: 0
no-path-concat: 2
no-process-exit: 2
no-restricted-modules: 0
no-sync: 0
# Stylistic Issues
array-bracket-spacing: 0
block-spacing: 0
brace-style: 0
camelcase: 0
comma-spacing: 0
comma-style: 0
computed-property-spacing: 0
consistent-this: 0
eol-last: 0
func-names: 0
func-style: 0
id-length: 0
id-match: 0
indent: 0
jsx-quotes: 0
key-spacing: 0
linebreak-style: 0
lines-around-comment: 0
max-depth: 0
max-len: 0
max-nested-callbacks: 0
max-params: 0
max-statements: [2, 30]
new-cap: 0
new-parens: 0
newline-after-var: 0
no-array-constructor: 0
no-bitwise: 0
no-continue: 0
no-inline-comments: 0
no-lonely-if: 0
no-mixed-spaces-and-tabs: 0
no-multiple-empty-lines: 0
no-negated-condition: 0
no-nested-ternary: 0
no-new-object: 0
no-plusplus: 0
no-restricted-syntax: 0
no-spaced-func: 0
no-ternary: 0
no-trailing-spaces: 0
no-underscore-dangle: 0
no-unneeded-ternary: 0
object-curly-spacing: 0
one-var: 0
operator-assignment: 0
operator-linebreak: 0
padded-blocks: 0
quote-props: 0
quotes: 0
require-jsdoc: 0
semi-spacing: 0
semi: 0
sort-vars: 0
space-after-keywords: 0
space-before-blocks: 0
space-before-function-paren: 0
space-before-keywords: 0
space-in-parens: 0
space-infix-ops: 0
space-return-throw-case: 0
space-unary-ops: 0
spaced-comment: 0
wrap-regex: 0
# ECMAScript 6
arrow-body-style: 0
arrow-parens: 0
arrow-spacing: 0
constructor-super: 0
generator-star-spacing: 0
no-arrow-condition: 0
no-class-assign: 0
no-const-assign: 0
no-dupe-class-members: 0
no-this-before-super: 0
no-var: 0
object-shorthand: 0
prefer-arrow-callback: 0
prefer-const: 0
prefer-reflect: 0
prefer-spread: 0
prefer-template: 0
require-yield: 0

1
.gitignore vendored
View File

@ -3,3 +3,4 @@ script.config
src/config.php
VERSION
doxygen/*

View File

@ -1,23 +1,25 @@
env:
secure: EIJjaXkacpB8gLRsJSUMlLLZcbNqwgjyItjPqeQ4UXgLyph+yU3R1YyJkFhq8WAjOWB7DqESclp/nOfXRV+3kMOAIIRc+uAg8m3znhSOSSJYzRjh6UL+WrX7BjxgnblxC7or5IFWJR+OBOOrScwmHvKCfd4Z14WZBRj/kMNPjlSNb881lFo30Z6bkhfMQZlMMw0ctpaPUbjuj9p7MTBw7qqbIX76HIVznkxlnV98R+78PSdma+10Yx2Rp+ft+JNecR1I5taQ3hCPPRz7ZS620rCBu6IdLhoKNyqYGWMr31xzp40TqvSDvTAOQLPKYe1p/IDHFUJ2GnTb/MNP56uWRzi2+qfS/d9aYaa64jM0Vv2ZEb0ISvNzqyNlKYGBxTeDjwf+HxH4CSesKw5IZj8pskcsrAa8EtHNECGGYS6T/UYco/O56LQWg6ihya8JP9/ID1U0qGa0LGmM0MFlTj8qPhLOLihZZsZqaKx6HhhhxHKjTEGzzLxCIy0FFpJzQzJlH1nHqr9fLtI5uUh2e6PWqNNzDguV91nQRGB+7sTdfFh8qLNmta5yfpTZCFiJe8V0mzBUe4jvTjSLDfDZTzF3647TXTVUj1BRGH44vAZLE/AWXYqBQsiYDvv/1RBkD3FnckOLDaiyGqIsuDC/24WyfiQJWe5ZxVRNLNL2uPiN4JY=
language: php
php:
- '7.2'
- nightly
stages:
- test
- name: deploy
if: branch = msqur.com
branches:
only:
- master
- msqur.com
script: phpunit tests
deploy:
provider: script
script: deploy.sh
on:
branch: msqur.com
jobs:
include:
- stage: test
script: phpunit tests
- stage: deploy
script: bash deploy.sh
before_install:
- openssl aes-256-cbc -K $encrypted_63cff28d8c75_key -iv $encrypted_63cff28d8c75_iv -in .travis/deploy_key.pem.enc -out .travis/deploy_key.pem -d
- mkdir -p ~\/.ssh
- openssl aes-256-cbc -K $encrypted_571de2096706_key -iv $encrypted_571de2096706_iv -in .travis/travis_ci.enc -out .travis/id_rsa -d

Binary file not shown.

BIN
.travis/travis_ci.enc Normal file

Binary file not shown.

View File

@ -11,13 +11,6 @@ Try it now at: http://msqur.com/
* msqur.com [![Build Status](https://travis-ci.org/nearwood/msqur.svg?branch=msqur.com)](https://travis-ci.org/nearwood/msqur)
* master [![Build Status](https://travis-ci.org/nearwood/msqur.svg?branch=master)](https://travis-ci.org/nearwood/msqur)
### TODO ###
* Uploader (user)/Manager (admin)
* 3D table charts
* Tests and test lib.
* Better DB update procedure.
### Installation ###
#### Needed software ####
@ -41,16 +34,6 @@ Try it now at: http://msqur.com/
1. Run deploy script
1. Hit webserver to start using it.
#### hgrc ####
To display a fancy version string, modify your .hgrc to have this hook:
```
#!bash
[hooks]
post-update = hg log -r . --template "v{latesttag}-{latesttagdistance}-{node|short}\n" > src/VERSION
```
### Update & Deployment Instructions ###
* Pull updates on host.

View File

@ -1,12 +1,12 @@
#. script.config
eval "$(ssh-agent -s)"
chmod 600 .travis/deploy_key.pem
ssh-add .travis/deploy_key.pem
chmod 600 .travis/id_rsa
ssh-add .travis/id_rsa
#TODO Run backup script on remote
rsync -av --delete --exclude='*/.git*:.svn*:*/config.php' src/ $DEPLOY_DIR/
rsync -av --delete --exclude-from 'deploy_excludes.txt' -e "ssh -o StrictHostKeyChecking=no" src/ $DEPLOY_HOST/
rm .travis/deploy_key.pem
rm .travis/id_rsa
#cp -v VERSION $DEPLOY_DIR/ > /dev/null 2>&1

3
deploy_excludes.txt Normal file
View File

@ -0,0 +1,3 @@
.well-known
.git
config.php