Skip to content

Commit 0550d3c

Browse files
Andrew Pattersonbalasankarc
andcommitted
Merge branch 'deduplicate-package-build-jobs' into 'master'
Drop trigger build jobs in favor of normal branch build jobs Closes #6333 and #7187 See merge request https://gitlab.com/gitlab-org/omnibus-gitlab/-/merge_requests/7497 Merged-by: Andrew Patterson <[email protected]> Approved-by: Clemens Beck <[email protected]> Approved-by: Andrew Patterson <[email protected]> Reviewed-by: Balasankar 'Balu' C <[email protected]> Reviewed-by: Clemens Beck <[email protected]> Co-authored-by: Balasankar 'Balu' C <[email protected]>
2 parents 64a47d3 + b7cb856 commit 0550d3c

File tree

8 files changed

+50
-115
lines changed

8 files changed

+50
-115
lines changed

.gitlab-ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ variables:
6060
DOCS_GITLAB_REPO_SUFFIX: "omnibus"
6161
CACHE_KEY_SUFFIX: '-v3'
6262
CACHE_EDITION: "CE"
63+
CACHE_POLICY: 'pull-push'
6364
ISSUE_BOT_LABELS_EXTRA: "group::distribution"
6465
BUNDLER_VERSION: "2.5.6"
6566
# NOTE: When `NEXT_RUBY_VERSION` is updated, flip

gitlab-ci-config/dev-gitlab-org.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,13 @@
3434
.branch-cache: &branch-cache
3535
key: "${CI_JOB_NAME}-${BUILDER_IMAGE_REVISION}-${CACHE_EDITION}${CACHE_KEY_SUFFIX}"
3636
paths: !reference [.cache-paths]
37+
policy: $CACHE_POLICY
3738

3839
.tag-cache: &tag-cache
3940
# Use the same cache key as branch builds, by manually appending `-branch` substring.
4041
key: "${CI_JOB_NAME}-branch-${BUILDER_IMAGE_REVISION}-${CACHE_EDITION}${CACHE_KEY_SUFFIX}"
4142
paths: !reference [.cache-paths]
43+
policy: $CACHE_POLICY
4244

4345
.branch_template: &branch_build
4446
stage: package
@@ -282,6 +284,11 @@ Ubuntu-20.04-branch:
282284
Ubuntu-22.04-branch:
283285
image: "${BUILDER_IMAGE_REGISTRY}/ubuntu_22.04:${BUILDER_IMAGE_REVISION}"
284286
extends: .branch_template
287+
rules:
288+
- !reference [.default_rules, rules]
289+
- if: '$PIPELINE_TYPE =~ /_(NIGHTLY|BRANCH)_BUILD_PIPELINE$/'
290+
- if: '$PIPELINE_TYPE =~ /TRIGGERED_(CE|EE)_PIPELINE/'
291+
- if: '$PIPELINE_TYPE == "TRIGGER_CACHE_UPDATE_PIPELINE"'
285292

286293
Debian-10-branch:
287294
image: "${BUILDER_IMAGE_REGISTRY}/debian_10:${BUILDER_IMAGE_REVISION}"
@@ -307,6 +314,12 @@ Ubuntu-20.04-arm64-branch:
307314
Ubuntu-22.04-arm64-branch:
308315
image: "${BUILDER_IMAGE_REGISTRY}/ubuntu_22.04_arm64:${BUILDER_IMAGE_REVISION}"
309316
extends: .arm64_branch_template
317+
rules:
318+
- !reference [.default_rules, rules]
319+
- if: '$PIPELINE_TYPE =~ /_(NIGHTLY|BRANCH)_BUILD_PIPELINE$/'
320+
- if: '$PIPELINE_TYPE =~ /TRIGGERED_(CE|EE)_PIPELINE/'
321+
when: manual
322+
allow_failure: true
310323
CentOS-7-branch:
311324
image: "${BUILDER_IMAGE_REGISTRY}/centos_7:${BUILDER_IMAGE_REVISION}"
312325
extends: .branch_template
@@ -368,6 +381,15 @@ Ubuntu-18.04-fips-branch:
368381
Ubuntu-20.04-fips-branch:
369382
image: "${BUILDER_IMAGE_REGISTRY}/ubuntu_20.04_fips:${BUILDER_IMAGE_REVISION}"
370383
extends: .fips_branch_template
384+
rules:
385+
- !reference [.default_rules, rules]
386+
- if: '$PIPELINE_TYPE == "EE_NIGHTLY_BUILD_PIPELINE"'
387+
- if: '$PIPELINE_TYPE == "EE_BRANCH_BUILD_PIPELINE"'
388+
when: manual
389+
allow_failure: true
390+
- if: '$PIPELINE_TYPE =~ /TRIGGERED_(CE|EE)_PIPELINE/'
391+
when: manual
392+
allow_failure: true
371393

