|
1 | 1 | # Cavorite
|
2 | 2 |
|
3 |
| -<img src="images/cavorite_logo.png" alt="drawing" width="80" background-color="transparent" align="left"/> A cli tool that makes it easy to track large, binary files in source control repositories by making them "lighter weight" and making binaries less of a burden. Cavorite is compatible with _any_ SCM system. |
| 3 | +<img src="images/cavorite_logo.png" alt="drawing" width="80" background-color="transparent" align="left"/> A cli tool that makes it easy to track large, binary files in source control repositories by swapping the binary files with json metadata. Cavorite is compatible with _any_ SCM system because the binaries are tracked by json metadata files. |
4 | 4 |
|
5 | 5 | <br/>
|
6 | 6 |
|
7 | 7 | ## **Disclaimer**
|
8 | 8 |
|
9 |
| -This is not production ready nor feature complete. See [Issues](https://github.com/discentem/cavorite/issues) for upcoming features. |
| 9 | +This is not production ready nor feature complete. See [Issues](https://github.com/discentem/cavorite/issues) for future features. |
10 | 10 |
|
11 |
| -Inspired by https://github.com/facebook/IT-CPE/tree/main/pantri, this is a re-write in Go with support for s3, Minio, Google Cloud Storage, and other storage systems through plugins. See [stores](stores) for information about implementing new storage drivers. |
| 11 | +Inspired by https://github.com/facebook/IT-CPE/tree/main/pantri, Cavorite is a re-write in Go with support for s3, Minio, Google Cloud Storage, and other storage systems through plugins. See [stores](stores) for information about implementing new storage drivers. |
12 | 12 |
|
13 |
| -## Development |
14 |
| - |
15 |
| -### Prerequisites |
16 |
| - |
17 |
| -Install [bazelisk](https://github.com/bazelbuild/bazelisk) |
18 |
| - |
19 |
| -### How to build |
20 |
| - |
21 |
| -#### with Bazel |
22 |
| - |
23 |
| -`make` |
24 |
| - |
25 |
| -#### with go build |
26 |
| - |
27 |
| -`make go_build` |
28 |
| - |
29 |
| -### Linting |
30 |
| - |
31 |
| -`make lint` |
32 |
| - |
33 |
| -### Unit Tests |
34 |
| - |
35 |
| -`make test` |
36 |
| - |
37 |
| -## End-to-end testing workflow |
| 13 | +## Using Cavorite |
38 | 14 |
|
39 |
| -### Minio (S3) |
| 15 | +### Minio (S3) backend |
40 | 16 |
|
41 | 17 | > These steps for Minio are also performed automatically by our integration test on each pull request and push: [.github/workflows/integration-test.yaml](.github/workflows/integration-test.yaml)
|
42 | 18 |
|
@@ -73,7 +49,7 @@ Install [bazelisk](https://github.com/bazelbuild/bazelisk)
|
73 | 49 | $ export AWS_SECRET_ACCESS_KEY=minioadmin
|
74 | 50 | ```
|
75 | 51 |
|
76 |
| -1. Initialize cavorite. This assumes default Minio credentials. **You should change these credentials for a production deployment**. |
| 52 | +1. Initialize cavorite. |
77 | 53 |
|
78 | 54 | ```shell
|
79 | 55 | $ $cavorite_BIN init ~/some_git_project --backend_address http://127.0.0.1:9000/test --store_type=s3 --region="us-east-1"
|
@@ -136,7 +112,7 @@ Install [bazelisk](https://github.com/bazelbuild/bazelisk)
|
136 | 112 | 2022/10/18 21:57:53 Retrieving [~/some_git_project/googlechromebeta.dmg]
|
137 | 113 | ```
|
138 | 114 |
|
139 |
| -### Testing a plugin-based backend (experimental) |
| 115 | +### Plugin backend (arbitrary storage backends at runtime!) |
140 | 116 |
|
141 | 117 | > This is not yet tested automatically in Github Actions.
|
142 | 118 |
|
@@ -220,3 +196,27 @@ Install [bazelisk](https://github.com/bazelbuild/bazelisk)
|
220 | 196 | ```
|
221 | 197 |
|
222 | 198 | 1. `$CAVORITE_BIN retrieve blob.txt.cfile`
|
| 199 | + |
| 200 | +## Development |
| 201 | + |
| 202 | +### Prerequisites |
| 203 | + |
| 204 | +Install [bazelisk](https://github.com/bazelbuild/bazelisk) |
| 205 | + |
| 206 | +### How to build |
| 207 | + |
| 208 | +#### with Bazel |
| 209 | + |
| 210 | +`make` |
| 211 | + |
| 212 | +#### with go build |
| 213 | + |
| 214 | +`make go_build` |
| 215 | + |
| 216 | +### Linting |
| 217 | + |
| 218 | +`make lint` |
| 219 | + |
| 220 | +### Unit Tests |
| 221 | + |
| 222 | +`make test` |
0 commit comments