Skip to content

Commit 4469d05

Browse files
author
Fabian Martinez
committed
improve README.md and examples
1 parent b23602b commit 4469d05

File tree

10 files changed

+73
-35
lines changed

10 files changed

+73
-35
lines changed

README.md

+46-15
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,69 @@
1-
## Appctl
1+
# Appctl
2+
23
### Unified developer experience across all your projects
34

4-
Do you write your own build scripts or do you prefer to use `make`? Are you too lazy to write your own Makefiles? do you even know what `make` is? Do you suffer of having several projects written with different technologies and you always struggle to remember how to build/test/package each one?
5+
Are you too lazy to write your own build scripts or your own Makefiles? Do you even know what `make` is? Do you suffer from having several projects written with different technologies and you always struggle to remember how to build/test/package each one?
6+
7+
This project aims to provide a simple and unified development experice across all your projects
58

6-
No worries `appctl` knows well about `make` and Makefiles and leverages it for you so you
7-
have the simplest build chain accross all your projects, works for Java, Go,.. no matter what is the underline technology, it's actually indiferent to `appctl`. You just specify what kind of app you are working with and `appctl` manages it for you so you don't have to remember the exact commands to build each one of your projects.
9+
## What does `appctl` do?
810

9-
You could just write Makefiles following your own guidelines in all your projects and you would already have a unified developer experience. But because you are too lazy and you won't do that here is `appctl` to do that for you.
11+
Appctl executes your most common workflows in your development process through a simple and unified CLI across all your projects
1012

11-
I hope you like it
13+
Actually this tool does nothing, your typical build tools do the job. You will use npm for nodejs apps, maven for java, docker for container images, ... Whatever tool, but `appctl` will invoke them for you.
14+
You may even forget about all of that but only remember to execute `appctl build`
1215

13-
### Usage
16+
## Try it
1417

15-
First install the binary
18+
To install from source, only pre-requisite is golang >= 1.13
1619
```
1720
make install
1821
```
1922

20-
Then you can use it :)
21-
22-
Examples:
23-
23+
Or just download and install it with the `install.sh` script
2424
```
25-
appctl build examples/simple-app/
25+
curl -sfL https://raw.githubusercontent.com/famartinrh/appctl/master/install.sh | sh -
2626
```
2727

28-
or
28+
There are some examples of applications using `appctl` under the folder `examples`
2929

30+
#### Build, test and create a container image of Quarkus app (Java)
3031

3132
```
3233
cd examples/simple-app
3334
35+
appctl status
36+
37+
appctl build
38+
39+
docker images | grep simple-app
40+
41+
cat app.yaml
42+
```
43+
44+
#### Microservices application using nodejs
45+
46+
```
47+
cd examples/microservices-example
48+
49+
appctl status
50+
3451
appctl build
52+
53+
docker images | grep appctl-
54+
55+
cat app.yaml
56+
57+
cat api-gateway/app.yaml
3558
```
3659

37-
https://www.gnu.org/software/make/manual/make.html
60+
<!-- ## How does it work? -->
61+
62+
63+
64+
<!-- https://www.gnu.org/software/make/manual/make.html -->
65+
66+
67+
68+
3869

appctl

4 KB
Binary file not shown.

cmd/root.go

+1
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ func initializeConfig(cmd *cobra.Command) error {
104104
if err != nil {
105105
return err
106106
}
107+
os.MkdirAll(filepath.Dir(appctlConfigFilePath), os.ModePerm)
107108
err = ioutil.WriteFile(appctlConfigFilePath, bytes, 0664)
108109
if err != nil {
109110
return err

examples/example-app.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ metadata:
55
annotations:
66
description: Simple app using Quarkus Java framework
77
author: the appctl authors
8-
organization: famargon
8+
organization: my-org
99
spec:
1010
# all recipes from one template
1111
template: quarkus-jvm

examples/microservices-example/api-gateway/app.yaml

+5-2
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@ apiVersion: appctl.io/v1
33
metadata:
44
name: api-gateway
55
annotations:
6-
author: Fabian Martinez
6+
author: appct-examples-author
77
description: api-gateway description
8-
organization: famargon
8+
organization: my-org
99
spec:
1010
templates:
1111
- nodejs
1212
- docker
13+
vars:
14+
- name: CONTAINER_IMAGE_NAME
15+
value: appctl-api-gateway:latest

examples/microservices-example/app.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ apiVersion: appctl.io/v1
33
metadata:
44
name: microservices-example
55
annotations:
6-
author: Fabian Martinez
6+
author: appct-examples-author
77
description: microservices-example description
8-
organization: famargon
8+
organization: my-org
99
spec:
1010
recipes:
1111
build:
@@ -14,7 +14,7 @@ spec:
1414
recipes:
1515
- nodejs/build
1616
- docker/build
17-
- push
17+
# - push # uncomment to run docker push on all projects
1818
apps:
1919
- api-gateway
2020
- fruits-service

examples/microservices-example/fruits-service/app.yaml

+5-2
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@ apiVersion: appctl.io/v1
33
metadata:
44
name: fruits-service
55
annotations:
6-
author: Fabian Martinez
6+
author: appct-examples-author
77
description: fruits-service description
8-
organization: famargon
8+
organization: my-org
99
spec:
1010
templates:
1111
- nodejs
1212
- docker
13+
vars:
14+
- name: CONTAINER_IMAGE_NAME
15+
value: appctl-fruits-service:latest

examples/microservices-example/users-service/app.yaml

+5-2
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,16 @@ apiVersion: appctl.io/v1
33
metadata:
44
name: users-service
55
annotations:
6-
author: Fabian Martinez
6+
author: appct-examples-author
77
description: users-service description
8-
organization: famargon
8+
organization: my-org
99
spec:
1010
templates:
1111
- nodejs
1212
- docker
13+
vars:
14+
- name: CONTAINER_IMAGE_NAME
15+
value: appctl-users-service:latest
1316
recipes:
1417
all:
1518
- name: nodejs

examples/simple-app/app.yaml

+6-9
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,19 @@ metadata:
55
annotations:
66
author: simple-app author
77
description: simple-app description
8-
organization: famargon
8+
organization: simple-app-org
99
spec:
1010
template: quarkus-jvm
1111
vars:
12-
- name: CONTAINER_IMAGE_TAG
13-
value: latest
12+
- name: CONTAINER_IMAGE_NAME
13+
value: simple-app:latest
1414
recipes:
1515
overload:
1616
- template: quarkus-jvm
1717
recipe: build
1818
vars:
19-
- name: CONTAINER_IMAGE_TAG
20-
value: appctl-test
19+
- name: CONTAINER_IMAGE_NAME
20+
value: simple-app-appctl-test:latest
2121
push:
2222
- template: docker
23-
recipe: push
24-
vars:
25-
- name: CONTAINER_IMAGE_TAG
26-
value: appctl-test
23+
recipe: push

examples/simple-app/container-image

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
quay.io/famargon/simple-app:appctl-test
1+
simple-app:latest

0 commit comments

Comments
 (0)