372394
Docker-branch:
373395
extends: .docker_job
@@ -388,6 +410,7 @@ Docker-branch:
388410
rules:
389411
- !reference [.default_rules, rules]
390412
- if: '$PIPELINE_TYPE =~ /_(NIGHTLY|BRANCH)_BUILD_PIPELINE$/'
413+
- if: '$PIPELINE_TYPE =~ /TRIGGERED_(CE|EE)_PIPELINE/'
391414

392415
QA-branch:
393416
extends: .docker_job

gitlab-ci-config/gitlab-com.yml

Lines changed: 14 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
- gems
4343
- assets_cache
4444
- node_modules
45-
policy: pull
45+
policy: $CACHE_POLICY
4646

4747
.trigger-fips-package-cache:
4848
cache:
@@ -52,7 +52,7 @@
5252
- gems
5353
- assets_cache
5454
- node_modules
55-
policy: pull
55+
policy: $CACHE_POLICY
5656

5757
.install-gems: &install-gems
5858
- gem install bundler:${BUNDLER_VERSION}
@@ -133,6 +133,8 @@
133133
junit: junit_rspec.xml
134134

135135
.base-trigger-job-variables:
136+
# In trigger jobs, we don't want to pollute cache
137+
CACHE_POLICY: 'pull'
136138
ALTERNATIVE_SOURCES: 'true'
137139
SECURITY_SOURCES: ${SECURITY_SOURCES}
138140
BUILDER_IMAGE_REVISION: ${BUILDER_IMAGE_REVISION}
@@ -178,17 +180,6 @@
178180
when: manual
179181
variables: !reference [.ce-trigger-job-variables]
180182

181-
.trigger-pipeline:
182-
stage: trigger-qa
183-
image: "${RUBY_IMAGE}"
184-
allow_failure: true
185-
rules:
186-
- if: '$PIPELINE_TYPE =~ /TRIGGERED_(CE|EE)_PIPELINE/'
187-
when: manual
188-
needs:
189-
- job: Trigger:package
190-
artifacts: false
191-
192183
.review-docs:
193184
image: "${RUBY_IMAGE}-alpine"
194185
stage: post-test
@@ -259,22 +250,6 @@ update-gems-cache-for-docker-jobs:
259250
- update-gems-cache
260251
- .docker_job
261252

262-
update-trigger-package-cache:
263-
extends: .trigger-package-cache
264-
stage: update-cache
265-
image: "${BUILDER_IMAGE_REGISTRY}/ubuntu_22.04:${BUILDER_IMAGE_REVISION}"
266-
script:
267-
- !reference [.build-package]
268-
- echo "Cache is up to date!"
269-
cache:
270-
policy: push # We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up.
271-
tags: !reference [.distribution-amd64-tags]
272-
rules:
273-
- if: '$PIPELINE_TYPE == "TRIGGER_CACHE_UPDATE_PIPELINE"'
274-
needs:
275-
- job: fetch-assets
276-
optional: true
277-
278253
###########################
279254
# Branch pipeline #
280255
###########################
@@ -526,25 +501,6 @@ update-knapsack:
526501
# Trigger Pipeline #
527502
############################
528503

