Module: Pkg::Params

Defined in:
lib/packaging/config/params.rb

Overview

These are all of the parameters known to our packaging system. They are ingested by the config class as class instance variables

Constant Summary collapse

BUILD_PARAMS =
[:allow_dirty_tree,
 :answer_override,
 :apt_archive_path,
 :apt_archive_repo_command,
 :apt_host,
 :apt_releases,
 :apt_repo_command,
 :apt_repo_name,
 :apt_repo_path,
 :apt_repo_staging_path,
 :apt_repo_url,
 :apt_signing_server,
 :apt_staging_server,
 :author,
 :benchmark,
 :build_data_repo,
 :build_date,
 :build_defaults,
 :build_dmg,
 :build_doc,
 :build_gem,
 :build_ips,
 :build_msi,
 :build_pe,
 :build_tar,
 :builder_data_file,
 :builds_server,
 :bundle_platforms,
 :certificate_pem,
 :cows,
 :db_table,
 :deb_build_host,
 :deb_build_mirrors,
 :deb_targets,
 :debug,
 :debversion,
 :default_cow,
 :default_mock,
 :dev_build,
 :description,
 :distribution_server,
 :dmg_host,
 :dmg_path,
 :dmg_staging_server,
 :downloads_archive_path,
 :email,
 :files,
 :final_mocks,
 :foss_only,
 :foss_platforms,
 :freight_archive_path,
 :freight_conf,
 :gem_default_executables,
 :gem_dependencies,
 :gem_description,
 :gem_devel_dependencies,
 :gem_development_dependencies,
 :gem_excludes,
 :gem_executables,
 :gem_files,
 :gem_forge_project,
 :gem_host,
 :gem_name,
 :gem_path,
 :gem_platform_dependencies,
 :gem_rdoc_options,
 :gem_require_path,
 :gem_required_ruby_version,
 :gem_required_rubygems_version,
 :gem_runtime_dependencies,
 :gem_summary,
 :gem_test_files,
 :gemversion,
 :gpg_key,
 :gpg_name,
 :homepage,
 :internal_gem_host,
 :ips_build_host,
 :ips_host,
 :ips_inter_cert,
 :ips_package_host,
 :ips_path,
 :ips_repo,
 :ips_root_cert,
 :ips_signing_cert,
 :ips_signing_key,
 :ips_signing_server,
 :ips_signing_ssh_key,
 :ips_store,
 :jenkins_build_host,
 :jenkins_packaging_job,
 :jenkins_repo_path,
 :metrics,
 :metrics_url,
 :msi_host,
 :msi_name,
 :msi_path,
 :msi_signing_cert,
 :msi_signing_cert_pw,
 :msi_signing_server,
 :msi_signing_ssh_key,
 :msi_staging_server,
 :name,
 :nonfinal_apt_repo_command,
 :nonfinal_apt_repo_path,
 :nonfinal_apt_repo_staging_path,
 :nonfinal_dmg_path,
 :nonfinal_gem_path,
 :nonfinal_ips_path,
 :nonfinal_msi_path,
 :nonfinal_p5p_path,
 :nonfinal_repo_name,
 :nonfinal_repo_link_target,
 :nonfinal_svr4_path,
 :nonfinal_swix_path,
 :nonfinal_yum_repo_path,
 :notify,
 :nuget_host,
 :nuget_repo_path,
 :origversion,
 :osx_build_host,
 :osx_signing_cert,
 :osx_signing_keychain,
 :osx_signing_keychain_pw,
 :osx_signing_server,
 :osx_signing_ssh_key,
 :p5p_host,
 :p5p_path,
 :packager,
 :packaging_repo,
 :packaging_root,
 :packaging_url,
 :pbuild_conf,
 :pe_feature_branch,
 :pe_release_branch,
 :pe_name,
 :pe_platforms,
 :pe_version,
 :pg_major_version,
 :platform_repos,
 :pre_tar_task,
 :pre_tasks,
 :privatekey_pem,
 :project,
 :project_root,
 :random_mockroot,
 :rc_mocks,
 :redis_hostname,
 :ref,
 :release,
 :repo_link_target,
 :repo_name,
 :rpm_build_host,
 :rpm_targets,
 :rpmrelease,
 :rpmversion,
 :rsync_servers,
 :s3_ship,
 :short_ref,
 :sign_tar,
 :signing_server,
 :staging_server,
 :summary,
 :svr4_host,
 :svr4_path,
 :swix_host,
 :swix_path,
 :swix_staging_server,
 :tar_excludes,
 :tar_host,
 :tar_staging_server,
 :tarball_path,
 :task,
 :team,
 :templates,
 :update_version_file,
 :vanagon_project,
 :version,
 :version_file,
 :version_strategy,
 :yum_archive_path,
 :yum_host,
 :yum_repo_command,
 :yum_repo_name,
 :yum_repo_path,
 :yum_staging_server,
]
ENV_VARS =

