Class: UuDevman::Release

Inherits:
Object
  • Object
show all
Defined in:
lib/uu_devman/release_create.rb,
lib/uu_devman/release_get_attributes.rb,
lib/uu_devman/release_set_attributes.rb

Overview

Module Release

Defined Under Namespace

Classes: MilestoneStates

Class Method Summary (collapse)

Class Method Details

+ (UU::OS::Lang::Future) create(product_folder_uri, opts = {})

Create new release folder structure and release artifact.

Examples:

Create new release

UuDevman::Release.create('ues:TER:PRODUCT_FOLDER',
 :version => '1.2.0',
 :develop_competent_role_uri => 'ues:TER:DEV_ROLE',
 :tmo_competent_role_uri => 'ues:TER:COMP_ROLE',
 :team_capacity_plans => ['ues:TER:TEAM_CAP_PLAN'],
 :milestones => [{:name => 'Release', :date => '2016-12-07', :state => UuDevman::Release::MilestoneStates::OK},
                 {:name => 'Freeze release', :date => '2016-12-07'}])

Parameters:

  • product_folder_uri (UU::OS::UESURI, String)

    Uri of Product folder.

  • opts (Hash) (defaults to: {})

    Release attributes and milestone parameters.

Options Hash (opts):

  • :version (String)

    Release version.

  • :develop_competent_role (UU::OS::UESURI, String)

    UESURI of role competent for developing.

  • :tmo_competent_role (UU::OS::UESURI, String)

    UESURI of competent role from TMO.

  • :milestones (Array)

    Array of milestones of release. Milestone format is hash with keys “name”, “date” and optionally “state”. Date must be in ISO 8601 format YYYY-MM-DD. State must be constant from UuDevman::Release::MilestoneStates

Returns:

  • (UU::OS::Lang::Future)

Raises:



39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/uu_devman/release_create.rb', line 39

def create(product_folder_uri, opts = {})
  raise UuDevman::ValidationException, "Parameter product_folder must be a valid UU::OS::UESURI or its String representation." unless uesuri?(product_folder_uri)
  raise UuDevman::ValidationException, "Invalid :version parameter.\nVersion must be set and match regex ^[0-9]+(\\.[0-9]+){1,2}$" if opts[:version].nil? || !opts[:version].match(/^\d+(\.\d+){1,2}$/)

  opts[:milestones].each do |milestone|
    validate_milestone(milestone)
  end unless opts[:milestones].nil?

  session = UU::OS::Security::Session.current_session
  @cmd = UU::OS::CMD::CommandClient.new("uu-devman", session, nil)
  # create project structure
  @cmd.invoke("Release/create", product_folder_uri, parameters: {:params => opts})

end

+ (NilClass, Hash) get_attributes(release_artifact_uri)

Returns attributes of release.

Parameters:

  • release_artifact_uri (UU::OS::UESURI, String)

    Uri of Product folder.

Returns:

  • (NilClass, Hash)

    Hash of attributes or nil if release was not found.

Raises:



10
11
12
13
14
15
16
17
18
19
# File 'lib/uu_devman/release_get_attributes.rb', line 10

def get_attributes(release_artifact_uri)
  raise UuDevman::ValidationException, "Parameter release_artifact_uri must be a valid UU::OS::UESURI or its String representation." unless uesuri?(release_artifact_uri)

  session = UU::OS::Security::Session.current_session
  @cmd = UU::OS::CMD::CommandClient.new("uu-devman", session, nil)
  # create project structure
  @cmd.invoke("Release/get_attributes", release_artifact_uri)
  #UU::OS::UESURI.new(release)

end

+ (UU::OS::Lang::Future) set_attributes(release_artifact_uri, opts = {})

Set new parameter or edit release attributes.

Examples:

Set milestone attributes

future = UuDevman::Release.set_attributes('ues:TER:RELEASE_CODE',
                                          :develop_competent_role_uri => 'ues:TER:DEVEL_ROLE',
                                          :tmo_competent_role_uri => 'ues:TER:COMP_ROLE',
                                          :team_capacity_plans => ['ues:TER:TEAM_CAP_PLAN'],
                                          :milestones => [
                                              {:name => 'Release',
                                               :date => '2017-12-12',
                                               :state => UuDevman::Release::MilestoneStates::OK}
                                          ])
puts future.get

Parameters:

  • release_artifact_uri (UU::OS::UESURI, String)

    Uri of Product folder.

  • opts (Hash) (defaults to: {})

    Release attributes and milestone parameters.

Options Hash (opts):

  • :develop_competent_role (UU::OS::UESURI, String)

    UESURI of role competent for developing.

  • :tmo_competent_role (UU::OS::UESURI, String)

    UESURI of competent role from TMO.

  • :milestones (Array)

    Array of milestones of release. Milestone format is hash with keys “name”, “date” and optionally “state”. Date must be in ISO 8601 format YYYY-MM-DD. State must be constant from UuDevman::Release::MilestoneStates

Returns:

  • (UU::OS::Lang::Future)

    Future instance.

Raises:



25
26
27
28
29
30
31
32
# File 'lib/uu_devman/release_set_attributes.rb', line 25

def set_attributes(release_artifact_uri, opts = {})
  raise UuDevman::ValidationException, "Parameter release_artifact_uri must be a valid UU::OS::UESURI or its String representation." unless uesuri?(release_artifact_uri)

  session = UU::OS::Security::Session.current_session
  @cmd = UU::OS::CMD::CommandClient.new("uu-devman", session, nil)
  @cmd.invoke("Release/set_attributes", release_artifact_uri, parameters: {:release_attributes => opts})

end