Skip to content

Commit 7797afb

Browse files
committed
docs: update README
1 parent deccaf3 commit 7797afb

File tree

1 file changed

+36
-50
lines changed

1 file changed

+36
-50
lines changed

README.md

Lines changed: 36 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,29 @@
1+
⬆️ For table of contents, click the above icon
2+
13
![](misc/mascot/mascot.png)
24

35
![Build status](https://github.com/function61/turbobob/workflows/Build/badge.svg)
46
[![Download](https://img.shields.io/github/downloads/function61/turbobob/total.svg?style=for-the-badge)](https://github.com/function61/turbobob/releases)
57

68
Modern, minimal container-based build/development tool to make any project´s dev easy and
7-
frictionless. Note: while Bob uses containers for builds (and dev), your programs don't need
8-
to use containers!
9+
frictionless.
10+
11+
Note: while Bob uses containers for builds (and dev), your programs themselves don't need to use containers!
912

1013
![](docs/demo-screencast.gif)
1114

12-
Contents:
13-
14-
- [What is this?](#what-is-this)
15-
- Documentation (as separate documents)
16-
* [Using Bob in your project](docs/using-bob-in-your-project/README.md) (also covers
17-
making your own builder images - "buildkits")
18-
* [ENV vars passed to build containers](docs/env-vars-passed-to-build-containers/README.md)
19-
* [Displaying pro-tips on entering the dev environment](docs/dev-pro-tips/README.md) (also covers mapping network ports)
20-
* [Development-time HTTP ingresses](docs/development-time-http-ingresses/README.md) (routing HTTP requests)
21-
* [Customizing dev container startup](docs/customizing-dev-container-startup/README.md)
22-
* [Language server support](docs/language-server-support/README.md) (code completion, analysis, refactoring support etc. for code editors)
23-
* [Quality helpers](docs/quality-helpers/README.md) (multi-project quality scalability by automatically checking standards-compliance like having README, LICENSE, security policy etc.)
24-
- [Philosophy](#philosophy)
25-
- [Install](#install)
26-
* [Linux](#linux)
27-
* [Windows](#windows)
28-
* [Mac](#mac)
29-
- [Supported build/CI platforms](#supported-build-ci-platforms)
30-
* [Your own computer](#your-own-computer)
31-
* [GitHub actions](#github-actions)
32-
* [Travis CI](#travis-ci)
33-
* [GitLab](#gitlab)
34-
* [Other CI systems](#other-ci-systems)
35-
- [Examples / how does it work?](#examples--how-does-it-work)
36-
* [Examples](#examples)
37-
* [How does turbobob.json work?](#how-does-turbobobjson-work)
38-
* [Why multiple buildkits?](#why-multiple-buildkits)
39-
- [Alternative software](#alternative-software)
15+
16+
Additional documentation
17+
------------------------
18+
19+
- [Using Bob in your project](docs/using-bob-in-your-project/README.md) (also covers
20+
making your own builder images - "buildkits")
21+
- [ENV vars passed to build containers](docs/env-vars-passed-to-build-containers/README.md)
22+
- [Displaying pro-tips on entering the dev environment](docs/dev-pro-tips/README.md) (also covers mapping network ports)
23+
- [Development-time HTTP ingresses](docs/development-time-http-ingresses/README.md) (routing HTTP requests)
24+
- [Customizing dev container startup](docs/customizing-dev-container-startup/README.md)
25+
- [Language server support](docs/language-server-support/README.md) (code completion, analysis, refactoring support etc. for code editors)
26+
- [Quality helpers](docs/quality-helpers/README.md) (multi-project quality scalability by automatically checking standards-compliance like having README, LICENSE, security policy etc.)
4027

4128

4229
What is this?
@@ -89,8 +76,8 @@ Philosophy
8976
build & CI environment. What's built on dev (`$ bob build`) is exactly the same or as
9077
close as possible (`$ bob build --uncommitted`) as to what will end up running in production.
9178

92-
- No vendor lock-in for a CI system. Bob can seamlessly build projects on your laptop, Jenkins,
93-
Travis, GitLab etc. CI needs to only provide the working directory and Docker - everything
79+
- No vendor lock-in for a CI system. Bob can seamlessly build projects on your laptop, GitHub actions,
80+
Jenkins, GitLab etc. CI needs to only provide the working directory and Docker - everything
9481
else like uploading artefacts to S3, Bintray etc. should be a build container concern to
9582
provide full independence.
9683

@@ -104,7 +91,7 @@ Requires Docker for use, so currently only Linux is supported. Native Windows su
10491
come later as Windows' Linux subsystem keeps maturing.
10592

10693
```console
107-
$ sudo curl --location --fail --output /usr/local/bin/bob https://function61.com/go/turbobob-latest-linux-amd64 && sudo chmod +x /usr/local/bin/bob
94+
$ sudo curl --location --fail --output /usr/bin/bob https://function61.com/go/turbobob-latest-stable-linux-amd64 && sudo chmod +x /usr/bin/bob
10895
```
10996

11097
### Windows
@@ -132,7 +119,7 @@ Basic approach anywhere:
132119

133120
1. Have Docker installed
134121
2. If you don't have Turbo Bob installed, download it
135-
3. Run `$ bob build`
122+
3. Run `$ bob build` (i.e. hand off build to it)
136123

137124

138125
### Your own computer
@@ -142,9 +129,7 @@ If your system can run Docker locally, you can build projects on your own comput
142129

143130
### GitHub actions
144131

145-
See [example actions workflow file](https://github.com/function61/buildkit-publisher/commit/62f1b71ed6a17489394ccd431763ee36c958fb92).
146-
That commit also demonstrates how portable Bob is by moving from Travis CI -> GitHub
147-
actions - how it's just from small boilerplate to small boilerplate.
132+
See [example actions workflow file](.github/workflows/build.yml).
148133

149134
GitHub actions' design is pretty similar to Turbo Bob's design ("run stuff inside containers").
150135
I started this project before actions was announced, so unfortunately there's currently no
@@ -159,13 +144,16 @@ I've built projects on GitLab's public runners with Bob. See
159144
[example configuration](https://github.com/function61/turbobob/blob/8156ab2bc400181cb74b8ea324fa98a3fb9e82d2/cmd/bob/init.go#L56).
160145

161146

162-
### Other CI systems
147+
### Other CI systems, vendor lock-in
148+
149+
Bob's approach is pretty generic (as documented under the above larger heading).
163150

164-
Bob's approach is pretty generic. You can see from Travis or GitLab configuration files
165-
that they just download Bob's binary first and hand off build to it.
151+
Here's a commit demonstrating how portable Bob is by
152+
[moving from Travis CI -> GitHub actions](https://github.com/function61/buildkit-publisher/commit/62f1b71ed6a17489394ccd431763ee36c958fb92) -
153+
how it's just from small boilerplate to small boilerplate. This prevents vendor lock-in.
154+
(NOTE: GitHub actions boilerplate has since been [updated](.github/workflows/build.yml)).
166155

167-
Bob internally pretty much just calls `$ docker` commands, so you should be able to port
168-
Bob anywhere where you've got Docker. If you've done so, please add details here to help others.
156+
If you've added support to other public CI systems, please add links to here for instructions!
169157

170158

171159
Examples / how does it work?
@@ -198,23 +186,21 @@ container images ("buildkits") for builds:
198186
The process is exactly the same whether you use a different CI system. You can even run
199187
builds exactly the same way on your laptop by just running `$ bob build`.
200188

201-
This very project is built with Bob on Travis. Its [Travis configuration](.travis.yml) is
189+
This very project is built with Bob on GitHub actions. The [workflow configuration](.github/workflows/build.yml) is
202190
minimal. Here's what happens when a new commit lands in this repo:
203191

204-
- GitHub notifies Travis of a new commit
205-
- Travis clones repo, reads [.travis.yml](.travis.yml) which:
206-
* Requires Docker
192+
- GitHub actions start processing the build workflow file which:
207193
* Downloads Turbo Bob
208-
* Copies `TRAVIS_COMMIT` ENV variable to `CI_REVISION_ID`
209194
* Hands off build process to Bob
210195
- Bob reads [turbobob.json](turbobob.json), which instructs to:
211196
* Run container off of image `fn61/buildkit-golang`
212197
([repo](https://github.com/function61/buildkit-golang)) and run
213-
[bin/build.sh](bin/build.sh) inside it.
198+
[build-go-project.sh](https://github.com/function61/buildkit-golang/blob/a687e81c0c7e4ca76e759d2f521a696732d2d98e/build-go-project.sh)
199+
(defined by the buildkit) inside it. We could of course store the build script in our own repo,
200+
but it's advantageous to have it defined by the buildkit, so improvements can "automatically" ship to multiple projects.
214201
* For publishing step, run container off of image `fn61/buildkit-publisher`
215202
([repo](https://github.com/function61/buildkit-publisher)) and run `publish.sh rel/`
216-
inside it (that shell script is from the image itself, while the build container's
217-
`build.sh` was from our repo)
203+
inside it (again defined by the buildkit)
218204

219205

220206
### Why multiple buildkits?

0 commit comments

Comments
 (0)