Skip to content

Commit cb4a9a0

Browse files
authored
Avoid check PROD environment if repos are not included in release (#1217)
1 parent 9307923 commit cb4a9a0

File tree

3 files changed

+117
-2
lines changed

3 files changed

+117
-2
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99

1010

1111
### Fixed
12+
* Avoid check PROD environment if repos are not included in release ([#1217](https://github.com/opendevstack/ods-jenkins-shared-library/pull/1217))
13+
* Error generating TIR for infra components ([#1216](https://github.com/opendevstack/ods-jenkins-shared-library/pull/1216))
1214
* Fix Tailor deployment drifts for D, Q envs ([#1055](https://github.com/opendevstack/ods-jenkins-shared-library/pull/1055))
1315

1416
## [4.8.1] - 2025-5-13
@@ -20,7 +22,6 @@
2022
* Do not retrieve components from Jira when using an alternate Jira project and not generating documentation ([#1211](https://github.com/opendevstack/ods-jenkins-shared-library/pull/1211))
2123

2224
### Fixed
23-
* Error generating TIR for infra components ([#1216](https://github.com/opendevstack/ods-jenkins-shared-library/pull/1216))
2425
* Use N/A if there isn't system requirements in DTR ([#1214](https://github.com/opendevstack/ods-jenkins-shared-library/pull/1214))
2526
* Remove missing tests count ([#1213](https://github.com/opendevstack/ods-jenkins-shared-library/pull/1213))
2627

src/org/ods/orchestration/DeployStage.groovy

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,9 @@ class DeployStage extends Stage {
8888
def targetEnvironment = project.buildParams.targetEnvironment
8989
def targetProject = project.targetProject
9090
def installableRepos = this.project.repositories.findAll { repo ->
91-
if (repo.type?.toLowerCase() != MROPipelineUtil.PipelineConfig.REPO_TYPE_ODS_INFRA) {
91+
// We only manage the installable repositories in OpenShift if they are included in the release
92+
if (repo.include
93+
&& repo.type?.toLowerCase() != MROPipelineUtil.PipelineConfig.REPO_TYPE_ODS_INFRA) {
9294
MROPipelineUtil.PipelineConfig.INSTALLABLE_REPO_TYPES.contains(repo.type)
9395
}
9496
}
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
package org.ods.orchestration
2+
3+
import org.ods.orchestration.scheduler.LeVADocumentScheduler
4+
import org.ods.orchestration.util.MROPipelineUtil
5+
import org.ods.orchestration.util.Project
6+
import org.ods.services.BitbucketService
7+
import org.ods.services.GitService
8+
import org.ods.services.OpenShiftService
9+
import org.ods.services.ServiceRegistry
10+
import org.ods.util.ILogger
11+
import org.ods.util.IPipelineSteps
12+
import org.ods.util.Logger
13+
import util.PipelineSteps
14+
import util.SpecHelper
15+
16+
import static util.FixtureHelper.createProject
17+
18+
class DeployStageSpec extends SpecHelper {
19+
Project project
20+
DeployStage deployStage
21+
IPipelineSteps script
22+
LeVADocumentScheduler levaDocScheduler
23+
OpenShiftService openshiftService
24+
MROPipelineUtil util
25+
ILogger logger
26+
GitService gitService
27+
BitbucketService bitbucketService
28+
29+
def setup() {
30+
script = new PipelineSteps()
31+
levaDocScheduler = Mock(LeVADocumentScheduler)
32+
openshiftService = Mock(OpenShiftService)
33+
util = Mock(MROPipelineUtil)
34+
logger = new Logger(script, true)
35+
project = Spy(createProject())
36+
gitService = Mock(GitService)
37+
bitbucketService = Mock(BitbucketService)
38+
39+
createService()
40+
41+
deployStage = Spy(new DeployStage(script, project, project.data.metadata.repositories, "fake"))
42+
}
43+
44+
ServiceRegistry createService() {
45+
def registry = ServiceRegistry.instance
46+
47+
registry.add(IPipelineSteps, script)
48+
registry.add(LeVADocumentScheduler, levaDocScheduler)
49+
registry.add(OpenShiftService, openshiftService)
50+
registry.add(MROPipelineUtil, util)
51+
registry.add(Logger, logger)
52+
registry.add(GitService, gitService)
53+
registry.add(BitbucketService, bitbucketService)
54+
55+
return registry
56+
}
57+
58+
def "deploy in Q with 3 installable repos (all included)"() {
59+
given:
60+
project.buildParams.targetEnvironment = 'qa'
61+
project.buildParams.targetEnvironmentToken = 'Q'
62+
project.targetProject = "net-test"
63+
64+
when:
65+
deployStage.run()
66+
67+
then:
68+
1 * bitbucketService.getUrl() >> "https://bitbucket"
69+
1 * project.targetClusterIsExternal >> false
70+
1 * openshiftService.envExists(project.targetProject) >> true
71+
}
72+
73+
def "deploy in Q with 3 installable repos (none included)"() {
74+
given:
75+
project.buildParams.targetEnvironment = 'qa'
76+
project.buildParams.targetEnvironmentToken = 'Q'
77+
project.targetProject = "net-test"
78+
for (repo in project.data.metadata.repositories) {
79+
repo.include = false
80+
}
81+
82+
when:
83+
deployStage.run()
84+
85+
then:
86+
1 * bitbucketService.getUrl() >> "https://bitbucket"
87+
0 * project.targetClusterIsExternal >> false
88+
0 * openshiftService.envExists(project.targetProject) >> true
89+
}
90+
91+
def "deploy in Q with 2 installable repos (none included) and one infra"() {
92+
given:
93+
project.buildParams.targetEnvironment = 'qa'
94+
project.buildParams.targetEnvironmentToken = 'Q'
95+
project.targetProject = "net-test"
96+
for (repo in project.data.metadata.repositories) {
97+
if (repo.id == "demo-app-catalogue") {
98+
repo.type = "ods-infra"
99+
} else {
100+
repo.include = false
101+
}
102+
}
103+
104+
when:
105+
deployStage.run()
106+
107+
then:
108+
1 * bitbucketService.getUrl() >> "https://bitbucket"
109+
0 * project.targetClusterIsExternal >> false
110+
0 * openshiftService.envExists(project.targetProject) >> true
111+
}
112+
}

0 commit comments

Comments
 (0)