Skip to content

Latest commit

 

History

History
13 lines (10 loc) · 1.79 KB

repository-layout.adoc

File metadata and controls

13 lines (10 loc) · 1.79 KB

Repository layout

The repo follows the Standard Go Project Layout. While this layout is not actually a Go standard, it is used in many projects and is well suited for situations where there are lots of other things beside Go code, which is the case for ods-pipeline.

The most important pieces are:

  • build/images: `Dockerfile`s for the various container images in use. These images back Tekton tasks or the pipeline manager.

  • cmd: Main executables. These are installed (in different combinations) into the container images.

  • deploy: OpenShift/K8S resource definitions, such as Task resources. The tasks make use of the images built via build/images and released to ghcr.io. Their script calls an executables built from the cmd folder.

  • docs: Design and user documents

  • internal/manager: Implementation of the webhook receiver and pipeline manager - it creates and modifies the actual Tekton pipelines on the fly based on the config found in the repository triggering the webhook request.

  • pkg: Packages shared by the various main executables and the pipeline manager. These packages are the public interface and may be used outside this repo (e.g. by custom tasks). Example of packages are bitbucket (a Bitbucket Server API v1.0 client), sonar (a SonarQube client exposing API endpoints, scanner CLI and report CLI in one unified interface), nexus (a Nexus client for uploading, downloading and searching for assets) and config (the ODS configuration specification).

  • test: Test scripts and test data. The actual tests are located in the e2e subfolder. Those tests make use files located in the testdata subfolder, in particular those in testdata/workspaces, which provide sample workspaces used by the Tekton task runs.