Skip to content

mwei2509/strapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

strapp cli

I built this CLI to automate some of my everyday tasks (e.g. creating new github tags, creating lambda sandbox, creating a new project). Maybe you'll find it helpful too.

Usage

Repo Commands

Create + push new tag

strapp repo:create-next-tag -i major -m "some message here"

This command autogenerates the next semver tag for the github repo you're in. Run this command within a git repo directory.

flags:

  • --increment, -i defaults to minor
  • --message, -m defaults to "auto generated by strapp"

Example:

$ strapp repo:create-next-tag
 [[ STRAPP ]]  [repo]  git tag -a v1.7.0 -m "auto generated by strapp"
 [[ STRAPP ]]  [repo]  v1.7.0 tag created
 [[ STRAPP ]]  [repo]  git push origin v1.7.0
 [[ STRAPP ]]  [repo]  v1.7.0 tag pushed
 [[ STRAPP ]]  [cmd]  Success!

AWS Commands

Build lambda sandbox

strapp aws:lambda-build-sandbox -p 8080

This commands builds and starts the lambda (with a Dockerfile) when run in the directory of the lambda.

flags:

  • --port, -p defaults to 8080

WIP: Boot(strapp)ing apps

  • wip - still in concept / experiment stage*

Strapp is a command line interface that scaffolds your application from source code structure to deployments, taking care of containerizations, datastores, continuous integration and everything in between.

The simplest way to set up an application: strapp app:create my-new-app --type api --framework koa --db postgres

Or initialize a directory with a .strapprc file that looks like this:

name: my-app
type: hello-world

# simplest single app
services:
  - name: my-api
    type: api
    language: typescript
    framework: koa
    orm: sequelize
    port: 3000
    debuggerPort: 5858
    datastores:
      - my-db
  - name: my-web
    type: frontend
    language: typescript
    framework: react
    css: tailwind
    port: 8080
    state_management: redux

datastores:
  my-db:
    type: postgresql-db
    port: 5432

cicd: circleci

Strapp will create the app directory and everything needed to set up a simple Hello, World application with a github repo, REST endpoints, an initial migration, Docker, and CICD

To bring up your app locally: docker compose up

Installation

brew install mwei2509/taps/strapp

Development

Local

Clone this repository to $GOPATH/github.com/src/mwei2509/strapp Run: go run main.go <args>

Deploy

New package is deployed via tag push

git tag -a <tag> -m "<message>"
git push origin <tag>

Use v<major>.<minor> for versioning. CircleCI creates the binary and updates the homebrew repo.