foo aeac883
101
Loading...
Searching...
No Matches
foo

pipeline document

The foo repository is a personal roadmap for learning programming, serving as an exploratory sandbox. Its main purpose is to implement and refine fundamental components using C++, along with related engineering practices. It also includes detailed comments for easier review and documentation. The goal is to develop good programming habits while improving coding skills through best practices.


Status

last commit license

Features

Getting started

  1. Get the code:

    git clone https://github.com/ryftchen/foo.git
  2. Prepare the environment:

    docker compose -f foo/docker/docker-compose.yaml up -d
    docker exec -it -w /workspaces/foo foo_dev /bin/bash

    For environment dependencies and container setup, refer to the configuration file under the ./docker directory.

How to build

‍The build script supports a number of options, use the --help option first to see detailed instructions.

./script/build.sh --help
  • Build by default:

    ./script/build.sh

    The binary and libraries are generated under the ./build directory. Then execute the binary, for example:

    ./build/bin/foo --help

    Configuration is stored in $HOME/.foo/conf/foo.json, and runtime logs are written to $HOME/.foo/log/foo.log.

  • Additional options are available for building or static analysis, e.g. --lint cpp.

How to run

‍The run script supports a number of options, use the --help option first to see detailed instructions.

./script/run.py --help
  • Run all cases by default:

    ./script/run.py

    Also, pass the --build option to trigger a build before running. Run output is written to ./report/foo_run.log, and analysis report is produced at ./report/foo_run.report.

  • Additional options are available for running or dynamic analysis, e.g. --check mem.

Documentation

The project API documentation is hosted on GitHub Pages. When generating documentation locally via the script, ./document is used as the output directory. It also supports deploying a local archive service.

License

Copyright (c) 2022-2026 ryftchen. Released under the MIT License.