From 5ce2aced66b88b84a8aadcf415d8f8cfd90b8dd1 Mon Sep 17 00:00:00 2001 From: flacatus Date: Wed, 2 Oct 2024 11:07:07 +0200 Subject: [PATCH 1/2] feat(KONFKUX-4006): Add mage engine rules for build-service repo --- magefiles/magefile.go | 3 +- magefiles/rulesengine/engine/engine.go | 1 + magefiles/rulesengine/repos/build_service.go | 54 ++++++++++++++++++++ 3 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 magefiles/rulesengine/repos/build_service.go diff --git a/magefiles/magefile.go b/magefiles/magefile.go index 8eeee3ecc7..f2d9dd9a7e 100644 --- a/magefiles/magefile.go +++ b/magefiles/magefile.go @@ -304,7 +304,8 @@ func (ci CI) TestE2E() error { // Eventually we'll introduce mage rules for all repositories, so this condition won't be needed anymore if pr.RepoName == "e2e-tests" || pr.RepoName == "integration-service" || - pr.RepoName == "release-service" || pr.RepoName == "image-controller" { + pr.RepoName == "release-service" || pr.RepoName == "image-controller" || + pr.RepoName == "build-service" { return engine.MageEngine.RunRulesOfCategory("ci", rctx) } diff --git a/magefiles/rulesengine/engine/engine.go b/magefiles/rulesengine/engine/engine.go index 98f5046644..d289c2d088 100644 --- a/magefiles/rulesengine/engine/engine.go +++ b/magefiles/rulesengine/engine/engine.go @@ -20,6 +20,7 @@ var MageEngine = rulesengine.RuleEngine{ "release-service": repos.ReleaseServiceCICatalog, "integration-service": repos.IntegrationServiceCICatalog, "image-controller": repos.ImageControllerCICatalog, + "build-service": repos.BuildServiceCICatalog, // TODO: to be implemented in a follow-up PR //"infra-deployments": repos.InfraDeploymentsCIChainCatalog, }, diff --git a/magefiles/rulesengine/repos/build_service.go b/magefiles/rulesengine/repos/build_service.go new file mode 100644 index 0000000000..c831ab17a2 --- /dev/null +++ b/magefiles/rulesengine/repos/build_service.go @@ -0,0 +1,54 @@ +package repos + +import ( + "fmt" + "os" + + "github.com/konflux-ci/e2e-tests/magefiles/rulesengine" + "k8s.io/klog" +) + +var BuildServiceCICatalog = rulesengine.RuleCatalog{BuildServiceCIRule} + +var BuildServiceCIRule = rulesengine.Rule{Name: "build-service repo CI Workflow Rule", + Description: "Execute the full workflow for e2e-tests repo in CI", + Condition: rulesengine.All{ + &BuildServiceRepoSetDefaultSettingsRule, + rulesengine.Any{&InfraDeploymentsPRPairingRule, rulesengine.None{&InfraDeploymentsPRPairingRule}}, + &PreflightInstallGinkgoRule, + &BootstrapClusterWithSprayProxyRuleChain, + }, + Actions: []rulesengine.Action{rulesengine.ActionFunc(ExecuteTestAction)}, +} + +var BuildServiceRepoSetDefaultSettingsRule = rulesengine.Rule{Name: "General Required Settings for build-service repository jobs", + Description: "Set SprayProxy settings to true for build-service jobs before bootstrap", + Condition: rulesengine.Any{ + IsBuildServiceRepoPR, + }, + Actions: []rulesengine.Action{rulesengine.ActionFunc(func(rctx *rulesengine.RuleCtx) error { + rctx.RequiresSprayProxyRegistering = true + klog.Info("require sprayproxy registering is set to TRUE") + + rctx.LabelFilter = "build-service" + klog.Info("setting 'build-service' test label") + + if rctx.DryRun { + klog.Info("setting up env vars for deploying component image") + return nil + } + rctx.ComponentEnvVarPrefix = "IMAGE_CONTROLLER" + // TODO keep only "KONFLUX_CI" option once we migrate off openshift-ci + if os.Getenv("KONFLUX_CI") == "true" { + rctx.ComponentImageTag = fmt.Sprintf("on-pr-%s", rctx.PrCommitSha) + } else { + rctx.ComponentImageTag = "redhat-appstudio-build-service-image" + } + return SetEnvVarsForComponentImageDeployment(rctx) + })}, +} + +var IsBuildServiceRepoPR = rulesengine.ConditionFunc(func(rctx *rulesengine.RuleCtx) (bool, error) { + klog.Info("checking if repository is build-service") + return rctx.RepoName == "build-service", nil +}) From f7ea7490f1d4510926a85f6cea4a1fe3201782e5 Mon Sep 17 00:00:00 2001 From: flacatus Date: Wed, 2 Oct 2024 14:42:17 +0200 Subject: [PATCH 2/2] feat(KONFKUX-4006): add build service mage rule --- magefiles/rulesengine/repos/build_service.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/magefiles/rulesengine/repos/build_service.go b/magefiles/rulesengine/repos/build_service.go index c831ab17a2..26e10d409d 100644 --- a/magefiles/rulesengine/repos/build_service.go +++ b/magefiles/rulesengine/repos/build_service.go @@ -37,7 +37,7 @@ var BuildServiceRepoSetDefaultSettingsRule = rulesengine.Rule{Name: "General Req klog.Info("setting up env vars for deploying component image") return nil } - rctx.ComponentEnvVarPrefix = "IMAGE_CONTROLLER" + rctx.ComponentEnvVarPrefix = "BUILD_SERVICE" // TODO keep only "KONFLUX_CI" option once we migrate off openshift-ci if os.Getenv("KONFLUX_CI") == "true" { rctx.ComponentImageTag = fmt.Sprintf("on-pr-%s", rctx.PrCommitSha)