Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion magefiles/magefile.go
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,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" {
if pr.RepoName == "e2e-tests" || pr.RepoName == "integration-service" ||
pr.RepoName == "release-service" || pr.RepoName == "image-controller" {
return engine.MageEngine.RunRulesOfCategory("ci", rctx)
}

Expand Down
1 change: 1 addition & 0 deletions magefiles/rulesengine/engine/engine.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ var MageEngine = rulesengine.RuleEngine{
"e2e-repo": repos.E2ECIChainCatalog,
"release-service": repos.ReleaseServiceCICatalog,
"integration-service": repos.IntegrationServiceCICatalog,
"image-controller": repos.ImageControllerCICatalog,
// TODO: to be implemented in a follow-up PR
//"infra-deployments": repos.InfraDeploymentsCIChainCatalog,
},
Expand Down
54 changes: 54 additions & 0 deletions magefiles/rulesengine/repos/image_controller.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package repos

import (
"fmt"
"os"

"github.com/konflux-ci/e2e-tests/magefiles/rulesengine"
"k8s.io/klog"
)

var ImageControllerCICatalog = rulesengine.RuleCatalog{ImageControllerCIRule}

var ImageControllerCIRule = rulesengine.Rule{Name: "image-controller repo CI Workflow Rule",
Description: "Execute the full workflow for e2e-tests repo in CI",
Condition: rulesengine.All{
&ImageControllerRepoSetDefaultSettingsRule,
rulesengine.Any{&InfraDeploymentsPRPairingRule, rulesengine.None{&InfraDeploymentsPRPairingRule}},
&PreflightInstallGinkgoRule,
&BootstrapClusterWithSprayProxyRuleChain,
},
Actions: []rulesengine.Action{rulesengine.ActionFunc(ExecuteTestAction)},
}

var ImageControllerRepoSetDefaultSettingsRule = rulesengine.Rule{Name: "General Required Settings for image-controller repository jobs",
Description: "Set SprayProxy settings to true for image-controller jobs before bootstrap",
Condition: rulesengine.Any{
IsImageControllerRepoPR,
},
Actions: []rulesengine.Action{rulesengine.ActionFunc(func(rctx *rulesengine.RuleCtx) error {
rctx.RequiresSprayProxyRegistering = true
klog.Info("require sprayproxy registering is set to TRUE")

rctx.LabelFilter = "image-controller"
klog.Info("setting 'image-controller' 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-image-controller-image"
}
return SetEnvVarsForComponentImageDeployment(rctx)
})},
}

var IsImageControllerRepoPR = rulesengine.ConditionFunc(func(rctx *rulesengine.RuleCtx) (bool, error) {
klog.Info("checking if repository is image-controller")
return rctx.RepoName == "image-controller", nil
})