RVA-CLI
AWS S3 Review Apps Tools CLI
Installation
To install RVA-CLI, run the following:
$ npm i -g @filiosoft/rva-cli
Usage
Usage: rva [options] [command]
Example: rva start upgrade-to-angular-2
Commands:
start [name] start a S3 review app
stop [name] stop a S3 review app
init [baseName] initialize a project with S3 review apps
publish [baseName] initialize and upload a project with S3 review apps
help [cmd] display help for [cmd]
Options:
-h, --help output usage information
-V, --version output the version number
Configuration
Before using RVA, you need to create a rva.json
file in your root project folder and set two environment variables. You can do this by running the following.
$ rva init [your_base_review_app_name]
Publish Review App
To create an AWS S3 bucket for a static website review app on a git branch called upgrade-to-angular-2
and then publish the publicFolder
, run the following.
$ rva publish upgrade-to-angular-2
This will do the following steps:
- Run
rva start
(see below for what it does) - Upload your
publicFolder
You will then be able to browse to the following to view the review app: http://upgrade-to-angular-2.review.example.com.s3-website-us-east-1.amazonaws.com
Start Review App
If you are using rva publish
you do not need to start the review app
To create an AWS S3 bucket for a static website review app on a git branch called upgrade-to-angular-2
, run the following.
$ rva start upgrade-to-angular-2
This will do the following steps:
- Create an S3 bucket
- Set the bucket policy
- Enable static website hosting in the bucket
You will then be able to upload your website to the bucket!
Delete Review App
To delete the S3 review app you created above, run the following.
$ rva stop upgrade-to-angular-2
This will delete app files in the bucket and the bucket itself.
Example .gitlab-ci.yml
With RVA-CLI
stages:
- build
- deploy
variables:
BASE_DOMAIN: "review.example.com" # Should be the same as the configured base domain
build:
stage: build
tags:
- docker
image: node:8
script:
- npm build
artifacts:
paths:
- public
start_review:
stage: deploy
tags:
- docker
image: filiosoft/rva-cli:latest
dependencies:
- build
script:
- rva publish ${CI_ENVIRONMENT_SLUG}
environment:
name: review/${CI_BUILD_REF_NAME}
url: http://${CI_ENVIRONMENT_SLUG}.${BASE_DOMAIN}
artifacts:
paths:
- public
stop_review:
stage: deploy
tags:
- docker
image: filiosoft/rva-cli:latest
script:
- rva stop ${CI_ENVIRONMENT_SLUG}
when: manual
environment:
name: review/${CI_BUILD_REF_NAME}
action: stop