Commit Graph

21 Commits

Author SHA1 Message Date
jonathanmetzman 36e5931a19
Make a better api for platform specific config. (#6708)
1. Move most of the generic stuff into BasePlatformConfig.
2. Make a GCB platform config that sets WORKSPACE and PROJECT_SRC_PATH so users don't have to.
3. Make a skeleton prow platform_config for Mitchel to fill out.
4. Make users explicitly specify the CFL_PLATFORM so we can pick CI environments
2021-11-01 12:29:38 +00:00
jonathanmetzman 4ce563f882
Fix diffing on non-GitHub and improve config (#6707)
Fix diffing on non-GitHub and improve config

1. Remove obsolete comments.
2. Remove unused function get_pr_ref
3. Correct comment on git_sha
4. Rename commit_sha to git_sha
5. Make base_commit, pr_ref, and base_ref non-github specific and move to
CiEnvironment.
6. Hoist get_diff_base to base class to allow diffing
7. Fix downloading coverage on non-Github.
8. Add TODO so that we don't assume github actions is run on github.com
(enterprise users)
9. Rename repo_url to git_url.
10. Add missing git_url method base class.
11. Clarify what git_url, git_sha and pr_ref are for and leave TODOs about how
we can eliminate them.
12. Fix typos.
2021-10-31 20:36:07 -04:00
jonathanmetzman b2fa3547b2
[clusterfuzzlite] Fixes for gsutil (#6683)
1 Fix usage of gsutil tool.
2 Get rid of run_fuzzers_mode and change to mode. Fixes: #6677
3 Install requirements before copying source code to make iterative development of cifuzz code faster.
2021-10-28 15:00:44 -04:00
jonathanmetzman b77a55b9b4
[ClusterFuzzLite] Support GCB and gsutil/gcs as filestore. (#6629)
* add gsutil filestore

* lint

* Fix

* Add build image script

* get gcb fuzzing working

* fmt and fix config_utils_test

* Check that crashes are uploaded

* Add no_filestore

* fix test

* fix tests

* fix

* Print crash URL

* Fix

* fix

* fmt

* lnt

* fix

* fmt
2021-10-27 10:00:04 -04:00
Oliver Chang a4bc23909b
Don't upload builds in run_fuzzers. (#6151)
The current way adds a lot of ordering assumptions, and doesn't fit too
well with parallel batch fuzzing either. Add a "upload-build" boolean action
input that can be added to "build_fuzzers" to upload latest builds
instead.

Builds are now uploaded by commit hash, rather than a fixed "latest" name.
ClusterFuzzLite's download_latest_build will check the last 3 commits and download the
first available build by git hash.
2021-08-17 06:36:06 +00:00
jonathanmetzman 01247be731
[infra][tests][NFC] Change mocked function prefix from "mocked_" to "mock_" (#6198)
Also rename mock_ functions to have impl suffix so we can use mock_ in place of mocked_
2021-08-12 11:25:57 -07:00
jonathanmetzman 94cfc4fe2f
[cifuzz] Add pruning task (#6188)
Fixes: #6064
2021-08-10 11:10:10 -07:00
jonathanmetzman f0a42fbb1f
[CIFuzz] Force external to use .clusterfuzzlite for build integrations. (#6167) 2021-08-04 16:13:51 -07:00
jonathanmetzman 0bf87a10c4
[cifuzz] Only grab github-specific env vars on github (#6150)
This removes need for non-OSS-Fuzz users to fake using OSS-Fuzz.

Fixes: #6129
2021-08-03 18:13:59 -07:00
jonathanmetzman 432105a31a
[cifuzz][NFC] Move Workspace to workspace_utils. (#6158)
In hindsight, it doesn't have a lot to do with the rest of
config_utils. And config_utils is getting crowded.
2021-08-03 17:58:20 -07:00
jonathanmetzman 6f0aa82cd1
[NFC][cifuzz] Move Workspace from docker into config_utils. (#6117)
It doesn't really fit into docker.
2021-07-27 12:11:53 -07:00
Oliver Chang 69400fb24b
Add a Git backed filestore. (#6088)
- Add storage-repo, storage-repo-branch, and
  storage-repo-branch-coverage fields to the actions, to indicate that
  the Git filestore should be used.
- The CI provided filestore is still used for crashes and builds.
- Replace generic Filestore.upload_directory with typed upload methods
  which matches the download methods.
- Rename upload_latest_build to upload_build to make it more generic.
- Make artifact name prefixes an implementation detail of the store.

For #6052.
2021-07-27 10:46:20 +10:00
jonathanmetzman c67d5b8626
[CIFuzz] Fix build uploading. (#6096)
Previously, the downloaded build was uploaded instead of the new build.
This regression was introduced when the big workspace change was made.
Also, add more logging.
2021-07-22 12:52:07 -07:00
jonathanmetzman 2a3a1e903a
[CIFuzz] Add cifuzz- prefix to all artifacts (#6084)
This will prevent conflicts with other artifacts in the repo.
2021-07-21 11:36:11 -07:00
Oliver Chang c7cab23c20
Make oss-fuzz-project-name optional. (#6071)
Also rename code uses from `project_name` to `oss_fuzz_project_name`, to
be more explicit, and use it to determine whether or not we're running
an OSS-Fuzz project or not.

For external fuzzing #6051.
2021-07-21 05:32:32 +00:00
jonathanmetzman 0672aa4e1f
[CIFuzz] Don't make everything a subdirectory of /out (#5970)
Use different subdirectories of workspace for builds, old builds, coverage reports, corpora and artifacts/testscases.
2021-06-30 07:34:42 -07:00
jonathanmetzman ae5e4228e8
[CIFuzz][ClusterFuzzLite] Implement batch fuzzing (#5963)
[ClusterFuzzLite] Support use of github actions as a filestore
2021-06-25 08:42:10 -07:00
jonathanmetzman 0034bfde5d
[CIFuzz] Refactor HTTP code and use a newer python. (#5842)
* Move to http_utils

* Update dockerfiles

* Dont install python3 from apt if we copy it into image

* fix

* fmt

* Add missing
2021-06-14 09:26:04 -07:00
jonathanmetzman 8c4ad095e9
[CIFuzz] Refactor in preparation for filestore (#5841)
1. Moving the _create_config and create_config functions from build_fuzzers_test.py and run_fuzzers_test.py into test_helpers.py (which is now part of cifuzz instead of infra) and share code between them.
2. Rename artifacts_dir to crashes_dir in run_fuzzers.py. "artifacts" is ambiguous.
3. Make some small changes to pytest.ini to improve debugging.
2021-05-26 09:45:22 -07:00
jonathanmetzman 43c9e9138c
[cifuzz][NFC] Refactor tests (#5106)
1. Use pyfakefs when possible instead of tempdir
2. Favor decorators instead of contextmanagers when mocking for less indentation and greater consistency.
2021-02-03 15:18:56 -08:00
jonathanmetzman 7f150fe75e
[cifuzz] Abstract-away OSS-Fuzz specific bits (#5088)
Abstract away OSS-Fuzz specific bits into the OSSFuzz implementation
of the ClusterFuzzDeployment class. This will make it easier to implement
support for other deployments of ClusterFuzz (including ClusterFuzzLite).
2021-02-03 12:46:19 -08:00