529-
Trigger:package:
530-
extends: .trigger-package-common
531-
variables:
532-
BASE_OS: "ubuntu_22.04"
533-
PACKAGE_DIRECTORY: "pkg/ubuntu-jammy"
534-
535-
Trigger:package:fips:
536-
extends:
537-
- .trigger-package-common
538-
- .trigger-fips-package-cache
539-
variables:
540-
USE_SYSTEM_SSL: "true"
541-
BASE_OS: "ubuntu_20.04_fips"
542-
PACKAGE_DIRECTORY: "pkg/ubuntu-focal_fips"
543-
allow_failure: true
544-
rules:
545-
- if: '$PIPELINE_TYPE == "TRIGGERED_EE_PIPELINE"'
546-
when: manual
547-
548504
package_size_check:
549505
extends: .trigger-package-cache
550506
image: "${BUILDER_IMAGE_REGISTRY}/ubuntu_22.04:${BUILDER_IMAGE_REVISION}"
@@ -553,29 +509,11 @@ package_size_check:
553509
- bundle exec rake build:package:generate_sizefile
554510
- bundle exec rake check:package_size
555511
needs:
556-
- job: Trigger:package
512+
- job: Ubuntu-22.04-branch
557513
artifacts: false
558514
rules:
559515
- if: '$PIPELINE_TYPE =~ /TRIGGERED_(CE|EE)_PIPELINE/'
560516

561-
Trigger:gitlab-docker:
562-
extends:
563-
- .docker_job
564-
- .gems-cache
565-
stage: trigger-docker
566-
script:
567-
- bundle exec rake docker:build:image
568-
- bundle exec rake docker:push:triggered
569-
rules:
570-
- if: '$PIPELINE_TYPE =~ /TRIGGERED_(CE|EE)_PIPELINE/'
571-
- if: '$PIPELINE_TYPE == "TRIGGER_CACHE_UPDATE_PIPELINE"'
572-
needs:
573-
- job: Trigger:package
574-
artifacts: false
575-
- job: generate-facts
576-
optional: true
577-
artifacts: true
578-
579517
qa-subset-test:
580518
extends:
581519
- .qa-template
@@ -602,9 +540,10 @@ qa-subset-test:
602540
needs:
603541
- job: generate-facts
604542
artifacts: true
605-
- job: Trigger:package
543+
- job: Ubuntu-22.04-branch
606544
artifacts: false
607-
- job: Trigger:gitlab-docker
545+
- job: Docker-branch
546+
optional: true
608547
artifacts: false
609548

610549
qa-remaining-test-manual:
@@ -629,9 +568,10 @@ qa-remaining-test-manual:
629568
needs:
630569
- job: generate-facts
631570
artifacts: true
632-
- job: Trigger:package
571+
- job: Ubuntu-22.04-branch
633572
artifacts: false
634-
- job: Trigger:gitlab-docker
573+
- job: Docker-branch
574+
optional: true
635575
artifacts: false
636576

637577
letsencrypt-test:
@@ -647,7 +587,7 @@ letsencrypt-test:
647587
when: never
648588
- if: '$PIPELINE_TYPE =~ /TRIGGERED_(CE|EE)_PIPELINE/'
649589
needs:
650-
- job: Trigger:gitlab-docker
590+
- job: Docker-branch
651591
artifacts: false
652592

653593
RAT:
@@ -672,10 +612,6 @@ RAT:
672612
needs:
673613
- job: Ubuntu-22.04-branch
674614
artifacts: false
675-
optional: true
676-
- job: Trigger:package
677-
artifacts: false
678-
optional: true
679615
- job: generate-facts
680616
artifacts: true
681617

@@ -687,10 +623,6 @@ RAT:FIPS:
687623
needs:
688624
- job: Ubuntu-20.04-fips-branch
689625
artifacts: false
690-
optional: true
691-
- job: Trigger:package:fips
692-
artifacts: false
693-
optional: true
694626
- job: generate-facts
695627
artifacts: true
696628

