Merge pull request #1092 from someones/heroku-clean

Add Heroku support
This commit is contained in:
Arik Fraimovich
2016-06-06 09:24:27 +03:00
13 changed files with 72 additions and 22 deletions

3
.bowerrc Normal file
View File

@@ -0,0 +1,3 @@
{
"directory": "rd_ui/app/bower_components"
}

5
.gitignore vendored
View File

@@ -22,3 +22,8 @@ dump.rdb
# Docker related
docker-compose.yml
node_modules
.tmp
.sass-cache
rd_ui/app/bower_components

View File

@@ -6,17 +6,17 @@ BASE_VERSION=$(shell python ./manage.py version | cut -d + -f 1)
FILENAME=$(CIRCLE_ARTIFACTS)/$(NAME).$(VERSION).tar.gz
deps:
if [ -d "./rd_ui/app" ]; then cd rd_ui && npm install; fi
if [ -d "./rd_ui/app" ]; then cd rd_ui && npm run bower install; fi
if [ -d "./rd_ui/app" ]; then cd rd_ui && npm run build; fi
if [ -d "./rd_ui/app" ]; then npm install; fi
if [ -d "./rd_ui/app" ]; then npm run bower install; fi
if [ -d "./rd_ui/app" ]; then npm run build; fi
pack:
sed -ri "s/^__version__ = '([0-9.]*)'/__version__ = '$(FULL_VERSION)'/" redash/__init__.py
tar -zcv -f $(FILENAME) --exclude="optipng*" --exclude=".git*" --exclude="*.pyc" --exclude="*.pyo" --exclude="venv" --exclude="rd_ui/node_modules" --exclude="rd_ui/dist/bower_components" --exclude="rd_ui/app" *
tar -zcv -f $(FILENAME) --exclude="optipng*" --exclude=".git*" --exclude="*.pyc" --exclude="*.pyo" --exclude="venv" --exclude="node_modules" --exclude="rd_ui/dist/bower_components" --exclude="rd_ui/app" *
upload:
python bin/release_manager.py $(CIRCLE_SHA1) $(BASE_VERSION) $(FILENAME)
test:
nosetests --with-coverage --cover-package=redash tests/
#cd rd_ui && grunt test
#grunt test

2
Procfile.heroku Normal file
View File

@@ -0,0 +1,2 @@
web: ./manage.py runserver -p $PORT --host 0.0.0.0
worker: celery worker --app=redash.worker --beat -Q queries,celery,scheduled_queries

17
bin/pre_compile Normal file
View File

@@ -0,0 +1,17 @@
#!/usr/bin/env bash
# heroku pre_compile script
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
pushd $DIR/..
# heroku requires cffi to be in requirements.txt in order for libffi to be installed.
# https://github.com/heroku/heroku-buildpack-python/blob/master/bin/steps/cryptography
# to avoid making it a requirement for other build systems, we'll inject it now
# into the requirements.txt file
# remove pymssql, it doesn't compile on heroku
grep -v '^pymssql' requirements_all_ds.txt >> requirements.txt
# make the heroku Procfile the active one
cp Procfile.heroku Procfile
popd

View File

@@ -79,6 +79,42 @@ Docker Compose
Now proceed to `"Setup" <#setup>`__.
Heroku
------
Due to the nature of Heroku deployments, upgrading to a newer version of Redash
requires performing the steps outlined on the `"How to Upgrade"<http://docs.redash.io/en/latest/upgrade.html>`__ page.
1. Install `Heroku CLI<https://toolbelt.heroku.com/>`__.
2. Create Heroku App::
$ heroku apps:create <app name>
2. Set application buildpacks::
$ heroku buildpacks:set heroku/python
$ heroku buildpacks:add --index 1 heroku/nodejs
3. Add Postgres and Redis addons::
$ heroku addons:create heroku-postgresql:hobby-dev
$ heroku addons:create heroku-redis:hobby-dev
4. Update the cookie secret (**Important** otherwise anyone can sign new cookies and impersonate users. You may be able to run the command ``pwgen 32 -1`` to generate a random string)::
$ heroku config:set REDASH_COOKIE_SECRET='<create a secret token and put here>'
5. Push the repository to Heroku::
$ git push heroku master
6. Create database tables::
$ heroku run bash
$ python manage.py database create_tables
Other
-----

View File

@@ -9,8 +9,8 @@ var wiredep = require('wiredep').stream;
var runSequence = require('run-sequence');
var yeoman = {
app: 'app',
dist: 'dist'
app: 'rd_ui/app',
dist: 'rd_ui/dist'
};
var paths = {

View File

@@ -34,7 +34,8 @@
"scripts": {
"test": "echo 'No tests.'",
"build": "gulp build",
"bower": "bower"
"bower": "bower",
"heroku-postbuild": "npm install --dev && npm run bower install && npm run build && npm prune --production"
},
"dependencies": {
}

View File

@@ -1,3 +0,0 @@
{
"directory": "app/bower_components"
}

View File

@@ -1 +0,0 @@
* text=auto

4
rd_ui/.gitignore vendored
View File

@@ -1,4 +0,0 @@
node_modules
.tmp
.sass-cache
app/bower_components

View File

@@ -1,6 +0,0 @@
language: node_js
node_js:
- '0.10'
before_script:
- 'npm install -g bower grunt-cli'
- 'bower install'