forked from toolshed/abra-bash
Compare commits
50 Commits
merge-logg
...
backup_res
Author | SHA1 | Date | |
---|---|---|---|
5d84cef63c | |||
eda5198904 | |||
a4a3dccd66 | |||
a2d249e3a1 | |||
dc83baea12 | |||
d6b4a4744f | |||
6ba2657dc1 | |||
ac6b805cbf | |||
d4e52a9de3 | |||
aa59c1ad43 | |||
36f1d679ae | |||
f5c8ee1136 | |||
9a17817cc8 | |||
b2e3292453 | |||
13fafb5929 | |||
114f99ae2e | |||
fff4b10a41 | |||
ab1353603d | |||
1600b6277f | |||
b79e35f982 | |||
703dbe0a0f | |||
7abb0191e1 | |||
886ae5b7f2 | |||
5411c85793 | |||
caa315e361 | |||
e6b24fe65c | |||
81782bb5f0 | |||
406b9e374e | |||
ce0e0e893c | |||
fac45f276e | |||
44d3ac3a1c | |||
5da9f26076 | |||
4e99cf1ded | |||
55324524ca | |||
b6928959cb | |||
8ddb290683 | |||
2cb1134a54 | |||
c4b1ac482e | |||
29cc392dff | |||
8839bd4595 | |||
0179f600f5 | |||
15f0233351 | |||
bbaacb7b9f | |||
6761574d74 | |||
8384af8b95 | |||
b9e97688d6 | |||
1055805c8d | |||
678906cb39 | |||
11c50ae98d | |||
e911ab246b |
10
.drone.yml
10
.drone.yml
@ -8,20 +8,18 @@ steps:
|
|||||||
- shellcheck abra
|
- shellcheck abra
|
||||||
|
|
||||||
- name: run unit tests
|
- name: run unit tests
|
||||||
image: docker:dind
|
image: decentral1se/docker-dind-bats-kcov
|
||||||
commands:
|
commands:
|
||||||
- apk add bats git bash
|
|
||||||
- bats tests
|
- bats tests
|
||||||
|
|
||||||
- name: collect code coverage
|
- name: collect code coverage
|
||||||
failure: ignore # until we fix this
|
failure: ignore # until we fix this
|
||||||
image: kcov/kcov:38
|
image: decentral1se/docker-dind-bats-kcov
|
||||||
commands:
|
commands:
|
||||||
- apt update && apt install -y bats git bash
|
|
||||||
- kcov . bats tests || true
|
- kcov . bats tests || true
|
||||||
|
|
||||||
- name: send code coverage report to codecov
|
- name: send code coverage report to codecov
|
||||||
failure: ignore # until we fix this
|
failure: ignore # until we fix this
|
||||||
image: plugins/codecov
|
image: plugins/codecov
|
||||||
settings:
|
settings:
|
||||||
token:
|
token:
|
||||||
|
20
CHANGELOG.md
20
CHANGELOG.md
@ -1,10 +1,26 @@
|
|||||||
# abra x.x.x (UNRELEASED)
|
# abra x.x.x (UNRELEASED)
|
||||||
|
|
||||||
|
- `secret auto` merged into `secret generate` and `app new --auto` is now `app new --secrets` ([#64](https://git.autonomic.zone/coop-cloud/abra/pulls/64))
|
||||||
|
- Avoid outputting length during secret generation when not in use ([#67](https://git.autonomic.zone/coop-cloud/abra/issues/67))
|
||||||
|
- Support graceful failure when missing secret generation commands ([44d3ac3](https://git.autonomic.zone/coop-cloud/abra/commit/44d3ac3a1cb86edc9b9e91eea1a00e70eae14965))
|
||||||
|
- Fix secret detection when using new `.env` file format in apps ([5532452](https://git.autonomic.zone/coop-cloud/abra/commit/55324524ca77141666ffe6cc41b62cc71cf89ace))
|
||||||
|
- Support choosing an `$EDITOR` when editing configs ([29cc392](https://git.autonomic.zone/coop-cloud/abra/commit/29cc392dff3e93e48e0e2edd3ce11b405c66a95a))
|
||||||
|
- "server" shell completion fixed ([8839bd4](https://git.autonomic.zone/coop-cloud/abra/commit/8839bd45951d00dccf4ef81ece445bcc49e13ee6))
|
||||||
- Drop `multilogs` command ([#56](https://git.autonomic.zone/coop-cloud/abra/pulls/56))
|
- Drop `multilogs` command ([#56](https://git.autonomic.zone/coop-cloud/abra/pulls/56))
|
||||||
- Remove `server use` command ([#51](https://git.autonomic.zone/coop-cloud/abra/issues/51))
|
- Remove `server use` command ([#51](https://git.autonomic.zone/coop-cloud/abra/issues/51))
|
||||||
- `new <app>` becomes `new <type>` ([#48](https://git.autonomic.zone/coop-cloud/abra/issues/48))
|
- `new <app>` becomes `new <type>` ([#48](https://git.autonomic.zone/coop-cloud/abra/issues/48))
|
||||||
- `check` is run on `deploy` now and configurable ([77ba5652b2fe15820f5edfa0f642636f7b8eae7e](https://git.autonomic.zone/coop-cloud/abra/commit/77ba5652b2fe15820f5edfa0f642636f7b8eae7e))
|
- `check` is run on `deploy` now and configurable ([77ba565](https://git.autonomic.zone/coop-cloud/abra/commit/77ba5652b2fe15820f5edfa0f642636f7b8eae7e))
|
||||||
- App configurations are always updated now ([#42](https://git.autonomic.zone/coop-cloud/abra/issues/42))
|
- App configurations are always updated now ([#42](https://git.autonomic.zone/coop-cloud/abra/issues/42))
|
||||||
|
- We use docker format `.env` files (no "export" syntax) from now now ([#55](https://git.autonomic.zone/coop-cloud/abra/pulls/55))
|
||||||
|
- Rename `<domain>` option to `<app>` and `APP` variable to `TYPE`, see ([#47](https://git.autonomic.zone/coop-cloud/abra/issues/47))
|
||||||
|
- Use Docker-in-Docker (dind), and `dind-bats-kcov` Docker image, for `make test` ([1600b62](https://git.autonomic.zone/coop-cloud/abra/commit/1600b6277fbbffc4c6de1e4ba799c7bbe72ec6a0))
|
||||||
|
- Add built-in documentation using `abra help <subcommand>...`, see ([#50](https://git.autonomic.zone/coop-cloud/abra/issues/50))
|
||||||
|
- `version` subcommand ([e6b24fe](https://git.autonomic.zone/coop-cloud/abra/commit/e6b24fe))
|
||||||
|
- Use `# length=x` comments to generate passwords with `pwgen` and drop `KEY`/`PASSWORD` logic ([#68](https://git.autonomic.zone/coop-cloud/abra/issues/68))
|
||||||
|
- Global `--skip-update` / `--skip-check` options to make things quicker,
|
||||||
|
[37e8b00](https://git.autonomic.zone/coop-cloud/abra/commit/37e8b00)
|
||||||
|
- `app backup` and `app restore` commands; requires per-app definition -- see
|
||||||
|
[#70](https://git.autonomic.zone/coop-cloud/abra/issues/70)
|
||||||
|
|
||||||
# abra 0.4.1 (2020-12-24)
|
# abra 0.4.1 (2020-12-24)
|
||||||
|
|
||||||
@ -14,7 +30,7 @@
|
|||||||
# abra 0.4.0 (2020-12-24)
|
# abra 0.4.0 (2020-12-24)
|
||||||
|
|
||||||
- New command-line interface based on docopt
|
- New command-line interface based on docopt
|
||||||
- ~/.abra directory instead of expecting local .env files
|
- `~/.abra` directory instead of expecting local `.env` files
|
||||||
- Integration tests & code coverage
|
- Integration tests & code coverage
|
||||||
|
|
||||||
# abra 0.3.1 (2020-09-27)
|
# abra 0.3.1 (2020-09-27)
|
||||||
|
17
Makefile
17
Makefile
@ -1,12 +1,19 @@
|
|||||||
.PHONY: test shellcheck docopt kcov codecov
|
.PHONY: test shellcheck docopt kcov codecov
|
||||||
|
|
||||||
test:
|
test:
|
||||||
@DOCKER_CONTEXT=default docker run \
|
@sudo DOCKER_CONTEXT=default docker run \
|
||||||
-it \
|
|
||||||
--rm \
|
|
||||||
-v $$(pwd):/workdir \
|
-v $$(pwd):/workdir \
|
||||||
docker:dind \
|
--privileged \
|
||||||
sh -c "apk add bats git bash && cd /workdir && bats /workdir/test.bats"
|
-d \
|
||||||
|
--name=abra-test-dind \
|
||||||
|
-e DOCKER_TLS_CERTDIR="" \
|
||||||
|
decentral1se/docker-dind-bats-kcov
|
||||||
|
@DOCKER_CONTEXT=default docker exec \
|
||||||
|
-it \
|
||||||
|
abra-test-dind \
|
||||||
|
sh -c "cd /workdir && bats /workdir/tests"
|
||||||
|
@DOCKER_CONTEXT=default docker stop abra-test-dind
|
||||||
|
@DOCKER_CONTEXT=default docker rm abra-test-dind
|
||||||
|
|
||||||
shellcheck:
|
shellcheck:
|
||||||
@docker run \
|
@docker run \
|
||||||
|
@ -91,7 +91,7 @@ _abra_complete()
|
|||||||
case "$cmd" in
|
case "$cmd" in
|
||||||
server)
|
server)
|
||||||
# Offer exactly one server name completion.
|
# Offer exactly one server name completion.
|
||||||
if (( COMP_CWORD == cmd_index + 2 )); then
|
if (( COMP_CWORD == cmd_index + 1 )); then
|
||||||
_abra_complete_servers "$cur"
|
_abra_complete_servers "$cur"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
@ -5,7 +5,7 @@ ABRA_SRC="https://git.autonomic.zone/coop-cloud/abra/raw/tag/$ABRA_VERSION/abra"
|
|||||||
|
|
||||||
function install_abra {
|
function install_abra {
|
||||||
mkdir -p "$HOME/.local/bin"
|
mkdir -p "$HOME/.local/bin"
|
||||||
curl "$ABRA_SRC" > "$HOME/.local/bin/abra"
|
curl "$ABRA_SRC" > "$HOME/.local/bin/abra"
|
||||||
chmod +x "$HOME/.local/bin/abra"
|
chmod +x "$HOME/.local/bin/abra"
|
||||||
echo "abra installed to $HOME/.loca/bin/abra"
|
echo "abra installed to $HOME/.loca/bin/abra"
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ teardown() {
|
|||||||
rm -rf "$ABRA_DIR"
|
rm -rf "$ABRA_DIR"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "abra server add/rm works" {
|
@test "abra server (add|rm)" {
|
||||||
./abra server add swarm.test.com
|
./abra server add swarm.test.com
|
||||||
docker context ls | grep swarm.test.com
|
docker context ls | grep swarm.test.com
|
||||||
[ -d $ABRA_DIR/servers/swarm.test.com ]
|
[ -d $ABRA_DIR/servers/swarm.test.com ]
|
||||||
@ -20,30 +20,33 @@ teardown() {
|
|||||||
./abra server swarm.test.com rm
|
./abra server swarm.test.com rm
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "abra app new/rm works" {
|
@test "abra server init" {
|
||||||
./abra app new --server default --domain traefik.test.com traefik
|
./abra server default init
|
||||||
[ -f $ABRA_DIR/servers/default/traefik.test.com.env ]
|
}
|
||||||
|
|
||||||
|
@test "abra app (new|rm)" {
|
||||||
|
./abra app new --server default --domain traefik.test.com --app-name traefik_test_com traefik
|
||||||
|
[ -f $ABRA_DIR/servers/default/traefik_test_com.env ]
|
||||||
|
|
||||||
# interactive prompt
|
# interactive prompt
|
||||||
echo "y" | ./abra app traefik.test.com delete
|
echo "y" | ./abra app traefik_test_com delete
|
||||||
[ ! -f $ABRA_DIR/servers/default/traefik.test.com.env ]
|
[ ! -f $ABRA_DIR/servers/default/traefik_test_com.env ]
|
||||||
|
|
||||||
# --force
|
# --force
|
||||||
./abra app new --server default --domain traefik.test.com traefik
|
./abra app new --server default --domain traefik_test_com --app-name traefik_test_com traefik
|
||||||
./abra app traefik.test.com delete --force
|
./abra app traefik_test_com delete --force
|
||||||
[ ! -f $ABRA_DIR/servers/default/traefik.test.com.env ]
|
[ ! -f $ABRA_DIR/servers/default/traefik_test_com.env ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "abra app <domain> secret (insert|generate|rm)" {
|
@test "abra app <domain> secret (insert|generate|rm)" {
|
||||||
# TODO 3wc: mock `server new` so we don't endlessly re-test it
|
./abra app new --server default --domain traefik_test_com --app-name traefik_test_com traefik
|
||||||
./abra app new --server default --domain traefik.test.com traefik
|
|
||||||
|
|
||||||
./abra app traefik.test.com secret insert foobar v1 "foobar"
|
./abra app traefik_test_com secret insert foobar v1 "foobar"
|
||||||
|
|
||||||
# interactive prompt
|
# interactive prompt
|
||||||
echo "y" | ./abra app traefik.test.com secret rm foobar
|
echo "y" | ./abra app traefik_test_com secret rm foobar
|
||||||
|
|
||||||
./abra app traefik.test.com secret insert foobar v1 "foobar"
|
./abra app traefik_test_com secret insert foobar v1 "foobar"
|
||||||
# prompt
|
# prompt
|
||||||
./abra app traefik.test.com secret rm foobar --force
|
./abra app traefik_test_com secret rm foobar --force
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user