diff --git a/gitlab-ci-config/dev-gitlab-org.yml b/gitlab-ci-config/dev-gitlab-org.yml index 5e3450d9b8f89edee296f808860be6e80d248a20_Z2l0bGFiLWNpLWNvbmZpZy9kZXYtZ2l0bGFiLW9yZy55bWw=..4b7c94354f6f1b581af8c5eda13210a1c63dc01d_Z2l0bGFiLWNpLWNvbmZpZy9kZXYtZ2l0bGFiLW9yZy55bWw= 100644 --- a/gitlab-ci-config/dev-gitlab-org.yml +++ b/gitlab-ci-config/dev-gitlab-org.yml @@ -433,37 +433,6 @@ image: "${BUILDER_IMAGE_REGISTRY}/rpi_12:${BUILDER_IMAGE_REVISION}" extends: .rpi_branch_template -# This job runs only on nightly EE builds -RAT-Nightly: - stage: slow_jobs - image: "${BUILDER_IMAGE_REGISTRY}/ubuntu_22.04:${BUILDER_IMAGE_REVISION}" - script: - - bundle exec rake qa:rat:nightly - cache: !reference [.branch-cache] - needs: - - Ubuntu-22.04-branch - allow_failure: true - rules: - - !reference [.default_rules, rules] - - if: '$PIPELINE_TYPE == "EE_NIGHTLY_BUILD_PIPELINE"' - -# This job runs only on nightly EE builds -RAT-Nightly-FIPS: - stage: slow_jobs - image: "${BUILDER_IMAGE_REGISTRY}/almalinux_8_fips:${BUILDER_IMAGE_REVISION}" - variables: - USE_SYSTEM_SSL: "true" - RAT_REFERENCE_ARCHITECTURE: "omnibus-gitlab-mrs-fips" - script: - - bundle exec rake qa:rat:nightly - cache: !reference [.branch-cache] - needs: - - AlmaLinux-8-fips-branch - allow_failure: true - rules: - - !reference [.default_rules, rules] - - if: '$PIPELINE_TYPE == "EE_NIGHTLY_BUILD_PIPELINE"' - ############################ # Release pipeline # ############################ diff --git a/gitlab-ci-config/gitlab-com.yml b/gitlab-ci-config/gitlab-com.yml index 5e3450d9b8f89edee296f808860be6e80d248a20_Z2l0bGFiLWNpLWNvbmZpZy9naXRsYWItY29tLnltbA==..4b7c94354f6f1b581af8c5eda13210a1c63dc01d_Z2l0bGFiLWNpLWNvbmZpZy9naXRsYWItY29tLnltbA== 100644 --- a/gitlab-ci-config/gitlab-com.yml +++ b/gitlab-ci-config/gitlab-com.yml @@ -667,4 +667,6 @@ - if: '$PIPELINE_TYPE == "TRIGGERED_EE_PIPELINE"' when: manual allow_failure: true + - if: '$PIPELINE_TYPE == "EE_NIGHTLY_BUILD_PIPELINE"' + allow_failure: true needs: @@ -670,3 +672,6 @@ needs: + - job: Ubuntu-22.04-branch + artifacts: false + optional: true - job: Trigger:package artifacts: false @@ -671,5 +676,6 @@ - job: Trigger:package artifacts: false + optional: true - job: generate-facts artifacts: true @@ -679,5 +685,8 @@ PACKAGE_URL: ${RAT_FIPS_PACKAGE_URL} REFERENCE_ARCHITECTURE: ${RAT_FIPS_REFERENCE_ARCHITECTURE} needs: + - job: Ubuntu-20.04-fips-branch + artifacts: false + optional: true - job: Trigger:package:fips artifacts: false @@ -682,5 +691,6 @@ - job: Trigger:package:fips artifacts: false + optional: true - job: generate-facts artifacts: true diff --git a/gitlab-ci-config/workflow-rules.yml b/gitlab-ci-config/workflow-rules.yml index 5e3450d9b8f89edee296f808860be6e80d248a20_Z2l0bGFiLWNpLWNvbmZpZy93b3JrZmxvdy1ydWxlcy55bWw=..4b7c94354f6f1b581af8c5eda13210a1c63dc01d_Z2l0bGFiLWNpLWNvbmZpZy93b3JrZmxvdy1ydWxlcy55bWw= 100644 --- a/gitlab-ci-config/workflow-rules.yml +++ b/gitlab-ci-config/workflow-rules.yml @@ -43,9 +43,6 @@ - if: '$PIPELINE_TYPE == null && $CI_PROJECT_PATH == $CANONICAL_PROJECT_PATH && $CI_PIPELINE_SOURCE == "merge_request_event"' variables: PIPELINE_TYPE: GITLAB_MR_PIPELINE - - if: '$PIPELINE_TYPE == null && $CI_PROJECT_PATH == $CANONICAL_PROJECT_PATH && $CI_COMMIT_REF_PROTECTED == "true"' - variables: - PIPELINE_TYPE: PROTECTED_TEST_PIPELINE - if: '$PIPELINE_TYPE == null && $NIGHTLY && $CI_COMMIT_BRANCH && ($ee == "true" || $GITLAB_VERSION =~ /-ee$/)' variables: PIPELINE_TYPE: EE_NIGHTLY_BUILD_PIPELINE @@ -94,6 +91,9 @@ PIPELINE_TYPE: EE_TAG_BUILD_PIPELINE CACHE_EDITION: "EE" GITLAB_EDITION: "Enterprise Edition" + - if: '$PIPELINE_TYPE == null && $CI_PROJECT_PATH == $CANONICAL_PROJECT_PATH && $CI_COMMIT_REF_PROTECTED == "true"' + variables: + PIPELINE_TYPE: PROTECTED_TEST_PIPELINE - if: '$PIPELINE_TYPE == null && $CI_PROJECT_PATH == $SECURITY_PROJECT_PATH && $CI_PIPELINE_SOURCE == "merge_request_event"' variables: PIPELINE_TYPE: GITLAB_MR_PIPELINE diff --git a/lib/gitlab/aws_helper.rb b/lib/gitlab/aws_helper.rb index 5e3450d9b8f89edee296f808860be6e80d248a20_bGliL2dpdGxhYi9hd3NfaGVscGVyLnJi..4b7c94354f6f1b581af8c5eda13210a1c63dc01d_bGliL2dpdGxhYi9hd3NfaGVscGVyLnJi 100644 --- a/lib/gitlab/aws_helper.rb +++ b/lib/gitlab/aws_helper.rb @@ -29,7 +29,7 @@ architecture = 'amd64' end - @download_url = Build::Info::CI.package_download_url(job_name: "Ubuntu-20.04", arch: architecture) + @download_url = Build::Info::CI.branch_build_package_download_url(job_name: "Ubuntu-20.04", arch: architecture) system(*%W[support/packer/packer_ami.sh #{@version} #{@type} #{@download_url} #{Build::Info::CI.job_token} #{@license_file}]) end diff --git a/lib/gitlab/build/facts.rb b/lib/gitlab/build/facts.rb index 5e3450d9b8f89edee296f808860be6e80d248a20_bGliL2dpdGxhYi9idWlsZC9mYWN0cy5yYg==..4b7c94354f6f1b581af8c5eda13210a1c63dc01d_bGliL2dpdGxhYi9idWlsZC9mYWN0cy5yYg== 100644 --- a/lib/gitlab/build/facts.rb +++ b/lib/gitlab/build/facts.rb @@ -30,5 +30,11 @@ softwares = version_manifest['software'] results = {} Gitlab::Version::COMPONENTS_ENV_VARS.keys.map do |component| - next unless softwares.key?(component) + # For both `gitlab-rails` and `gitlab-rails-ee`, the key in + # version-manifest.json is `gitlab-rails` + version_manifest_key = if component == 'gitlab-rails' || component == 'gitlab-rails-ee' + 'gitlab-rails' + else + component + end @@ -34,5 +40,7 @@ - results[component] = softwares[component]['locked_version'] + next unless softwares.key?(version_manifest_key) + + results[component] = softwares[version_manifest_key]['locked_version'] end results @@ -83,8 +91,8 @@ GITLAB_SEMVER_VERSION=#{Build::Info::Git.latest_stable_tag.tr('+', '-')} RAT_REFERENCE_ARCHITECTURE=#{Gitlab::Util.get_env('RAT_REFERENCE_ARCHITECTURE') || 'omnibus-gitlab-mrs'} RAT_FIPS_REFERENCE_ARCHITECTURE=#{Gitlab::Util.get_env('RAT_FIPS_REFERENCE_ARCHITECTURE') || 'omnibus-gitlab-mrs-fips-ubuntu'} - RAT_PACKAGE_URL=#{Gitlab::Util.get_env('PACKAGE_URL') || Build::Info::CI.triggered_package_download_url(fips: false)} - RAT_FIPS_PACKAGE_URL=#{Gitlab::Util.get_env('FIPS_PACKAGE_URL') || Build::Info::CI.triggered_package_download_url(fips: true)} + RAT_PACKAGE_URL=#{Build::Info::CI.package_download_url} + RAT_FIPS_PACKAGE_URL=#{Build::Info::CI.fips_package_download_url} ] end diff --git a/lib/gitlab/build/info/ci.rb b/lib/gitlab/build/info/ci.rb index 5e3450d9b8f89edee296f808860be6e80d248a20_bGliL2dpdGxhYi9idWlsZC9pbmZvL2NpLnJi..4b7c94354f6f1b581af8c5eda13210a1c63dc01d_bGliL2dpdGxhYi9idWlsZC9pbmZvL2NpLnJi 100644 --- a/lib/gitlab/build/info/ci.rb +++ b/lib/gitlab/build/info/ci.rb @@ -38,6 +38,26 @@ Gitlab::Util.get_env('CI_COMMIT_REF_SLUG') end + def package_download_url + return Gitlab::Util.get_env('PACKAGE_URL') if Gitlab::Util.get_env('PACKAGE_URL') + + # For builds running in dev.gitlab.org, or nightly pipelines in .com, + # use the artifact from `Ubuntu-22.04-branch` job. For the other build, + # which is essentially in triggered pipeline, use artifact from + # `Trigger:package` job. + if /dev.gitlab.org/.match?(Build::Info::CI.api_v4_url) || Build::Check.is_nightly? + Build::Info::CI.branch_build_package_download_url + else + Build::Info::CI.triggered_package_download_url(fips: false) + end + end + + def fips_package_download_url + return Gitlab::Util.get_env('FIPS_PACKAGE_URL') if Gitlab::Util.get_env('FIPS_PACKAGE_URL') + + Build::Info::CI.triggered_package_download_url(fips: false) + end + def artifact_url(job_name, file_path) client = Gitlab::APIClient.new target_job_id = client.get_job_id(job_name) @@ -55,7 +75,7 @@ artifact_url(job_name, package_path) end - def package_download_url(job_name: "Ubuntu-22.04", arch: 'amd64') + def branch_build_package_download_url(job_name: "Ubuntu-22.04", arch: 'amd64') case job_name when /AlmaLinux-8/ # In EL world, amd64 is called x86_64 diff --git a/lib/gitlab/build/info/docker.rb b/lib/gitlab/build/info/docker.rb index 5e3450d9b8f89edee296f808860be6e80d248a20_bGliL2dpdGxhYi9idWlsZC9pbmZvL2RvY2tlci5yYg==..4b7c94354f6f1b581af8c5eda13210a1c63dc01d_bGliL2dpdGxhYi9idWlsZC9pbmZvL2RvY2tlci5yYg== 100644 --- a/lib/gitlab/build/info/docker.rb +++ b/lib/gitlab/build/info/docker.rb @@ -14,12 +14,7 @@ def release_file_contents repo = Gitlab::Util.get_env('PACKAGECLOUD_REPO') # Target repository - download_url = if /dev.gitlab.org/.match?(Build::Info::CI.api_v4_url) || Build::Check.is_nightly? - Build::Info::CI.package_download_url - else - Build::Info::CI.triggered_package_download_url - end - + download_url = Build::Info::CI.package_download_url raise "Unable to identify package download URL." unless download_url contents = [] diff --git a/spec/lib/gitlab/build/facts_spec.rb b/spec/lib/gitlab/build/facts_spec.rb index 5e3450d9b8f89edee296f808860be6e80d248a20_c3BlYy9saWIvZ2l0bGFiL2J1aWxkL2ZhY3RzX3NwZWMucmI=..4b7c94354f6f1b581af8c5eda13210a1c63dc01d_c3BlYy9saWIvZ2l0bGFiL2J1aWxkL2ZhY3RzX3NwZWMucmI= 100644 --- a/spec/lib/gitlab/build/facts_spec.rb +++ b/spec/lib/gitlab/build/facts_spec.rb @@ -69,6 +69,7 @@ let(:component_shas) do { 'gitlab-rails' => '6f286d7717f419489a08a9918621f438256e397b', + 'gitlab-rails-ee' => '6f286d7717f419489a08a9918621f438256e397b', 'gitaly' => 'b55578ec476e8bc8ecd9775ee7e9960b52e0f6e0', 'gitlab-shell' => '264d63e81cbf08e3ae75e84433b8d09af15f351f', 'gitlab-pages' => 'b0cb1f0c0783db2f5176301e6528fe41e1b42abf', diff --git a/spec/lib/gitlab/tasks/aws_spec.rb b/spec/lib/gitlab/tasks/aws_spec.rb index 5e3450d9b8f89edee296f808860be6e80d248a20_c3BlYy9saWIvZ2l0bGFiL3Rhc2tzL2F3c19zcGVjLnJi..4b7c94354f6f1b581af8c5eda13210a1c63dc01d_c3BlYy9saWIvZ2l0bGFiL3Rhc2tzL2F3c19zcGVjLnJi 100644 --- a/spec/lib/gitlab/tasks/aws_spec.rb +++ b/spec/lib/gitlab/tasks/aws_spec.rb @@ -49,7 +49,7 @@ allow(Build::Check).to receive(:on_tag?).and_return(true) allow(Build::Check).to receive(:is_auto_deploy?).and_return(false) allow(Build::Check).to receive(:is_rc_tag?).and_return(false) - allow(Build::Info::CI).to receive(:package_download_url).and_return('http://example.com') + allow(Build::Info::CI).to receive(:branch_build_package_download_url).and_return('http://example.com') end it 'should identify ce category correctly, if specified' do @@ -129,7 +129,7 @@ allow(Build::Check).to receive(:on_tag?).and_return(true) allow(Build::Check).to receive(:is_auto_deploy?).and_return(false) allow(Build::Check).to receive(:is_rc_tag?).and_return(true) - allow(Build::Info::CI).to receive(:package_download_url).and_return('http://example.com') + allow(Build::Info::CI).to receive(:branch_build_package_download_url).and_return('http://example.com') end it 'does not do anything' do @@ -144,7 +144,7 @@ allow(Build::Check).to receive(:on_tag?).and_return(true) allow(Build::Check).to receive(:is_auto_deploy?).and_return(true) allow(Build::Check).to receive(:is_rc_tag?).and_return(false) - allow(Build::Info::CI).to receive(:package_download_url).and_return('http://example.com') + allow(Build::Info::CI).to receive(:branch_build_package_download_url).and_return('http://example.com') end it 'does not do anything' do