rva-cli

🛠 AWS S3 Review Apps Tools CLI

View on GitHub

RVA-CLI GitHub issues GitHub license npm npm Docker Pulls Codacy Badge

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:

  1. Run rva start (see below for what it does)
  2. 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:

  1. Create an S3 bucket
  2. Set the bucket policy
  3. 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