Environment variable overrides for Pkg::Config parameters

:var  => :config_param,    :envvar => :environment var :type => :variable type

Note: :type is assumed :string if not present
[
 { :var => :allow_dirty_tree,        :envvar => :ALLOW_DIRTY_TREE, :type => :bool },
 { :var => :answer_override,         :envvar => :ANSWER_OVERRIDE },
 { :var => :apt_archive_path,        :envvar => :APT_ARCHIVE_PATH },
 { :var => :apt_archive_repo_command, :envvar => :APT_ARCHIVE_REPO_COMMAND },
 { :var => :apt_host,                :envvar => :APT_HOST },
 { :var => :apt_releases,            :envvar => :APT_RELEASES,    :type => :array },
 { :var => :apt_repo_path,           :envvar => :APT_REPO },
 { :var => :apt_repo_staging_path,   :envvar => :APT_REPO_STAGING_PATH },
 { :var => :apt_signing_server,      :envvar => :APT_SIGNING_SERVER },
 { :var => :apt_staging_server,      :envvar => :APT_STAGING_SERVER },
 { :var => :build_data_repo,         :envvar => :BUILD_DATA_REPO },
 { :var => :build_dmg,               :envvar => :DMG,             :type => :bool },
 { :var => :build_doc,               :envvar => :DOC,             :type => :bool },
 { :var => :build_gem,               :envvar => :GEM,             :type => :bool },
 { :var => :build_ips,               :envvar => :IPS,             :type => :bool },
 { :var => :build_msi,               :envvar => :MSI,             :type => :bool },
 { :var => :build_pe,                :envvar => :PE_BUILD,        :type => :bool },
 { :var => :build_tar,               :envvar => :TAR,             :type => :bool },
 { :var => :certificate_pem,         :envvar => :CERT_PEM },
 { :var => :cows,                    :envvar => :COW },
 { :var => :debug,                   :envvar => :DEBUG,           :type => :bool },
 { :var => :default_cow,             :envvar => :COW },
 { :var => :default_mock,            :envvar => :MOCK },
 { :var => :dev_build,               :envvar => :DEV_BUILD,       :type => :bool },
 { :var => :dmg_host,                :envvar => :DMG_HOST },
 { :var => :dmg_path,                :envvar => :DMG_PATH },
 { :var => :dmg_staging_server,      :envvar => :DMG_STAGING_SERVER },
 { :var => :downloads_archive_path,  :envvar => :DOWNLOADS_ARCHIVE_PATH },
 { :var => :final_mocks,             :envvar => :MOCK },
 { :var => :foss_only,               :envvar => :FOSS_ONLY,       :type => :bool },
 { :var => :foss_platforms,          :envvar => :FOSS_PLATFORMS,  :type => :array },
 { :var => :freight_archive_path,    :envvar => :FREIGHT_ARCHIVE_PATH },
 { :var => :gem_host,                :envvar => :GEM_HOST },
 { :var => :gpg_key,                 :envvar => :GPG_KEY },
 { :var => :gpg_name,                :envvar => :GPG_NAME },
 { :var => :ips_host,                :envvar => :IPS_HOST },
 { :var => :ips_inter_cert,          :envvar => :IPS_INTER_CERT },
 { :var => :ips_path,                :envvar => :IPS_PATH },
 { :var => :ips_repo,                :envvar => :IPS_REPO },
 { :var => :ips_root_cert,           :envvar => :IPS_ROOT_CERT },
 { :var => :ips_signing_cert,        :envvar => :IPS_SIGNING_CERT },
 { :var => :ips_signing_key,         :envvar => :IPS_SIGNING_KEY },
 { :var => :ips_signing_server,      :envvar => :IPS_SIGNING_SERVER },
 { :var => :ips_signing_ssh_key,     :envvar => :IPS_SIGNING_SSH_KEY },
 { :var => :msi_host,                :envvar => :MSI_HOST },
 { :var => :msi_path,                :envvar => :MSI_PATH },
 { :var => :msi_signing_cert,        :envvar => :MSI_SIGNING_CERT },
 { :var => :msi_signing_cert_pw,     :envvar => :MSI_SIGNING_CERT_PW },
 { :var => :msi_signing_server,      :envvar => :MSI_SIGNING_SERVER },
 { :var => :msi_signing_ssh_key,     :envvar => :MSI_SIGNING_SSH_KEY },
 { :var => :msi_staging_server,      :envvar => :MSI_STAGING_SERVER },
 { :var => :nonfinal_apt_repo_command, :envvar => :NONFINAL_APT_REPO_COMMAND },
 { :var => :nonfinal_apt_repo_path,  :envvar => :NONFINAL_APT_REPO_PATH },
 { :var => :nonfinal_apt_repo_staging_path, :envvar => :NONFINAL_APT_REPO_STAGING_PATH },
 { :var => :nonfinal_dmg_path,       :envvar => :NONFINAL_DMG_PATH },
 { :var => :nonfinal_gem_path,       :envvar => :NONFINAL_GEM_PATH },
 { :var => :nonfinal_ips_path,       :envvar => :NONFINAL_IPS_PATH },
 { :var => :nonfinal_msi_path,       :envvar => :NONFINAL_MSI_PATH },
 { :var => :nonfinal_p5p_path,       :envvar => :NONFINAL_P5P_PATH },
 { :var => :nonfinal_repo_link_target, :envvar => :NONFINAL_REPO_LINK_TARGET },
 { :var => :nonfinal_repo_name,      :envvar => :NONFINAL_REPO_NAME },
 { :var => :nonfinal_svr4_path,      :envvar => :NONFINAL_SVR4_PATH },
 { :var => :nonfinal_swix_path,      :envvar => :NONFINAL_SWIX_PATH },
 { :var => :nonfinal_yum_repo_path,  :envvar => :NONFINAL_YUM_REPO_PATH },
 { :var => :notify,                  :envvar => :NOTIFY },
 { :var => :nuget_host,              :envvar => :NUGET_HOST },
 { :var => :nuget_repo_path,         :envvar => :NUGET_REPO },
 { :var => :osx_signing_cert,        :envvar => :OSX_SIGNING_CERT },
 { :var => :osx_signing_keychain,    :envvar => :OSX_SIGNING_KEYCHAIN },
 { :var => :osx_signing_keychain_pw, :envvar => :OSX_SIGNING_KEYCHAIN_PW },
 { :var => :osx_signing_server,      :envvar => :OSX_SIGNING_SERVER },
 { :var => :osx_signing_ssh_key,     :envvar => :OSX_SIGNING_SSH_KEY },
 { :var => :p5p_host,                :envvar => :P5P_HOST },
 { :var => :p5p_path,                :envvar => :P5P_PATH },
 { :var => :packager,                :envvar => :PACKAGER },
 { :var => :pbuild_conf,             :envvar => :PBUILDCONF },
 { :var => :pe_feature_branch,       :envvar => :PE_FEATURE_BRANCH },
 { :var => :pe_version,              :envvar => :PE_VER },
 { :var => :privatekey_pem,          :envvar => :PRIVATE_PEM },
 { :var => :project,                 :envvar => :PROJECT_OVERRIDE },
 { :var => :project_root,            :envvar => :PROJECT_ROOT },
 { :var => :random_mockroot,         :envvar => :RANDOM_MOCKROOT, :type => :bool },
 { :var => :rc_mocks,                :envvar => :MOCK },
 { :var => :release,                 :envvar => :RELEASE },
 { :var => :repo_name,               :envvar => :REPO_NAME },
 { :var => :repo_link_target,        :envvar => :REPO_LINK_TARGET },
 { :var => :s3_ship,                 :envvar => :S3_SHIP,         :type => :bool },
 { :var => :sign_tar,                :envvar => :SIGN_TAR,        :type => :bool },
 { :var => :signing_server,          :envvar => :SIGNING_SERVER },
 { :var => :staging_server,          :envvar => :STAGING_SERVER },
 { :var => :swix_host,               :envvar => :SWIX_HOST },
 { :var => :swix_staging_server,     :envvar => :SWIX_STAGING_SERVER },
 { :var => :svr4_host,               :envvar => :SVR4_HOST },
 { :var => :svr4_path,               :envvar => :SVR4_PATH },
 { :var => :swix_path,               :envvar => :SWIX_PATH },
 { :var => :tar_host,                :envvar => :TAR_HOST },
 { :var => :tar_staging_server,      :envvar => :TAR_STAGING_SERVER },
 { :var => :team,                    :envvar => :TEAM },
 { :var => :update_version_file,     :envvar => :NEW_STYLE_PACKAGE },
 { :var => :vanagon_project,         :envvar => :VANAGON_PROJECT, :type => :bool },
 { :var => :version,                 :envvar => :PACKAGING_PACKAGE_VERSION },
 { :var => :yum_archive_path,        :envvar => :YUM_ARCHIVE_PATH },
 { :var => :yum_host,                :envvar => :YUM_HOST },
 { :var => :yum_repo_path,           :envvar => :YUM_REPO },
 { :var => :yum_staging_server,      :envvar => :YUM_STAGING_SERVER },
 { :var => :internal_gem_host,       :envvar => :INTERNAL_GEM_HOST },
]
DEFAULTS =

