Skip to content

Commit e8d0c32

Browse files
Andrew PattersonRobert Marshall
andcommitted
Merge branch 'revert-cache-changes' into 'master'
Revert recently introduced cache changes See merge request https://gitlab.com/gitlab-org/omnibus-gitlab/-/merge_requests/7521 Merged-by: Andrew Patterson <[email protected]> Approved-by: Jenny Kim <[email protected]> Approved-by: Andrew Patterson <[email protected]> Co-authored-by: Robert Marshall <[email protected]>
2 parents 874a701 + aea984c commit e8d0c32

File tree

8 files changed

+115
-51
lines changed

8 files changed

+115
-51
lines changed

.gitlab-ci.yml

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

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

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,11 @@
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
3837

3938
.tag-cache: &tag-cache
4039
# Use the same cache key as branch builds, by manually appending `-branch` substring.
4140
key: "${CI_JOB_NAME}-branch-${BUILDER_IMAGE_REVISION}-${CACHE_EDITION}${CACHE_KEY_SUFFIX}"
4241
paths: !reference [.cache-paths]
43-
policy: $CACHE_POLICY
4442

4543
.branch_template: &branch_build
4644
stage: package
@@ -284,11 +282,6 @@ Ubuntu-20.04-branch:
284282
Ubuntu-22.04-branch:
285283
image: "${BUILDER_IMAGE_REGISTRY}/ubuntu_22.04:${BUILDER_IMAGE_REVISION}"
286284
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"'
292285

293286
Debian-10-branch:
294287
image: "${BUILDER_IMAGE_REGISTRY}/debian_10:${BUILDER_IMAGE_REVISION}"
@@ -314,12 +307,6 @@ Ubuntu-20.04-arm64-branch:
314307
Ubuntu-22.04-arm64-branch:
315308
image: "${BUILDER_IMAGE_REGISTRY}/ubuntu_22.04_arm64:${BUILDER_IMAGE_REVISION}"
316309
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
323310
CentOS-7-branch:
324311
image: "${BUILDER_IMAGE_REGISTRY}/centos_7:${BUILDER_IMAGE_REVISION}"
325312
extends: .branch_template
@@ -381,15 +368,6 @@ Ubuntu-18.04-fips-branch:
381368
Ubuntu-20.04-fips-branch:
382369
image: "${BUILDER_IMAGE_REGISTRY}/ubuntu_20.04_fips:${BUILDER_IMAGE_REVISION}"
383370
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
393371

394372
Docker-branch:
395373
extends: .docker_job
@@ -410,8 +388,6 @@ Docker-branch:
410388
rules:
411389
- !reference [.default_rules, rules]
412390
- if: '$PIPELINE_TYPE =~ /_(NIGHTLY|BRANCH)_BUILD_PIPELINE$/'
413-
- if: '$PIPELINE_TYPE =~ /TRIGGERED_(CE|EE)_PIPELINE/'
414-
- if: '$PIPELINE_TYPE == "TRIGGER_CACHE_UPDATE_PIPELINE"'
415391

416392
QA-branch:
417393
extends: .docker_job

gitlab-ci-config/gitlab-com.yml

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

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

5757
.install-gems: &install-gems
5858
- gem install bundler:${BUNDLER_VERSION}
@@ -133,8 +133,6 @@
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'
138136
ALTERNATIVE_SOURCES: 'true'
139137
SECURITY_SOURCES: ${SECURITY_SOURCES}
140138
BUILDER_IMAGE_REVISION: ${BUILDER_IMAGE_REVISION}
@@ -180,6 +178,17 @@
180178
when: manual
181179
variables: !reference [.ce-trigger-job-variables]
182180

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+
183192
.review-docs:
184193
image: "${RUBY_IMAGE}-alpine"
185194
stage: post-test
@@ -250,6 +259,22 @@ update-gems-cache-for-docker-jobs:
250259
- update-gems-cache
251260
- .docker_job
252261

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+
253278
###########################
254279
# Branch pipeline #
255280
###########################
@@ -501,6 +526,25 @@ update-knapsack:
501526
# Trigger Pipeline #
502527
############################
503528

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+
504548
package_size_check:
505549
extends: .trigger-package-cache
506550
image: "${BUILDER_IMAGE_REGISTRY}/ubuntu_22.04:${BUILDER_IMAGE_REVISION}"
@@ -509,11 +553,29 @@ package_size_check:
509553
- bundle exec rake build:package:generate_sizefile
510554
- bundle exec rake check:package_size
511555
needs:
512-
- job: Ubuntu-22.04-branch
556+
- job: Trigger:package
513557
artifacts: false
514558
rules:
515559
- if: '$PIPELINE_TYPE =~ /TRIGGERED_(CE|EE)_PIPELINE/'
516560

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+
517579
qa-subset-test:
518580
extends:
519581
- .qa-template
@@ -540,10 +602,9 @@ qa-subset-test:
540602
needs:
541603
- job: generate-facts
542604
artifacts: true
543-
- job: Ubuntu-22.04-branch
605+
- job: Trigger:package
544606
artifacts: false
545-
- job: Docker-branch
546-
optional: true
607+
- job: Trigger:gitlab-docker
547608
artifacts: false
548609

