#log-file #log-line #worker #input-file #output #write #failure

bin+lib flakysed

Clean CircleCI log files. Processes the input file to extract and clean log lines related to a specific worker, stopping at the first failure if present, and writes the normalized output to the specified file.

1 unstable release

0.1.0 Jan 22, 2025

#1385 in Command line utilities

Download history 101/week @ 2025-01-19 14/week @ 2025-01-26 11/week @ 2025-02-02

126 downloads per month

MIT license

9KB
81 lines

FlakySed

This tool processes CircleCI log files, extracting and cleaning log lines associated with a specific worker and stopping at the first test failure (if present). It then writes the cleaned and normalized output to a specified file. The tool is designed to simplify log analysis for debugging and auditing.

Features

  • Filters log lines based on a specific worker identifier.
  • Extracts and normalizes paths in the logs, ensuring a consistent format.
  • Stops processing at the first test failure for targeted analysis.
  • Cleans extraneous data like ANSI escape sequences and unnecessary brackets.
  • Outputs the processed results to a user-specified file.

Requirements

  • Rust (for building and running the tool).
  • A CircleCI log file to process.

Installation

  1. Clone the repository:

    git clone <repository-url>
    cd <repository-directory>
    
  2. Build the tool:

    cargo build --release
    
  3. The compiled binary will be available in the target/release directory.

Usage

Run the tool from the command line:

flakysed --input <input_file> --output <output_file> --worker <worker_name>

Arguments

  • --input (-i): Path to the CircleCI log file to process.
  • --output (-o): Path to save the cleaned and processed output.
  • --worker (-w): Worker name to filter logs for processing (e.g., gw7).

Example

To process a log file:

process_file --input circleci.log --output cleaned_logs.txt --worker gw7

This command will:

  1. Read circleci.log.
  2. Filter logs related to worker gw7.
  3. Stop processing at the first test failure (if present).
  4. Write the cleaned and normalized logs to cleaned_logs.txt.

Testing

To run tests (if implemented):

cargo test

License

This project is licensed under the MIT License. See the LICENSE file for details.


For questions or issues, please open an issue in the repository.

Dependencies

~3.5–5MB
~93K SLoC