Skip to content

Commit

Permalink
Update CI & Deployment scripts (#22)
Browse files Browse the repository at this point in the history
* ci test

* update hgignore. ci test.

* Update README.md

* add codeclimate stuff

* update codeclimate.

* ditto

* deploy script
  • Loading branch information
nearwood authored Oct 15, 2019
1 parent 49ac6a2 commit fe2b037
Show file tree
Hide file tree
Showing 11 changed files with 271 additions and 33 deletions.
33 changes: 33 additions & 0 deletions .codeclimate.yml
Original file line number Diff line number Diff line change
@@ -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 changes: 2 additions & 0 deletions .csslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
--exclude-exts=.min.css
--ignore=adjoining-classes,box-model,ids,order-alphabetical,unqualified-attributes
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
**/*{.,-}min.js
213 changes: 213 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -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 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ script.config
src/config.php
VERSION
doxygen/*

26 changes: 14 additions & 12 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -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 removed .travis/deploy_key.pem.enc
Binary file not shown.
Binary file added .travis/travis_ci.enc
Binary file not shown.
17 changes: 0 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 ####
Expand All @@ -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.
Expand Down
8 changes: 4 additions & 4 deletions deploy.sh
Original file line number Diff line number Diff line change
@@ -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 changes: 3 additions & 0 deletions deploy_excludes.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.well-known
.git
config.php

0 comments on commit fe2b037

Please sign in to comment.