549610
qa-remaining-test-manual:
@@ -568,10 +629,9 @@ qa-remaining-test-manual:
568629
needs:
569630
- job: generate-facts
570631
artifacts: true
571-
- job: Ubuntu-22.04-branch
632+
- job: Trigger:package
572633
artifacts: false
573-
- job: Docker-branch
574-
optional: true
634+
- job: Trigger:gitlab-docker
575635
artifacts: false
576636

577637
letsencrypt-test:
@@ -587,7 +647,7 @@ letsencrypt-test:
587647
when: never
588648
- if: '$PIPELINE_TYPE =~ /TRIGGERED_(CE|EE)_PIPELINE/'
589649
needs:
590-
- job: Docker-branch
650+
- job: Trigger:gitlab-docker
591651
artifacts: false
592652

593653
RAT:
@@ -612,6 +672,10 @@ RAT:
612672
needs:
613673
- job: Ubuntu-22.04-branch
614674
artifacts: false
675+
optional: true
676+
- job: Trigger:package
677+
artifacts: false
678+
optional: true
615679
- job: generate-facts
616680
artifacts: true
617681

@@ -623,6 +687,10 @@ RAT:FIPS:
623687
needs:
624688
- job: Ubuntu-20.04-fips-branch
625689
artifacts: false
690+
optional: true
691+
- job: Trigger:package:fips
692+
artifacts: false
693+
optional: true
626694
- job: generate-facts
627695
artifacts: true
628696

@@ -644,7 +712,7 @@ GET:Geo:
644712
when: manual
645713
allow_failure: true
646714
needs:
647-
- job: Ubuntu-22.04-branch
715+
- job: Trigger:package
648716
artifacts: false
649717
- job: generate-facts
650718
artifacts: true
@@ -725,7 +793,7 @@ pages:
725793

726794
.build-package-on-all-os-vars:
727795
extends: .base-trigger-job-variables
728-
SKIP_JOB_REGEX: '/Ubuntu-22.04|Ubuntu-20.04-fips|Docker|QA/'
796+
SKIP_JOB_REGEX: '/Ubuntu-22.04|Docker|QA/'
729797
PIPELINE_TYPE: "${EDITION}_BRANCH_BUILD_PIPELINE"
730798
CACHE_EDITION: ${EDITION}
731799
ee: ${ee}

gitlab-ci-config/workflow-rules.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ 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'
3331
- if: '$PIPELINE_TYPE == null && $CI_PROJECT_PATH == $QA_PROJECT_PATH && $CACHE_UPDATE == "true"'
3432
variables:
3533
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(fips: false)}
95-
RAT_FIPS_PACKAGE_URL=#{Build::Info::CI.package_download_url(job_name: 'Ubuntu-20.04', fips: true)}
94+
RAT_PACKAGE_URL=#{Build::Info::CI.package_download_url}
95+
RAT_FIPS_PACKAGE_URL=#{Build::Info::CI.fips_package_download_url}
9696
]
9797
end
9898

lib/gitlab/build/info/ci.rb

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,26 @@ 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+
4161
def artifact_url(job_name, file_path)
4262
client = Gitlab::APIClient.new
4363
target_job_id = client.get_job_id(job_name)
@@ -47,10 +67,15 @@ def artifact_url(job_name, file_path)
4767
URI("#{api_v4_url}/projects/#{project_id}/jobs/#{target_job_id}/artifacts/#{file_path}")
4868
end
4969

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')
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
5377

78+
def branch_build_package_download_url(job_name: "Ubuntu-22.04", arch: 'amd64')
5479
case job_name
5580
when /AlmaLinux-8/
5681
# In EL world, amd64 is called x86_64
@@ -70,8 +95,6 @@ def package_download_url(job_name: "Ubuntu-22.04", arch: 'amd64', fips: Build::C
7095
folder = "#{folder}_aarch64"
7196
end
7297

73-
job_name = "#{job_name}-fips" if fips
74-
7598
job_name = "#{job_name}-branch" unless Build::Info::CI.tag_name
7699

77100
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 = URI("#{Build::Info::CI.package_download_url}.size")
16+
sizefile_url = Build::Info::CI.artifact_url("Trigger:package", "pkg/ubuntu-jammy/gitlab.deb.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-ce_12.121.12-ce.0_amd64.deb",
162+
"DOWNLOAD_URL=https://gitlab.com/api/v4/projects/20699/jobs/999999/artifacts/pkg/ubuntu-jammy/gitlab.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-ee_12.121.12-ee.0_amd64.deb",
183+
"DOWNLOAD_URL=https://gitlab.com/api/v4/projects/20699/jobs/999999/artifacts/pkg/ubuntu-jammy/gitlab.deb",
184184
"CI_JOB_TOKEN=NOT-CI-JOB-TOKEN\n"
185185
].join("\n")
186186
end

0 commit comments

Comments
 (0)