Documentation
¶
Index ¶
- type FallbackReleases
- type ReleaseFallback
- func (r *ReleaseFallback) Analyze(testID string, variants map[string]string, report *testdetails.TestComparison) error
- func (r *ReleaseFallback) PostAnalysis(testKey crtest.Identification, testStats *testdetails.TestComparison) error
- func (r *ReleaseFallback) PreAnalysis(testKey crtest.Identification, testStats *testdetails.TestComparison) error
- func (r *ReleaseFallback) PreTestDetailsAnalysis(testKey crtest.KeyWithVariants, status *bq.TestJobRunStatuses) error
- func (r *ReleaseFallback) Query(ctx context.Context, wg *sync.WaitGroup, allJobVariants crtest.JobVariants, ...)
- func (r *ReleaseFallback) QueryTestDetails(ctx context.Context, wg *sync.WaitGroup, errCh chan error, ...)
- func (r *ReleaseFallback) TestDetailsAnalyze(report *testdetails.Report) error
- type ReleaseTestMap
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FallbackReleases ¶
type FallbackReleases struct {
Releases map[string]ReleaseTestMap
}
type ReleaseFallback ¶
type ReleaseFallback struct {
// contains filtered or unexported fields
}
ReleaseFallback middleware allows us to use the best pass rate data from the past several releases for our basis instead of just the requested basis. This helps prevent minor gradual degredation of quality, and also simplifies the process of accepting intentional regressions shortly before release, as we'll then automatically use the data from prior releases.
It is responsible for querying basis test status for those several releases, and then replacing any basis test stats with a better releases test stats, when appropriate. This is done when we have sufficient test coverage, and a better pass rate.
func NewReleaseFallbackMiddleware ¶
func NewReleaseFallbackMiddleware( client *bqcachedclient.Client, reqOptions reqopts.RequestOptions, releaseConfigs []v1.Release, ) *ReleaseFallback
func (*ReleaseFallback) Analyze ¶
func (r *ReleaseFallback) Analyze(testID string, variants map[string]string, report *testdetails.TestComparison) error
func (*ReleaseFallback) PostAnalysis ¶
func (r *ReleaseFallback) PostAnalysis(testKey crtest.Identification, testStats *testdetails.TestComparison) error
func (*ReleaseFallback) PreAnalysis ¶
func (r *ReleaseFallback) PreAnalysis(testKey crtest.Identification, testStats *testdetails.TestComparison) error
PreAnalysis looks for a better pass rate across our fallback releases for the given test stats. It then swaps them out and leaves an explanation before handing back to the core for analysis.
func (*ReleaseFallback) PreTestDetailsAnalysis ¶
func (r *ReleaseFallback) PreTestDetailsAnalysis(testKey crtest.KeyWithVariants, status *bq.TestJobRunStatuses) error
func (*ReleaseFallback) Query ¶
func (r *ReleaseFallback) Query(ctx context.Context, wg *sync.WaitGroup, allJobVariants crtest.JobVariants, _, _ chan map[string]bq.TestStatus, errCh chan error)
func (*ReleaseFallback) QueryTestDetails ¶
func (r *ReleaseFallback) QueryTestDetails(ctx context.Context, wg *sync.WaitGroup, errCh chan error, allJobVariants crtest.JobVariants)
func (*ReleaseFallback) TestDetailsAnalyze ¶
func (r *ReleaseFallback) TestDetailsAnalyze(report *testdetails.Report) error
type ReleaseTestMap ¶
type ReleaseTestMap struct {
crtest.ReleaseTimeRange
Tests map[string]bq.TestStatus
}