Skip to content

Commit 6eb913c

Browse files
committed
ci: fix autotest LFC ci
1 parent d53e162 commit 6eb913c

1 file changed

Lines changed: 22 additions & 139 deletions

File tree

.github/workflows/lfc_test.yml

Lines changed: 22 additions & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ name: LFC Script CI
22

33
on:
44
push:
5-
branches: [ main ]
5+
branches: [main]
66
pull_request:
7-
branches: [ "*" ]
7+
branches: ["*"]
88

99
jobs:
1010
test_lfc_script:
@@ -16,152 +16,35 @@ jobs:
1616
- name: Make LFC.sh executable
1717
run: chmod +x LFC/LFC.sh
1818

19-
- name: Test LFC.sh with default settings
20-
run: |
21-
set -e # Exit immediately if a command exits with a non-zero status.
22-
echo "--- Running LFC.sh with default settings ---"
23-
sudo ./LFC/LFC.sh
24-
25-
echo "--- Verifying default output ---"
26-
DEFAULT_TARBALL="/tmp/result.tar.gz"
27-
DEFAULT_EXTRACT_DIR="/tmp/extracted_default_output"
28-
DEFAULT_OUTPUT_BASENAME="result"
29-
30-
if [ -f "$DEFAULT_TARBALL" ]; then
31-
echo "Default output tarball $DEFAULT_TARBALL created successfully."
32-
mkdir -p "$DEFAULT_EXTRACT_DIR"
33-
sudo tar -xzf "$DEFAULT_TARBALL" -C "$DEFAULT_EXTRACT_DIR"
34-
35-
LOG_FILE_PATH="$DEFAULT_EXTRACT_DIR/$DEFAULT_OUTPUT_BASENAME/log_file.log"
36-
if [ -f "$LOG_FILE_PATH" ]; then
37-
echo "log_file.log found in extracted default output."
38-
# Check for osquery not found message (script should detect this)
39-
if grep -q "osqueryi not found at /usr/bin/osqueryi" "$LOG_FILE_PATH"; then
40-
echo "osqueryi not found message correctly logged."
41-
else
42-
echo "Error: osqueryi not found message missing from log."
43-
cat "$LOG_FILE_PATH"
44-
exit 1
45-
fi
46-
# Check for overall completion message
47-
if grep -q "Artifact collection completed" "$LOG_FILE_PATH"; then
48-
echo "Artifact collection completed message found."
49-
else
50-
echo "Error: Artifact collection completed message NOT found in log."
51-
cat "$LOG_FILE_PATH"
52-
exit 1
53-
fi
54-
else
55-
echo "Error: log_file.log not found in extracted default output."
56-
ls -R "$DEFAULT_EXTRACT_DIR"
57-
exit 1
58-
fi
59-
sudo rm -rf "$DEFAULT_EXTRACT_DIR"
60-
else
61-
echo "Error: Default output tarball $DEFAULT_TARBALL not found."
62-
exit 1
63-
fi
64-
sudo rm "$DEFAULT_TARBALL"
65-
66-
- name: Test LFC.sh with custom output directory
19+
- name: Run LFC.sh and verify output
6720
run: |
6821
set -e
69-
CUSTOM_OUTPUT_DIR="/tmp/custom_lfc_run"
70-
CUSTOM_OUTPUT_BASENAME="custom_lfc_run"
71-
CUSTOM_TARBALL="/tmp/${CUSTOM_OUTPUT_BASENAME}.tar.gz"
72-
CUSTOM_EXTRACT_DIR="/tmp/extracted_custom_output"
22+
OUTPUT_DIR="/tmp/lfc_output"
23+
TARBALL="/tmp/lfc_output.tar.gz"
24+
EXTRACT_DIR="/tmp/extracted_output"
7325
74-
echo "--- Running LFC.sh with custom output directory: $CUSTOM_OUTPUT_DIR ---"
75-
sudo ./LFC/LFC.sh "$CUSTOM_OUTPUT_DIR"
76-
77-
echo "--- Verifying custom output ---"
78-
if [ -f "$CUSTOM_TARBALL" ]; then
79-
echo "Custom output tarball $CUSTOM_TARBALL created successfully."
80-
mkdir -p "$CUSTOM_EXTRACT_DIR"
81-
sudo tar -xzf "$CUSTOM_TARBALL" -C "$CUSTOM_EXTRACT_DIR"
82-
83-
LOG_FILE_PATH="$CUSTOM_EXTRACT_DIR/${CUSTOM_OUTPUT_BASENAME}/log_file.log"
84-
if [ -f "$LOG_FILE_PATH" ]; then
85-
echo "log_file.log found in extracted custom output."
86-
if grep -q "Artifact collection completed" "$LOG_FILE_PATH"; then
87-
echo "Artifact collection completed message found."
88-
else
89-
echo "Error: Artifact collection completed message NOT found in log."
90-
cat "$LOG_FILE_PATH"
91-
exit 1
92-
fi
93-
else
94-
echo "Error: log_file.log not found in extracted custom output."
95-
ls -R "$CUSTOM_EXTRACT_DIR"
96-
exit 1
97-
fi
26+
echo "--- Running LFC.sh ---"
27+
sudo ./LFC/LFC.sh "$OUTPUT_DIR"
9828
99-
SYSTEM_ANALYSIS_PATH="$CUSTOM_EXTRACT_DIR/${CUSTOM_OUTPUT_BASENAME}/System_Analysis"
100-
if [ -d "$SYSTEM_ANALYSIS_PATH" ]; then
101-
echo "System_Analysis directory found in extracted custom output."
102-
else
103-
echo "Error: System_Analysis directory not found in extracted custom output."
104-
ls -R "$CUSTOM_EXTRACT_DIR"
105-
exit 1
106-
fi
107-
sudo rm -rf "$CUSTOM_EXTRACT_DIR"
108-
else
109-
echo "Error: Custom output tarball $CUSTOM_TARBALL not found."
110-
exit 1
111-
fi
112-
sudo rm "$CUSTOM_TARBALL"
29+
echo "--- Creating tarball ---"
30+
tar -czf "$TARBALL" -C "$(dirname "$OUTPUT_DIR")" "$(basename "$OUTPUT_DIR")"
11331
114-
- name: Test LFC.sh with --no-osquery flag
115-
run: |
116-
set -e
117-
NO_OSQUERY_OUTPUT_DIR="/tmp/no_osquery_run"
118-
NO_OSQUERY_OUTPUT_BASENAME="no_osquery_run"
119-
NO_OSQUERY_TARBALL="/tmp/${NO_OSQUERY_OUTPUT_BASENAME}.tar.gz"
120-
NO_OSQUERY_EXTRACT_DIR="/tmp/extracted_no_osquery_output"
32+
echo "--- Extracting tarball ---"
33+
mkdir -p "$EXTRACT_DIR"
34+
tar -xzf "$TARBALL" -C "$EXTRACT_DIR"
12135
122-
echo "--- Running LFC.sh with --no-osquery and output dir: $NO_OSQUERY_OUTPUT_DIR ---"
123-
sudo ./LFC/LFC.sh "$NO_OSQUERY_OUTPUT_DIR" --no-osquery
124-
125-
echo "--- Verifying --no-osquery output ---"
126-
if [ -f "$NO_OSQUERY_TARBALL" ]; then
127-
echo "--no-osquery output tarball $NO_OSQUERY_TARBALL created successfully."
128-
mkdir -p "$NO_OSQUERY_EXTRACT_DIR"
129-
sudo tar -xzf "$NO_OSQUERY_TARBALL" -C "$NO_OSQUERY_EXTRACT_DIR"
130-
131-
LOG_FILE_PATH="$NO_OSQUERY_EXTRACT_DIR/${NO_OSQUERY_OUTPUT_BASENAME}/log_file.log"
132-
if [ -f "$LOG_FILE_PATH" ]; then
133-
echo "log_file.log found in extracted --no-osquery output."
134-
if grep -q "Skipping osquery collection as per user request." "$LOG_FILE_PATH"; then
135-
echo "Osquery skip message (user request) found in log."
136-
else
137-
echo "Error: Osquery skip message (user request) NOT found in log."
138-
cat "$LOG_FILE_PATH"
139-
exit 1
140-
fi
141-
if grep -q "Artifact collection completed" "$LOG_FILE_PATH"; then
142-
echo "Artifact collection completed message found."
143-
else
144-
echo "Error: Artifact collection completed message NOT found in log."
145-
cat "$LOG_FILE_PATH"
146-
exit 1
147-
fi
36+
LOG_FILE_PATH="$EXTRACT_DIR/$(basename "$OUTPUT_DIR")/log_file.log"
37+
if [ -f "$LOG_FILE_PATH" ]; then
38+
echo "log_file.log found."
39+
if grep -q "Artifact collection completed" "$LOG_FILE_PATH"; then
40+
echo "Artifact collection completed message found in log."
14841
else
149-
echo "Error: log_file.log not found in extracted --no-osquery output."
150-
ls -R "$NO_OSQUERY_EXTRACT_DIR"
42+
echo "Error: Artifact collection completed message NOT found in log."
43+
cat "$LOG_FILE_PATH"
15144
exit 1
15245
fi
153-
154-
OSQUERY_DIR_PATH="$NO_OSQUERY_EXTRACT_DIR/${NO_OSQUERY_OUTPUT_BASENAME}/osquery"
155-
if [ ! -d "$OSQUERY_DIR_PATH" ]; then
156-
echo "osquery directory correctly not found in --no-osquery output."
157-
else
158-
echo "Error: osquery directory WAS FOUND in --no-osquery output."
159-
ls -R "$NO_OSQUERY_EXTRACT_DIR/${NO_OSQUERY_OUTPUT_BASENAME}"
160-
exit 1
161-
fi
162-
sudo rm -rf "$NO_OSQUERY_EXTRACT_DIR"
16346
else
164-
echo "Error: --no-osquery output tarball $NO_OSQUERY_TARBALL not found."
47+
echo "Error: log_file.log not found."
48+
ls -R "$EXTRACT_DIR"
16549
exit 1
16650
fi
167-
sudo rm "$NO_OSQUERY_TARBALL"

0 commit comments

Comments
 (0)