mirror of
https://github.com/bigchaindb/site.git
synced 2024-11-22 09:46:57 +01:00
Travis setup (#72)
* change beta deployment behavior: on every pull request instead of named branch * consolidate gulp deploy tasks into one * push 100 objects in parallel to S3 * make CI scripts a bit more verbose
This commit is contained in:
parent
5947326c3f
commit
72fff1dbca
28
.travis.yml
Normal file
28
.travis.yml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
sudo: required
|
||||||
|
dist: trusty
|
||||||
|
|
||||||
|
language: ruby
|
||||||
|
rvm:
|
||||||
|
- 2.3.0
|
||||||
|
|
||||||
|
cache:
|
||||||
|
bundler: true
|
||||||
|
directories:
|
||||||
|
- $TRAVIS_BUILD_DIR/node_modules
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
- nvm install 6
|
||||||
|
|
||||||
|
before_script: "_ci/setup.sh"
|
||||||
|
script: "_ci/build.sh"
|
||||||
|
after_success: "_ci/deploy.sh"
|
||||||
|
|
||||||
|
# deploy:
|
||||||
|
# skip_cleanup: true
|
||||||
|
# provider: script
|
||||||
|
# script: "_ci/deploy.sh"
|
||||||
|
# on:
|
||||||
|
# all_branches: true
|
||||||
|
|
||||||
|
notifications:
|
||||||
|
email: false
|
10
README.md
10
README.md
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
> Landing page for BigchainDB
|
> Landing page for BigchainDB
|
||||||
|
|
||||||
[ ![Codeship Status for ascribe/bigchain-website](https://codeship.com/projects/3204bb70-c384-0133-9cd7-5a80e4317151/status?branch=master)](https://codeship.com/projects/138094)
|
[![Build Status](https://travis-ci.com/ascribe/bigchain-website.svg?token=3psqw6c8KMDqfdGQ2x6d&branch=master)](https://travis-ci.com/ascribe/bigchain-website)
|
||||||
|
|
||||||
[Live](https://www.bigchaindb.com) | [Beta](https://beta.bigchaindb.com) | [Styleguide](https://www.bigchaindb.com/styleguide/)
|
[Live](https://www.bigchaindb.com) | [Beta](https://beta.bigchaindb.com) | [Styleguide](https://www.bigchaindb.com/styleguide/)
|
||||||
|
|
||||||
@ -32,11 +32,11 @@ gulp
|
|||||||
|
|
||||||
## Continuous Delivery
|
## Continuous Delivery
|
||||||
|
|
||||||
The site gets built & deployed automatically via Codeship under the following conditions:
|
The site gets built & deployed automatically via Travis under the following conditions:
|
||||||
|
|
||||||
- every push builds the site
|
- every push builds the site
|
||||||
- every push to the master branch initiates a live deployment
|
- every push to the master branch initiates a live deployment
|
||||||
- every push to a branch starting with `feature` initiates a beta deployment
|
- every pull request initiates a beta deployment
|
||||||
|
|
||||||
## Manual Deployment
|
## Manual Deployment
|
||||||
|
|
||||||
@ -72,7 +72,7 @@ npm update && bundle update
|
|||||||
gulp build --production
|
gulp build --production
|
||||||
|
|
||||||
# deploy contents of /_dist to beta
|
# deploy contents of /_dist to beta
|
||||||
gulp deploy:beta
|
gulp deploy --beta
|
||||||
```
|
```
|
||||||
|
|
||||||
### Production build & live deployment
|
### Production build & live deployment
|
||||||
@ -85,5 +85,5 @@ npm update && bundle update
|
|||||||
gulp build --production
|
gulp build --production
|
||||||
|
|
||||||
# deploy contents of /_dist to live
|
# deploy contents of /_dist to live
|
||||||
gulp deploy:live
|
gulp deploy --live
|
||||||
```
|
```
|
||||||
|
14
_ci/build.sh
14
_ci/build.sh
@ -2,6 +2,16 @@
|
|||||||
|
|
||||||
set -e;
|
set -e;
|
||||||
|
|
||||||
gulp build --production
|
echo "$(tput setaf 136)"
|
||||||
|
echo "============================================="
|
||||||
|
echo " Starting build "
|
||||||
|
echo "============================================="
|
||||||
|
echo "$(tput sgr0)" # reset
|
||||||
|
|
||||||
exit;
|
gulp build --production
|
||||||
|
|
||||||
|
echo "$(tput setaf 64)" # green
|
||||||
|
echo "---------------------------------------------"
|
||||||
|
echo " ✓ done building"
|
||||||
|
echo "---------------------------------------------"
|
||||||
|
echo "$(tput sgr0)" # reset
|
||||||
|
@ -2,10 +2,35 @@
|
|||||||
|
|
||||||
set -e;
|
set -e;
|
||||||
|
|
||||||
if [ $CI_BRANCH == "master" ]; then
|
##
|
||||||
gulp deploy:live
|
## check for pull request against master
|
||||||
|
##
|
||||||
|
if [ "$TRAVIS_PULL_REQUEST" != "false" ] && [ "$TRAVIS_BRANCH" == "master" ]; then
|
||||||
|
|
||||||
|
gulp deploy --beta;
|
||||||
|
|
||||||
|
|
||||||
|
##
|
||||||
|
## check for master push which is no pull request
|
||||||
|
##
|
||||||
|
elif [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
|
||||||
|
|
||||||
|
gulp deploy --live;
|
||||||
|
|
||||||
else
|
else
|
||||||
gulp deploy:beta
|
|
||||||
|
echo "$(tput setaf 64)" # green
|
||||||
|
echo "---------------------------------------------"
|
||||||
|
echo " ✓ nothing to deploy "
|
||||||
|
echo "---------------------------------------------"
|
||||||
|
echo "$(tput sgr0)" # reset
|
||||||
|
|
||||||
fi;
|
fi;
|
||||||
|
|
||||||
|
echo "$(tput setaf 64)" # green
|
||||||
|
echo "---------------------------------------------"
|
||||||
|
echo " ✓ done deployment "
|
||||||
|
echo "---------------------------------------------"
|
||||||
|
echo "$(tput sgr0)" # reset
|
||||||
|
|
||||||
exit;
|
exit;
|
||||||
|
14
_ci/setup.sh
14
_ci/setup.sh
@ -2,8 +2,18 @@
|
|||||||
|
|
||||||
set -e;
|
set -e;
|
||||||
|
|
||||||
|
echo "$(tput setaf 136)"
|
||||||
|
echo " Installing dependencies "
|
||||||
|
echo "============================================="
|
||||||
|
echo "$(tput sgr0)" # reset
|
||||||
|
|
||||||
npm install gulp -g
|
npm install gulp -g
|
||||||
npm install
|
npm install
|
||||||
bundle install
|
|
||||||
|
|
||||||
exit;
|
# Travis does that automatically after selecting ruby
|
||||||
|
#bundle install
|
||||||
|
|
||||||
|
echo "$(tput setaf 64)" # green
|
||||||
|
echo "---------------------------------------------"
|
||||||
|
echo " ✓ done installing dependencies"
|
||||||
|
echo "$(tput sgr0)" # reset
|
||||||
|
105
gulpfile.js
105
gulpfile.js
@ -319,18 +319,38 @@ gulp.task('build', function(done) {
|
|||||||
// Deployment
|
// Deployment
|
||||||
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
gulp.task('deploy:live', function() {
|
//
|
||||||
|
// gulp deploy --live
|
||||||
|
// gulp deploy --beta
|
||||||
|
//
|
||||||
|
gulp.task('deploy', function() {
|
||||||
|
|
||||||
// create publisher, define config
|
// create publisher, define config
|
||||||
|
if ($.util.env.live === true) {
|
||||||
var publisher = $.awspublish.create({
|
var publisher = $.awspublish.create({
|
||||||
params: {
|
params: { "Bucket": S3BUCKET },
|
||||||
'Bucket': S3BUCKET
|
"accessKeyId": process.env.AWS_ACCESS_KEY,
|
||||||
},
|
"secretAccessKey": process.env.AWS_SECRET_KEY,
|
||||||
'accessKeyId': process.env.AWS_ACCESS_KEY,
|
"region": S3REGION
|
||||||
'secretAccessKey': process.env.AWS_SECRET_KEY,
|
|
||||||
'region': S3REGION
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$.util.log($.util.colors.gray(" ------------------------------------------"));
|
||||||
|
$.util.log($.util.colors.green(' Deploying to Live... '));
|
||||||
|
$.util.log($.util.colors.gray(" ------------------------------------------"));
|
||||||
|
}
|
||||||
|
if ($.util.env.beta === true) {
|
||||||
|
var publisher = $.awspublish.create({
|
||||||
|
params: { "Bucket": S3BUCKET_BETA },
|
||||||
|
"accessKeyId": process.env.AWS_BETA_ACCESS_KEY,
|
||||||
|
"secretAccessKey": process.env.AWS_BETA_SECRET_KEY,
|
||||||
|
"region": S3REGION_BETA
|
||||||
|
});
|
||||||
|
|
||||||
|
$.util.log($.util.colors.gray(" ------------------------------------------"));
|
||||||
|
$.util.log($.util.colors.green(' Deploying to Beta... '));
|
||||||
|
$.util.log($.util.colors.gray(" ------------------------------------------"));
|
||||||
|
}
|
||||||
|
|
||||||
return gulp.src(DIST + '**/*')
|
return gulp.src(DIST + '**/*')
|
||||||
.pipe($.awspublishRouter({
|
.pipe($.awspublishRouter({
|
||||||
cache: {
|
cache: {
|
||||||
@ -339,7 +359,7 @@ gulp.task('deploy:live', function() {
|
|||||||
},
|
},
|
||||||
routes: {
|
routes: {
|
||||||
// all static assets, cached & gzipped
|
// all static assets, cached & gzipped
|
||||||
'^assets/(?:.+)\\.(?:js|css|png|jpg|jpeg|gif|ico|svg|ttf|eot|woff|woff2)$': {
|
'^assets/(?:.+)\\.(?:js|css|png|jpg|jpeg|gif|ico|svg|ttf)$': {
|
||||||
cacheTime: 2592000, // cache for 1 month
|
cacheTime: 2592000, // cache for 1 month
|
||||||
gzip: true
|
gzip: true
|
||||||
},
|
},
|
||||||
@ -377,75 +397,8 @@ gulp.task('deploy:live', function() {
|
|||||||
"^.+$": "$&"
|
"^.+$": "$&"
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
.pipe(parallelize(publisher.publish(), 10))
|
.pipe(parallelize(publisher.publish(), 100))
|
||||||
.pipe(publisher.sync()) // delete files in bucket that are not in local folder
|
.pipe(publisher.sync()) // delete files in bucket that are not in local folder
|
||||||
.pipe(publisher.cache())
|
|
||||||
.pipe($.awspublish.reporter({
|
|
||||||
states: ['create', 'update', 'delete']
|
|
||||||
}));
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task('deploy:beta', function() {
|
|
||||||
|
|
||||||
// create publisher, define config
|
|
||||||
var publisher = $.awspublish.create({
|
|
||||||
params: {
|
|
||||||
'Bucket': S3BUCKET_BETA
|
|
||||||
},
|
|
||||||
'accessKeyId': process.env.AWS_ACCESS_KEY,
|
|
||||||
'secretAccessKey': process.env.AWS_SECRET_KEY,
|
|
||||||
'region': S3REGION_BETA
|
|
||||||
});
|
|
||||||
|
|
||||||
return gulp.src(DIST + '**/*')
|
|
||||||
.pipe($.awspublishRouter({
|
|
||||||
cache: {
|
|
||||||
// cache for 5 minutes by default
|
|
||||||
cacheTime: 300
|
|
||||||
},
|
|
||||||
routes: {
|
|
||||||
// all static assets, cached & gzipped
|
|
||||||
'^assets/(?:.+)\\.(?:js|css|png|jpg|jpeg|gif|ico|svg|ttf|eot|woff|woff2)$': {
|
|
||||||
cacheTime: 2592000, // cache for 1 month
|
|
||||||
gzip: true
|
|
||||||
},
|
|
||||||
|
|
||||||
// every other asset, cached
|
|
||||||
'^assets/.+$': {
|
|
||||||
cacheTime: 2592000 // cache for 1 month
|
|
||||||
},
|
|
||||||
|
|
||||||
// all html files, not cached & gzipped
|
|
||||||
'^.+\\.html': {
|
|
||||||
cacheTime: 0,
|
|
||||||
gzip: true
|
|
||||||
},
|
|
||||||
|
|
||||||
// font mime types
|
|
||||||
'\.eot$': {
|
|
||||||
key: '$&',
|
|
||||||
headers: { 'Content-Type': 'application/vnd.ms-fontobject' }
|
|
||||||
},
|
|
||||||
'\.ttf$': {
|
|
||||||
key: '$&',
|
|
||||||
headers: { 'Content-Type': 'application/x-font-ttf' }
|
|
||||||
},
|
|
||||||
'\.woff$': {
|
|
||||||
key: '$&',
|
|
||||||
headers: { 'Content-Type': 'application/x-font-woff' }
|
|
||||||
},
|
|
||||||
'\.woff2$': {
|
|
||||||
key: '$&',
|
|
||||||
headers: { 'Content-Type': 'application/x-font-woff2' }
|
|
||||||
},
|
|
||||||
|
|
||||||
// pass-through for anything that wasn't matched by routes above, to be uploaded with default options
|
|
||||||
"^.+$": "$&"
|
|
||||||
}
|
|
||||||
}))
|
|
||||||
.pipe(parallelize(publisher.publish(), 10))
|
|
||||||
.pipe(publisher.sync()) // delete files in bucket that are not in local folder
|
|
||||||
.pipe(publisher.cache())
|
|
||||||
.pipe($.awspublish.reporter({
|
.pipe($.awspublish.reporter({
|
||||||
states: ['create', 'update', 'delete']
|
states: ['create', 'update', 'delete']
|
||||||
}));
|
}));
|
||||||
|
Loading…
Reference in New Issue
Block a user