Skip to content

Commit de924ad

Browse files
committed
refactor influx download
1 parent 967225b commit de924ad

File tree

2 files changed

+75
-38
lines changed

2 files changed

+75
-38
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -98,25 +98,7 @@ jobs:
9898
- name: Download InfluxDB (if not cached)
9999
if: steps.cache-influxdb.outputs.cache-hit != 'true'
100100
run: |
101-
INFLUXDB_VERSION=1.8.10
102-
INFLUXDB_TAR=influxdb-${INFLUXDB_VERSION}_darwin_amd64.tar.gz
103-
INFLUXDB_URL=https://dl.influxdata.com/influxdb/releases/${INFLUXDB_TAR}
104-
105-
echo "Downloading InfluxDB ${INFLUXDB_VERSION}..."
106-
curl -L -o "${INFLUXDB_TAR}" "${INFLUXDB_URL}"
107-
108-
echo "Extracting InfluxDB..."
109-
tar -xzf "${INFLUXDB_TAR}"
110-
111-
echo "Verifying InfluxDB binary..."
112-
if [ ! -f "influxdb-${INFLUXDB_VERSION}-1/usr/bin/influxd" ]; then
113-
echo "ERROR: InfluxDB binary not found at expected path: influxdb-${INFLUXDB_VERSION}-1/usr/bin/influxd"
114-
echo "Extracted contents:"
115-
ls -la influxdb-${INFLUXDB_VERSION}-1/ || true
116-
exit 1
117-
fi
118-
ls -la influxdb-${INFLUXDB_VERSION}-1/usr/bin/influxd
119-
chmod +x influxdb-${INFLUXDB_VERSION}-1/usr/bin/influxd
101+
scripts/download-influxdb.sh 1.8.10 darwin_amd64
120102
121103
- name: Start InfluxDB
122104
run: |
@@ -186,26 +168,8 @@ jobs:
186168
- name: Download InfluxDB (if not cached)
187169
if: steps.cache-influxdb.outputs.cache-hit != 'true'
188170
run: |
189-
INFLUXDB_VERSION=1.8.10
190171
# Note: InfluxDB 1.8.10 only has amd64/x86_64 binaries, but will run on Apple Silicon via Rosetta
191-
INFLUXDB_TAR=influxdb-${INFLUXDB_VERSION}_darwin_amd64.tar.gz
192-
INFLUXDB_URL=https://dl.influxdata.com/influxdb/releases/${INFLUXDB_TAR}
193-
194-
echo "Downloading InfluxDB ${INFLUXDB_VERSION} (amd64, runs on Apple Silicon via Rosetta)..."
195-
curl -L -o "${INFLUXDB_TAR}" "${INFLUXDB_URL}"
196-
197-
echo "Extracting InfluxDB..."
198-
tar -xzf "${INFLUXDB_TAR}"
199-
200-
echo "Verifying InfluxDB binary..."
201-
if [ ! -f "influxdb-${INFLUXDB_VERSION}-1/usr/bin/influxd" ]; then
202-
echo "ERROR: InfluxDB binary not found at expected path: influxdb-${INFLUXDB_VERSION}-1/usr/bin/influxd"
203-
echo "Extracted contents:"
204-
ls -la influxdb-${INFLUXDB_VERSION}-1/ || true
205-
exit 1
206-
fi
207-
ls -la influxdb-${INFLUXDB_VERSION}-1/usr/bin/influxd
208-
chmod +x influxdb-${INFLUXDB_VERSION}-1/usr/bin/influxd
172+
scripts/download-influxdb.sh 1.8.10 darwin_amd64
209173
210174
- name: Start InfluxDB
211175
run: |

scripts/download-influxdb.sh

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
#!/usr/bin/env bash
2+
# Download and extract InfluxDB binary
3+
# Usage: download-influxdb.sh <version> <architecture>
4+
# Example: download-influxdb.sh 1.8.10 darwin_amd64
5+
6+
set -euo pipefail
7+
8+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9+
PROJECT_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
10+
11+
cd "${PROJECT_ROOT}"
12+
13+
INFLUXDB_VERSION="${1:-1.8.10}"
14+
ARCH="${2:-darwin_amd64}"
15+
16+
# Determine file extension based on architecture
17+
if [[ "${ARCH}" == *"windows"* ]]; then
18+
FILE_EXT=".zip"
19+
EXTRACT_CMD="unzip -q"
20+
else
21+
FILE_EXT=".tar.gz"
22+
EXTRACT_CMD="tar -xzf"
23+
fi
24+
25+
INFLUXDB_ARCHIVE="influxdb-${INFLUXDB_VERSION}_${ARCH}${FILE_EXT}"
26+
INFLUXDB_URL="https://dl.influxdata.com/influxdb/releases/${INFLUXDB_ARCHIVE}"
27+
INFLUXDB_DIR="influxdb-${INFLUXDB_VERSION}-1"
28+
29+
# Determine binary path based on platform
30+
if [[ "${ARCH}" == *"windows"* ]]; then
31+
BINARY_PATH="${INFLUXDB_DIR}/influxd.exe"
32+
else
33+
BINARY_PATH="${INFLUXDB_DIR}/usr/bin/influxd"
34+
fi
35+
36+
# Check if binary already exists
37+
if [ -f "${BINARY_PATH}" ]; then
38+
echo "✓ InfluxDB binary already exists at ${BINARY_PATH}"
39+
chmod +x "${BINARY_PATH}" 2>/dev/null || true
40+
exit 0
41+
fi
42+
43+
# Check if archive exists
44+
if [ -f "${INFLUXDB_ARCHIVE}" ]; then
45+
echo "Archive ${INFLUXDB_ARCHIVE} already exists, extracting..."
46+
else
47+
echo "Downloading InfluxDB ${INFLUXDB_VERSION} for ${ARCH}..."
48+
curl -L -o "${INFLUXDB_ARCHIVE}" "${INFLUXDB_URL}"
49+
if [ $? -ne 0 ]; then
50+
echo "ERROR: Failed to download InfluxDB from ${INFLUXDB_URL}"
51+
exit 1
52+
fi
53+
fi
54+
55+
echo "Extracting InfluxDB..."
56+
${EXTRACT_CMD} "${INFLUXDB_ARCHIVE}"
57+
if [ $? -ne 0 ]; then
58+
echo "ERROR: Failed to extract ${INFLUXDB_ARCHIVE}"
59+
exit 1
60+
fi
61+
62+
echo "Verifying InfluxDB binary..."
63+
if [ ! -f "${BINARY_PATH}" ]; then
64+
echo "ERROR: InfluxDB binary not found at expected path: ${BINARY_PATH}"
65+
echo "Extracted contents:"
66+
ls -la "${INFLUXDB_DIR}" || true
67+
exit 1
68+
fi
69+
70+
ls -la "${BINARY_PATH}"
71+
chmod +x "${BINARY_PATH}" 2>/dev/null || true
72+
echo "✓ InfluxDB ${INFLUXDB_VERSION} downloaded and extracted successfully"
73+

0 commit comments

Comments
 (0)