Skip to content

Commit aea984c

Browse files
author
Robert Marshall
committed
Revert recently introduced cache changes
- Recent pipeline jobs failed with strange cache issues. After review of recent changes, it is possible that changes from trigger based jobs to normal pipeline jobs may have introduced hidden behavioral changes that polluted the build caches. This reverts those changes as an attempt to unblock auto deploy while the team continues to investigate. - https://dev.gitlab.org/gitlab/omnibus-gitlab/-/jobs/19887684 - https://dev.gitlab.org/gitlab/omnibus-gitlab/-/jobs/19883123 - https://gitlab.com/gitlab-org/omnibus-gitlab/-/jobs/6535645918 This reverts commit 373d38d. This reverts commit b7cb856. Signed-off-by: Robert Marshall <[email protected]>
1 parent 874a701 commit aea984c

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)