1+ #! /bin/bash
2+
3+ # Test script for OpenSUSE RPM repository (test environment)
4+ # Uses test bucket for RPMs, production bucket for GPG key
5+
6+ set -e
7+
8+ echo " =========================================="
9+ echo " STACKIT CLI OpenSUSE RPM Test (Test Environment)"
10+ echo " =========================================="
11+
12+ # Configuration
13+ CONTAINER_NAME=" stackit-opensuse-test"
14+ IMAGE=" opensuse/tumbleweed:latest"
15+
16+ # Test environment S3 bucket (for RPMs)
17+ TEST_S3_BUCKET=" distribution-test"
18+ TEST_S3_ENDPOINT=" object.storage.eu01.onstackit.cloud"
19+ TEST_RPM_REPO_PATH=" rpm/cli"
20+
21+ # Production S3 bucket (for GPG key)
22+ PROD_S3_BUCKET=" distribution"
23+ PROD_S3_ENDPOINT=" object.storage.eu01.onstackit.cloud"
24+ PROD_GPG_KEY_PATH=" keys/key.gpg"
25+
26+ echo " Step 1: Starting OpenSUSE container..."
27+ docker run -d --name $CONTAINER_NAME $IMAGE tail -f /dev/null
28+
29+ echo " Step 2: Installing dependencies..."
30+ docker exec $CONTAINER_NAME bash -c "
31+ zypper update -y
32+ zypper install -y curl wget gpg2
33+ "
34+
35+ echo " Step 3: Downloading GPG key from production bucket..."
36+ docker exec $CONTAINER_NAME bash -c "
37+ curl -o /tmp/stackit-gpg-signer.asc 'https://$PROD_S3_BUCKET .$PROD_S3_ENDPOINT /$PROD_GPG_KEY_PATH '
38+ gpg --import /tmp/stackit-gpg-signer.asc
39+ echo '✅ GPG key imported'
40+ "
41+
42+ echo " Step 4: Creating repository configuration..."
43+ docker exec $CONTAINER_NAME bash -c "
44+ cat > /etc/zypp/repos.d/stackit-cli.repo << EOF
45+ [stackit-cli]
46+ name=STACKIT CLI Repository
47+ baseurl=https://$TEST_S3_BUCKET .$TEST_S3_ENDPOINT /$TEST_RPM_REPO_PATH
48+ enabled=1
49+ gpgcheck=1
50+ repo_gpgcheck=1
51+ gpgkey=https://$PROD_S3_BUCKET .$PROD_S3_ENDPOINT /$PROD_GPG_KEY_PATH
52+ EOF
53+ cat /etc/zypp/repos.d/stackit-cli.repo
54+ echo '✅ Repository configuration created'
55+ "
56+
57+ echo " Step 5: Updating package cache..."
58+ docker exec $CONTAINER_NAME bash -c "
59+ zypper clean --all
60+ zypper refresh
61+ zypper repos
62+ echo '✅ Package cache updated'
63+ "
64+
65+ echo " Step 6: Installing STACKIT CLI..."
66+ docker exec $CONTAINER_NAME bash -c "
67+ zypper install -y stackit
68+ echo '✅ STACKIT CLI installed'
69+ "
70+
71+ echo " Step 7: Verifying installation..."
72+ docker exec $CONTAINER_NAME bash -c "
73+ if command -v stackit >/dev/null 2>&1; then
74+ echo '✅ stackit command found: \$ (which stackit)'
75+ echo '✅ Version: \$ (stackit version)'
76+ else
77+ echo '❌ stackit command not found'
78+ exit 1
79+ fi
80+ "
81+
82+ echo " Step 8: Testing basic functionality..."
83+ docker exec $CONTAINER_NAME bash -c "
84+ echo '=== STACKIT CLI HELP OUTPUT ==='
85+ stackit --help
86+ echo '=== END HELP OUTPUT ==='
87+ echo '✅ Basic functionality test passed'
88+ "
89+
90+ echo " Step 9: Testing package update..."
91+ docker exec $CONTAINER_NAME bash -c "
92+ zypper list-updates stackit || echo 'No updates available (expected for test)'
93+ echo '✅ Update check completed'
94+ "
95+
96+ echo " Step 10: Uninstalling STACKIT CLI..."
97+ docker exec $CONTAINER_NAME bash -c "
98+ zypper remove -y stackit
99+ echo '✅ STACKIT CLI uninstalled'
100+ "
101+
102+ echo " Step 11: Verifying uninstallation..."
103+ docker exec $CONTAINER_NAME bash -c "
104+ if ! command -v stackit >/dev/null 2>&1; then
105+ echo '✅ stackit command no longer found'
106+ else
107+ echo '❌ stackit command still found: \$ (which stackit)'
108+ exit 1
109+ fi
110+ "
111+
112+ echo " Step 12: Cleaning up container..."
113+ docker stop $CONTAINER_NAME
114+ docker rm $CONTAINER_NAME
115+
116+ echo " =========================================="
117+ echo " ✅ OpenSUSE RPM test completed successfully!"
118+ echo " =========================================="
0 commit comments