diff options
-rw-r--r-- | script/dev-env-duck.sh | 52 | ||||
-rwxr-xr-x | script/test-smoke.sh | 19 |
2 files changed, 71 insertions, 0 deletions
diff --git a/script/dev-env-duck.sh b/script/dev-env-duck.sh new file mode 100644 index 00000000..f9d96021 --- /dev/null +++ b/script/dev-env-duck.sh @@ -0,0 +1,52 @@ +mkdir -p /tmp/garage.cyberduck.home/.duck/profiles + +DUCK_ACCESS_KEY=`cat /tmp/garage.s3 |cut -d' ' -f1` +DUCK_SECRET_KEY=`cat /tmp/garage.s3 |cut -d' ' -f2` + +cat > /tmp/garage.cyberduck.home/.duck/credentials <<EOF +https\://$DUCK_ACCESS_KEY@127.0.0.1\:4443=$DUCK_SECRET_KEY +EOF + +cat > /tmp/garage.cyberduck.home/.duck/profiles/garage.cyberduckprofile <<EOF +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> + <dict> + <key>Protocol</key> + <string>s3</string> + <key>Vendor</key> + <string>garage</string> + <key>Scheme</key> + <string>https</string> + <key>Description</key> + <string>GarageS3</string> + <key>Default Hostname</key> + <string>127.0.0.1</string> + <key>Default Port</key> + <string>4443</string> + <key>Hostname Configurable</key> + <false/> + <key>Port Configurable</key> + <false/> + <key>Username Configurable</key> + <true/> + <key>Username Placeholder</key> + <string>Access Key ID (GK...)</string> + <key>Password Placeholder</key> + <string>Secret Key</string> + <key>Properties</key> + <array> + <string>s3service.disable-dns-buckets=true</string> + </array> + <key>Region</key> + <string>garage</string> + <key>Regions</key> + <array> + <string>garage</string> + </array> + </dict> +</plist> +EOF + +function duck { HOME=/tmp/garage.cyberduck.home/ command duck --username $DUCK_ACCESS_KEY $@ ; } + diff --git a/script/test-smoke.sh b/script/test-smoke.sh index 9fe06de9..0417b2af 100755 --- a/script/test-smoke.sh +++ b/script/test-smoke.sh @@ -10,6 +10,9 @@ GARAGE_DEBUG="${REPO_FOLDER}/target/debug/" GARAGE_RELEASE="${REPO_FOLDER}/target/release/" PATH="${GARAGE_DEBUG}:${GARAGE_RELEASE}:$PATH" +# @FIXME Duck is not ready for testing, we have a bug +SKIP_DUCK=1 + echo "⏳ Setup" cargo build ${SCRIPT_FOLDER}/dev-clean.sh @@ -90,6 +93,22 @@ if [ -z "$SKIP_RCLONE" ]; then done fi +# Duck (aka Cyberduck CLI) +if [ -z "$SKIP_DUCK" ]; then + echo "🛠️ Testing with duck (aka cyberduck cli)" + source ${SCRIPT_FOLDER}/dev-env-duck.sh + duck --list garage:/ + duck --mkdir "garage:/eprouvette/duck" + for idx in $(seq 1 3); do + duck --verbose --upload "garage:/eprouvette/duck/" "/tmp/garage.$idx.rnd" + duck --list garage:/eprouvette/duck/ + duck --download "garage:/eprouvette/duck/garage.$idx.rnd" "/tmp/garage.$idx.dl" + diff /tmp/garage.$idx.rnd /tmp/garage.$idx.dl + rm /tmp/garage.$idx.dl + duck --delete "garage:/eprouvette/duck/garage.$idx.dk" + done +fi + rm /tmp/garage.{1,2,3}.rnd if [ -z "$SKIP_AWS" ]; then |