Default values that are supplied if the user does not supply them

usage is the same as above

[{ :var => :allow_dirty_tree,        :val => false },
{ :var => :builder_data_file,       :val => 'builder_data.yaml' },
{ :var => :team,                    :val => 'dev' },
{ :var => :random_mockroot,         :val => true },
{ :var => :keychain_loaded,         :val => false },
{ :var => :foss_only,               :val => false },
{ :var => :build_data_repo,         :val => 'https://github.com/puppetlabs/build-data.git' },
{ :var => :build_date,              :val => Pkg::Util::Date.timestamp('-') },
{ :var => :release,                 :val => '1' },
{ :var => :internal_gem_host,       :val => 'https://artifactory.delivery.puppetlabs.net/artifactory/api/gems/rubygems' },
{ :var => :build_tar,               :val => true },
{ :var => :dev_build,               :val => false },
{ :var => :osx_signing_cert,        :val => '$OSX_SIGNING_CERT' },
{ :var => :osx_signing_keychain,    :val => '$OSX_SIGNING_KEYCHAIN' },
{ :var => :osx_signing_keychain_pw, :val => '$OSX_SIGNING_KEYCHAIN_PW' },
{ :var => :ips_signing_cert,        :val => '$IPS_SIGNING_CERT' },
{ :var => :ips_inter_cert,          :val => '$IPS_INTER_CERT' },
{ :var => :ips_root_cert,           :val => '$IPS_ROOT_CERT' },
{ :var => :ips_signing_key,         :val => '$IPS_SIGNING_KEY' },
{ :var => :msi_signing_cert,        :val => '$MSI_SIGNING_CERT' },
{ :var => :msi_signing_cert_pw,     :val => '$MSI_SIGNING_CERT_PW' },
{ :var => :pe_feature_branch,       :val => false },
{ :var => :pe_release_branch,       :val => false },
{ :var => :s3_ship,                 :val => false },
{ :var => :apt_releases,            :val => Pkg::Platforms.codenames }]
REASSIGNMENTS =

