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.
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 tominor
--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!
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 to8080
- 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
brew install mwei2509/taps/strapp
Clone this repository to $GOPATH/github.com/src/mwei2509/strapp
Run: go run main.go <args>
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.