execute

in lib/release_tools/tasks/auto_deploy/validate_pipeline.rb [15:53]


        def execute
          product_version = ProductVersion.from_package_version(@deploy_version)
          log_payload = { product_version: product_version.version, deploy_version: @deploy_version }

          logger.info('current version', log_payload)

          gitlab_sha = product_version[GITLAB_PROJECT]&.sha
          unless gitlab_sha
            logger.error('cannot find the package gitlab SHA', log_payload)

            return
          end

          success = PassingBuild.new(product_version[GITLAB_PROJECT].ref, GITLAB_PROJECT).success_for_auto_deploy_rollout?(gitlab_sha)
          label = if success
                    logger.info('successful pipeline', log_payload.merge(gitlab_sha: gitlab_sha))

                    'success'
                  else
                    logger.error('unsuccessful pipeline', log_payload.merge(gitlab_sha: gitlab_sha))

                    'failed'
                  end

          ReleaseTools::Metrics::Client.new.inc("auto_deploy_gitlab_pipeline_total", labels: label)

          return if @ignore_failure
          return if success

          logger.error(
            <<~HEREDOC.squish
              The Rails pipeline is not successful. If the pipeline has not completed, this job can be retried once it
              completes. To skip this validation, re-run with SKIP_VALIDATE_PIPELINE set to any value. Remember to
              unset this value after that
            HEREDOC
          )
          exit(1)
        end