These are variables which, over time, we decided to rename or replace. For backwards compatibility, we assign the value of the old/deprecated variables, if set, to the new ones. We also use this method for accessor “redirects” - e.g. defaulting the populated value of one parameter for another in case it is not set.

[
   # These are fall-through values for shipping endpoints
   { :oldvar => :staging_server,         :newvar => :apt_staging_server },
   { :oldvar => :staging_server,         :newvar => :dmg_staging_server },
   { :oldvar => :staging_server,         :newvar => :swix_staging_server },
   { :oldvar => :staging_server,         :newvar => :tar_staging_server },
   { :oldvar => :staging_server,         :newvar => :yum_staging_server },
   # These are fall-through values for signing/repo endpoints
   { :oldvar => :yum_staging_server,     :newvar => :yum_host },
   { :oldvar => :apt_repo_staging_path,  :newvar => :apt_repo_path },
   { :oldvar => :apt_signing_server,     :newvar => :apt_host },
   # These are legitimately old values
   { :oldvar => :gem_devel_dependencies, :newvar => :gem_development_dependencies },
   { :oldvar => :gpg_name,               :newvar => :gpg_key },
   { :oldvar => :name,                   :newvar => :project },
   { :oldvar => :pe_name,                :newvar => :project },
   { :oldvar => :project,                :newvar => :gem_name },
   { :oldvar => :yum_host,               :newvar => :swix_host },
   { :oldvar => :yum_host,               :newvar => :dmg_host },
   { :oldvar => :yum_host,               :newvar => :tar_host },
]
DEPRECATIONS =

These are variables that we have deprecated. If they are encountered in a project’s config, we issue deprecations for them.

[{ :var => :gem_devel_dependencies, :message => "
    DEPRECATED, 9-Nov-2013: 'gem_devel_dependencies' has been replaced with
    'gem_development_dependencies.' Please update this field in your
    build_defaults.yaml or project_data.yaml" },
                  { :var => :gpg_name, :message => "
    DEPRECATED, 29-Jul-2014: 'gpg_name' has been replaced with 'gpg_key'.
Please update this field in your build_defaults.yaml" }]
VALIDATIONS =

Provide an open-ended template for validating BUILD_PARAMS.

Each validatation contains the variable name as ‘:var’ and a list of validations it must pass from the Pkg::Params::Validations class.

[
  { :var => :project, :validations => [:not_empty?] }
]