@@ -712,7 +644,7 @@ GET:Geo:
712644
when: manual
713645
allow_failure: true
714646
needs:
715-
- job: Trigger:package
647+
- job: Ubuntu-22.04-branch
716648
artifacts: false
717649
- job: generate-facts
718650
artifacts: true
@@ -793,7 +725,7 @@ pages:
793725

794726
.build-package-on-all-os-vars:
795727
extends: .base-trigger-job-variables
796-
SKIP_JOB_REGEX: '/Ubuntu-22.04|Docker|QA/'
728+
SKIP_JOB_REGEX: '/Ubuntu-22.04|Ubuntu-20.04-fips|Docker|QA/'
797729
PIPELINE_TYPE: "${EDITION}_BRANCH_BUILD_PIPELINE"
798730
CACHE_EDITION: ${EDITION}
799731
ee: ${ee}

gitlab-ci-config/workflow-rules.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ workflow:
2828
variables:
2929
PIPELINE_TYPE: TRIGGER_CACHE_UPDATE_PIPELINE
3030
CACHE_EDITION: "GITLAB"
31+
# We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up.
32+
CACHE_POLICY: 'push'
3133
- if: '$PIPELINE_TYPE == null && $CI_PROJECT_PATH == $QA_PROJECT_PATH && $CACHE_UPDATE == "true"'
3234
variables:
3335
PIPELINE_TYPE: TRIGGER_CACHE_UPDATE_PIPELINE

lib/gitlab/build/facts.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ def qa_trigger_vars
9191
GITLAB_SEMVER_VERSION=#{Build::Info::Git.latest_stable_tag.tr('+', '-')}
9292
RAT_REFERENCE_ARCHITECTURE=#{Gitlab::Util.get_env('RAT_REFERENCE_ARCHITECTURE') || 'omnibus-gitlab-mrs'}
9393
RAT_FIPS_REFERENCE_ARCHITECTURE=#{Gitlab::Util.get_env('RAT_FIPS_REFERENCE_ARCHITECTURE') || 'omnibus-gitlab-mrs-fips-ubuntu'}
94-
RAT_PACKAGE_URL=#{Build::Info::CI.package_download_url}
95-
RAT_FIPS_PACKAGE_URL=#{Build::Info::CI.fips_package_download_url}
94+
RAT_PACKAGE_URL=#{Build::Info::CI.package_download_url(fips: false)}
95+
RAT_FIPS_PACKAGE_URL=#{Build::Info::CI.package_download_url(job_name: 'Ubuntu-20.04', fips: true)}
9696
]
9797
end
9898

lib/gitlab/build/info/ci.rb

Lines changed: 5 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -38,26 +38,6 @@ def commit_ref_slug
3838
Gitlab::Util.get_env('CI_COMMIT_REF_SLUG')
3939
end
4040

41-
def package_download_url
42-
return Gitlab::Util.get_env('PACKAGE_URL') if Gitlab::Util.get_env('PACKAGE_URL')
43-
44-
# For builds running in dev.gitlab.org, or nightly pipelines in .com,
45-
# use the artifact from `Ubuntu-22.04-branch` job. For the other build,
46-
# which is essentially in triggered pipeline, use artifact from
47-
# `Trigger:package` job.
48-
if /dev.gitlab.org/.match?(Build::Info::CI.api_v4_url) || Build::Check.is_nightly?
49-
Build::Info::CI.branch_build_package_download_url
50-
else
51-
Build::Info::CI.triggered_package_download_url(fips: false)
52-
end
53-
end
54-
55-
def fips_package_download_url
56-
return Gitlab::Util.get_env('FIPS_PACKAGE_URL') if Gitlab::Util.get_env('FIPS_PACKAGE_URL')
57-
58-
Build::Info::CI.triggered_package_download_url(fips: false)
59-
end
60-
6141
def artifact_url(job_name, file_path)
6242
client = Gitlab::APIClient.new
6343
target_job_id = client.get_job_id(job_name)
@@ -67,15 +47,10 @@ def artifact_url(job_name, file_path)
6747
URI("#{api_v4_url}/projects/#{project_id}/jobs/#{target_job_id}/artifacts/#{file_path}")
6848
end
6949

