mirror of https://github.com/google/oss-fuzz.git
![]() Share more code between the 4 implementations of `prepare_for_fuzzer_build`. This simplifies the code of these implementations, reduces repetition and makes them easier to understand. Create helper functions/methods for: 1. Creating a failed `BuildPreparationResult`: `get_build_preparation_failure` 2. Building an external project docker image: `_build_external_project_docker_image` 3. Cloning a repo and checking out the specified commit/pr: `_clone_repo_and_checkout` 4. Detecting the main repo `_detect_main_repo` 5. Creating a repo manager from an existing checkout: `_create_repo_manager_for_project_src_path` Change `ExternalGeneric` implementation of `prepare_for_fuzzer_build` to: 1. Call `_create_repo_manager_for_project_src_path` 2. Call `_build_external_project_docker_image` Change `InternalGeneric` implementation of `prepare_for_fuzzer_build` to: 1. Call `_detect_main_repo` 2. Call `_create_repo_manager_for_project_src_path` Change `ExternalGithub` implementation of `prepare_for_fuzzer_build` to: 1. Call `_clone_repo_and_checkout` 2. Call `_build_external_project_docker_image` Change `InternalGithub` implementation of `prepare_for_fuzzer_build` to: 1. Call `_detect_main_repo` 2. Call `_clone_repo_and_checkout` |
||
---|---|---|
.. | ||
base-images | ||
build | ||
ci | ||
cifuzz | ||
triage-party | ||
uploader | ||
.dockerignore | ||
README.md | ||
bisector.py | ||
bisector_test.py | ||
build_and_push_test_images.py | ||
build_fuzzers.Dockerfile | ||
build_specified_commit.py | ||
build_specified_commit_test.py | ||
constants.py | ||
helper.py | ||
helper_test.py | ||
presubmit.py | ||
pytest.ini | ||
repo_manager.py | ||
repo_manager_test.py | ||
retry.py | ||
run_fuzzers.Dockerfile | ||
templates.py | ||
test_repos.py | ||
utils.py | ||
utils_test.py |
README.md
infra
OSS-Fuzz project infrastructure
Core infrastructure:
base-images
- docker images for building fuzz targets & corresponding jenkins pipeline.
Continuous Integration infrastructure:
libfuzzer-pipeline.groovy
- jenkins pipeline that runs for each OSS-Fuzz project.docker-cleanup
- jenkins pipeline to clean stale docker images & processes.push-images
- jenkins pipeline to push built base images.jenkins-cluster
- kubernetes cluster definition for our jenkins-based build (not operational yet, #10).
helper.py
script to automate common docker operations
Command | Description |
---|---|
generate |
Generates skeleton files for a new project |
build_image |
Builds a docker image for a given project |
build_fuzzers |
Builds fuzz targets for a given project |
run_fuzzer |
Runs a fuzz target in a docker container |
coverage |
Runs fuzz target(s) in a docker container and generates a code coverage report. See Code Coverage doc |
reproduce |
Runs a testcase to reproduce a crash |
shell |
Starts a shell inside the docker image for a project |