From b06c95d9b4361b95bafbb0fbb1d8db457464d898 Mon Sep 17 00:00:00 2001 From: Andrejus Date: Thu, 14 Mar 2024 22:07:48 +0000 Subject: [PATCH] feat: docker and redis setup, tests --- script/install.d/20-docker.sh | 34 ++++++++++++++++++++++++---------- script/install.d/50-redis.sh | 16 ++++++++++++++++ script/test | 11 +++++++++-- tests/test_binaries.py | 2 ++ 4 files changed, 51 insertions(+), 12 deletions(-) create mode 100644 script/install.d/50-redis.sh diff --git a/script/install.d/20-docker.sh b/script/install.d/20-docker.sh index 9119aa3..adec750 100644 --- a/script/install.d/20-docker.sh +++ b/script/install.d/20-docker.sh @@ -1,14 +1,28 @@ -if [[ "$OSTYPE" == "linux-gnu"* && -z "$SKIP_DOCKER_CONFIG" ]]; then - docker --version +#!/usr/bin/env bash - readonly docker_group="docker" - if ! grep -q "$docker_group" /etc/group; then - echo "Adding docker group" - sudo groupadd "$docker_group" - fi +# ----------------------------------------------------------------------------- +# Description: +# (macOS) Install Docker. +# (Linux) Setup Docker. +# - if ! groups "$USER" | grep -q "\b$docker_group\b"; then - echo "Adding user to docker group" - sudo usermod -aG docker "$USER" +if [[ -z "$SKIP_DOCKER_CONFIG" ]]; then + if [[ "$OSTYPE" == "linux-gnu"* ]]; then + docker --version + + readonly docker_group="docker" + if ! grep -q "$docker_group" /etc/group; then + echo "Adding docker group" + sudo groupadd "$docker_group" + fi + + if ! groups "$USER" | grep -q "\b$docker_group\b"; then + echo "Adding user to docker group" + sudo usermod -aG docker "$USER" + fi + elif [[ "$OSTYPE" == "darwin"* ]]; then + if ! command -v docker &> /dev/null; then + brew install --cask docker + fi fi fi diff --git a/script/install.d/50-redis.sh b/script/install.d/50-redis.sh new file mode 100644 index 0000000..fda8772 --- /dev/null +++ b/script/install.d/50-redis.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +# ----------------------------------------------------------------------------- +# Description: +# Install Redis. +# + +if ! command -v redis-client &>/dev/null; then + if [[ "$OSTYPE" == "linux-gnu"* ]]; then + curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg + echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list + sudo apt-get install -qq redis + elif [[ "$OSTYPE" == "darwin"* ]]; then + brew install redis + fi +fi \ No newline at end of file diff --git a/script/test b/script/test index d3f6499..d31b3e0 100755 --- a/script/test +++ b/script/test @@ -7,10 +7,17 @@ set -euo pipefail # IMAGE=${IMAGE:-"andrejusk/dotfiles"} -tag=${TAG:-$(cat /proc/sys/kernel/random/uuid)} +uuid=$( + uuidgen 2> /dev/null \ + || cat /proc/sys/kernel/random/uuid 2> /dev/null \ + || echo $RANDOM +) +tag=${TAG:-"$uuid"} + +echo "Building $IMAGE:$tag" docker build . \ - --build-arg UUID=$tag \ + --build-arg UUID=$uuid \ --cache-from $IMAGE \ --tag $IMAGE:$tag \ --target test diff --git a/tests/test_binaries.py b/tests/test_binaries.py index 458904e..62bf7f9 100644 --- a/tests/test_binaries.py +++ b/tests/test_binaries.py @@ -50,6 +50,8 @@ binaries: List[Text] = [ "terraform", "docker" if not os.environ.get("SKIP_DOCKER_CONFIG") else None, "neofetch", + "redis-cli", + "redis-server", # language: python "pyenv",