70-
def triggered_package_download_url(fips: Build::Check.use_system_ssl?)
71-
folder = fips ? 'ubuntu-focal_fips' : 'ubuntu-jammy'
72-
job_name = fips ? 'Trigger:package:fips' : 'Trigger:package'
73-
package_path = "pkg/#{folder}/gitlab.deb"
74-
75-
artifact_url(job_name, package_path)
76-
end
50+
def package_download_url(job_name: "Ubuntu-22.04", arch: 'amd64', fips: Build::Check.use_system_ssl?)
51+
return Gitlab::Util.get_env('FIPS_PACKAGE_URL') if fips && Gitlab::Util.get_env('FIPS_PACKAGE_URL')
52+
return Gitlab::Util.get_env('PACKAGE_URL') if !fips && Gitlab::Util.get_env('PACKAGE_URL')
7753

78-
def branch_build_package_download_url(job_name: "Ubuntu-22.04", arch: 'amd64')
7954
case job_name
8055
when /AlmaLinux-8/
8156
# In EL world, amd64 is called x86_64
@@ -95,6 +70,8 @@ def branch_build_package_download_url(job_name: "Ubuntu-22.04", arch: 'amd64')
9570
folder = "#{folder}_aarch64"
9671
end
9772

73+
job_name = "#{job_name}-fips" if fips
74+
9875
job_name = "#{job_name}-branch" unless Build::Info::CI.tag_name
9976

10077
package_path = "pkg/#{folder}/#{package_file_name}"

lib/gitlab/package_size.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class PackageSizeCheck
1313

1414
class << self
1515
def fetch_sizefile
16-
sizefile_url = Build::Info::CI.artifact_url("Trigger:package", "pkg/ubuntu-jammy/gitlab.deb.size")
16+
sizefile_url = URI("#{Build::Info::CI.package_download_url}.size")
1717

1818
# We have to use net/http here because `gitlab` gem's `download_job_artifact_file`
1919
# method doesn't support plain text files. It has to be either binary or valid JSON.

spec/lib/gitlab/build/image_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ def self.dockerhub_image_name
159159
"PACKAGECLOUD_REPO=download-package",
160160
"RELEASE_PACKAGE=gitlab-ce",
161161
"RELEASE_VERSION=12.121.12-ce.0",
162-
"DOWNLOAD_URL=https://gitlab.com/api/v4/projects/20699/jobs/999999/artifacts/pkg/ubuntu-jammy/gitlab.deb",
162+
"DOWNLOAD_URL=https://gitlab.com/api/v4/projects/20699/jobs/999999/artifacts/pkg/ubuntu-jammy/gitlab-ce_12.121.12-ce.0_amd64.deb",
163163
"CI_JOB_TOKEN=NOT-CI-JOB-TOKEN\n"
164164
].join("\n")
165165
end
@@ -180,7 +180,7 @@ def self.dockerhub_image_name
180180
"PACKAGECLOUD_REPO=download-package",
181181
"RELEASE_PACKAGE=gitlab-ee",
182182
"RELEASE_VERSION=12.121.12-ee.0",
183-
"DOWNLOAD_URL=https://gitlab.com/api/v4/projects/20699/jobs/999999/artifacts/pkg/ubuntu-jammy/gitlab.deb",
183+
"DOWNLOAD_URL=https://gitlab.com/api/v4/projects/20699/jobs/999999/artifacts/pkg/ubuntu-jammy/gitlab-ee_12.121.12-ee.0_amd64.deb",
184184
"CI_JOB_TOKEN=NOT-CI-JOB-TOKEN\n"
185185
].join("\n")
186186
end

0 commit comments

Comments
 (0)