@@ -2,9 +2,9 @@ name: LFC Script CI
22
33on :
44 push :
5- branches : [ main ]
5+ branches : [main]
66 pull_request :
7- branches : [ "*" ]
7+ branches : ["*"]
88
99jobs :
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