Class: JenkinsApi::CLI::Job

Inherits:
Thor
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/jenkins_api_client/cli/job.rb

Overview

This class provides various command line operations related to jobs.

Instance Method Summary (collapse)

Instance Method Details

- (Object) build(job)

CLI command to build a job given the name of the job

Parameters:

  • job (String)

    Name of the job



64
65
66
67
# File 'lib/jenkins_api_client/cli/job.rb', line 64

def build(job)
  @client = Helper.setup(parent_options)
  @client.job.build(job)
end

- (Object) console(job)

CLI command to obtain console output for a job. Make sure the log location is set to something other than STDOUT. By default it is set to STDOUT. If the log messages are printed on the same console, the console output will get garbled.

Parameters:

  • job (String)

    Name of the job



99
100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'lib/jenkins_api_client/cli/job.rb', line 99

def console(job)
  @client = Helper.setup(parent_options)
  # Print progressive console output
  response = @client.job.get_console_output(job)
  puts response['output'] unless response['more']
  while response['more']
    size = response['size']
    puts response['output'] unless response['output'].chomp.empty?
    sleep options[:sleep].to_i if options[:sleep]
    response = @client.job.get_console_output(job, 0, size)
  end
  # Print the last few lines
  puts response['output'] unless response['output'].chomp.empty?
end

- (Object) delete(job)

CLI command to delete a job

Parameters:

  • job (String)

    Name of the job



84
85
86
87
# File 'lib/jenkins_api_client/cli/job.rb', line 84

def delete(job)
  @client = Helper.setup(parent_options)
  puts @client.job.delete(job)
end

- (Object) list

CLI command to list all jobs in Jenkins or the ones matched by status or a regular expression



38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/jenkins_api_client/cli/job.rb', line 38

def list
  @client = Helper.setup(parent_options)
  if options[:filter] && options[:status]
    name_filtered = @client.job.list(options[:filter])
    puts @client.job.list_by_status(options[:status], name_filtered)
  elsif options[:filter]
    puts @client.job.list(options[:filter])
  elsif options[:status]
    puts @client.job.list_by_status(options[:status])
  else
    puts @client.job.list_all
  end
end

- (Object) recreate(job)

CLI command to recreate a job on Jenkins



54
55
56
57
# File 'lib/jenkins_api_client/cli/job.rb', line 54

def recreate(job)
  @client = Helper.setup(parent_options)
  @client.job.recreate(job)
end

- (Object) restrict(job)

CLI command to restrict a job to a node

Parameters:

  • job (String)

    Name of the job



120
121
122
123
124
125
126
127
# File 'lib/jenkins_api_client/cli/job.rb', line 120

def restrict(job)
  @client = Helper.setup(parent_options)
  if options[:node]
    @client.job.restrict_to_node(job, options[:node])
  else
    say "You need to specify the node to be restricted to.", :red
  end
end

- (Object) status(job)

CLI command to get the status of a job

Parameters:

  • job (String)

    Name of the job



74
75
76
77
# File 'lib/jenkins_api_client/cli/job.rb', line 74

def status(job)
  @client = Helper.setup(parent_options)
  puts @client.job.get_current_build_status(job)
end