CI/CD Pipeline
The CI/CD pipeline for Jaeger-lib leverages GitHub Actions to automate testing, linting, and code coverage reporting. The workflow is triggered upon push to the main
branch and pull requests.
Testing
- Unit tests are executed using the
go test
command. - Tests are run against the
main
branch: actions?query=branch%3Amain - The testing workflow includes code coverage using the
go tool cover
command and reports coverage to Coveralls.io. - The badges on the
README.md
display the status and coverage results: README.md
Linting
- Code linting is performed using
golint
andgofmt
. - The linting workflow ensures code adheres to style guidelines and best practices.
Code Coverage
- Code coverage is measured using the
go tool cover
command. - Reports are generated as HTML files and uploaded to Coveralls.io for visualization.
- The
coveralls.io
badge in theREADME.md
displays the current coverage status: README.md
Contributing
- Contributions are welcome and encouraged.
- The project utilizes a Developer’s Certificate of Origin (DCO) to ensure proper attribution for contributions.
- For more information on contributing, refer to the CONTRIBUTING.md file.
## Top-Level Directory Explanations
<a class='local-link directory-link' data-ref="metrics/" href="#metrics/">metrics/</a> - This directory contains the metrics implementation for the Jaeger Tracing library.
<a class='local-link directory-link' data-ref="metrics/adapters/" href="#metrics/adapters/">metrics/adapters/</a> - This subdirectory contains the various metric adapters for different backends.
<a class='local-link directory-link' data-ref="metrics/expvar/" href="#metrics/expvar/">metrics/expvar/</a> - This subdirectory contains the implementation for exposing metrics as HTTP endpoints using the expvar package.
<a class='local-link directory-link' data-ref="metrics/fork/" href="#metrics/fork/">metrics/fork/</a> - This subdirectory contains the implementation for forking metrics between processes.
<a class='local-link directory-link' data-ref="metrics/go-kit/" href="#metrics/go-kit/">metrics/go-kit/</a> - This subdirectory contains the Go-Kit integration for the Jaeger Tracing library.
<a class='local-link directory-link' data-ref="metrics/go-kit/influx/" href="#metrics/go-kit/influx/">metrics/go-kit/influx/</a> - This subdirectory contains the InfluxDB implementation for the Go-Kit integration.
<a class='local-link directory-link' data-ref="metrics/metricstest/" href="#metrics/metricstest/">metrics/metricstest/</a> - This subdirectory contains the testing implementation for the metrics.
<a class='local-link directory-link' data-ref="metrics/prometheus/" href="#metrics/prometheus/">metrics/prometheus/</a> - This subdirectory contains the Prometheus implementation for the Jaeger Tracing library.
<a class='local-link directory-link' data-ref="metrics/tally/" href="#metrics/tally/">metrics/tally/</a> - This subdirectory contains the implementation for counting metrics using the tally package.
<a class='local-link directory-link' data-ref="sample/" href="#sample/">sample/</a> - This directory contains a sample implementation for the Jaeger Tracing library.
<a class='local-link directory-link' data-ref="scripts/" href="#scripts/">scripts/</a> - This directory contains various scripts for the project.