Class: ContinuousIntegration::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/continuous_integration/server.rb

Overview

class to perform the server operations

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#rootObject

Perform Continuous Integration operations!

Example:

>> server = ContinuousIntegration.setup_server
>> ContinuousIntegration.start_server server
=> INFO  WEBrick x.x.x

Arguments:

server: (Object)


24
25
26
# File 'lib/continuous_integration/server.rb', line 24

def root
  @root
end

#serverObject

Perform Continuous Integration operations!

Example:

>> server = ContinuousIntegration.setup_server
>> ContinuousIntegration.start_server server
=> INFO  WEBrick x.x.x

Arguments:

server: (Object)


24
25
26
# File 'lib/continuous_integration/server.rb', line 24

def server
  @server
end

Class Method Details

.create_serverObject



55
56
57
58
59
60
61
# File 'lib/continuous_integration/server.rb', line 55

def self.create_server
  WEBrick::HTTPServer.new(
    Port: PORT_NUM,
    DocumentRoot: @root,
    DirectoryIndex: []
  )
end

.dir_mountObject



63
64
65
# File 'lib/continuous_integration/server.rb', line 63

def self.dir_mount
  @server.mount SUB_URI, DockerEndpoint
end

.dir_unmountObject



67
68
69
# File 'lib/continuous_integration/server.rb', line 67

def self.dir_unmount
  @server.unmount SUB_URI
end

.setup_serverObject

setup the CI server config



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/continuous_integration/server.rb', line 32

def self.setup_server
  # path for the web server to serve the test results
  @root = File.expand_path "#{API_SPECS_PATH}/logs"

  # create the server
  @server = self.create_server

  # mount the dir
  dir_mount

  # shut server down on any interrupt
  trap('INT') do
    shutdown_server
  end
end

.shutdown_serverObject



48
49
50
51
# File 'lib/continuous_integration/server.rb', line 48

def self.shutdown_server
  dir_unmount
  @server.shutdown
end

.start_serverObject



26
27
28
29
# File 'lib/continuous_integration/server.rb', line 26

def self.start_server
  self.setup_server
  @server.start
end