iOS持續集成:jenkins+gitlab+蒲公英+郵件通知(Part 1)

iOS持續集成:jenkins+gitlab+蒲公英+郵件通知(Part 1)

jenkins環境搭建

在Mac環境下,我們需要先安裝JDK,然後在jenkins的官網下載最新Mac OS X版本的dmg包。安裝完dmg包之後 默然自動開啓jenkins服務,默認端口8080.
這樣就可以直接在瀏覽器中輸入以下地址就可以打開jenkins了:

1
http://localhost:8080

jenkins 相關啓動命令

  1. 默認情況下安裝完dmg包,mac系統會自動生成全局變量:jenkins(變量地址:/usr/local/Cellar/jenkins/1.618/libexec/jenkins.war),只要在命令行中直接輸入jenkins + 相關參數 即可運行相關命令。如:

    1
    
    cmd$:jenkins --httpPort=8888 #更換端口號,當默認端口8080被佔用,或者指定特定端口時。
    
  2. 由於mac系統版本的不同,可能會導致在一些環境中無法直接使用jenkins全局變量,這個時候需要找到安裝的應用程序中jenkins文件夾下的jenk.war來啓動或者執行命令.如:

    1
    
    cmd$:java -jar /Applications/Jenkins/jenkins.war --httpPort=8888
    

    相關參數 可以通過在後面追加 –help 查看:如下

    1
    2
    3
    4
    
      Running from: /usr/local/Cellar/jenkins/1.618/libexec/jenkins.war
    webroot: $user.home/.jenkins
    Jenkins Continuous Integration Engine 1.618
    Usage: java -jar jenkins.war [--option=value] [--option=value]
    
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Options:
   --extractedFilesFolder   = folder where extracted files are to be located. Default is the temp folder
   --daemon                 = fork into background and run as daemon (Unix only)
   --config                 = load configuration properties from here. Default is ./winstone.properties
   --prefix                 = add this prefix to all URLs (eg http://localhost:8080/prefix/resource). Default is none
   --commonLibFolder        = folder for additional jar files. Default is ./lib

   --logfile                = redirect log messages to this file
   --logThrowingLineNo      = show the line no that logged the message (slow). Default is false
   --logThrowingThread      = show the thread that logged the message. Default is false
   --debug                  = set the level of debug msgs (1-9). Default is 5 (INFO level)

   --httpPort               = set the http listening port. -1 to disable, Default is 8080
   --httpListenAddress      = set the http listening address. Default is all interfaces
   --httpDoHostnameLookups  = enable host name lookups on incoming http connections (true/false). Default is false
   --httpKeepAliveTimeout   = how long idle HTTP keep-alive connections are kept around (in ms; default 5000)?
   --httpsPort              = set the https listening port. -1 to disable, Default is disabled
                              if neither --httpsCertificate nor --httpsKeyStore are specified,
                              https is run with one-time self-signed certificate.
   --httpsListenAddress     = set the https listening address. Default is all interfaces
   --httpsDoHostnameLookups = enable host name lookups on incoming https connections (true/false). Default is false
   --httpsKeepAliveTimeout   = how long idle HTTPS keep-alive connections are kept around (in ms; default 5000)?
   --httpsKeyStore          = the location of the SSL KeyStore file.
   --httpsKeyStorePassword  = the password for the SSL KeyStore file. Default is null
   --httpsCertificate       = the location of the PEM-encoded SSL certificate file.
                              (the one that starts with '-----BEGIN CERTIFICATE-----')
                              must be used with --httpsPrivateKey.
   --httpsPrivateKey        = the location of the PEM-encoded SSL private key.
                              (the one that starts with '-----BEGIN RSA PRIVATE KEY-----')
   --httpsKeyManagerType    = the SSL KeyManagerFactory type (eg SunX509, IbmX509). Default is SunX509
   --spdy                   = Enable SPDY. See http://wiki.eclipse.org/Jetty/Feature/NPN
   --ajp13Port              = set the ajp13 listening port. -1 to disable, Default is disabled
   --ajp13ListenAddress     = set the ajp13 listening address. Default is all interfaces
   --controlPort            = set the shutdown/control port. -1 to disable, Default disabled

   --handlerCountStartup    = set the no of worker threads to spawn at startup. Default is 5
   --handlerCountMax        = set the max no of worker threads to allow. Default is 40
   --handlerCountMaxIdle    = set the max no of idle worker threads to allow. Default is 5

   --sessionTimeout         = set the http session timeout value in minutes. Default to what webapp specifies, and then to 60 minutes
   --mimeTypes=ARG          = define additional MIME type mappings. ARG would be EXT=MIMETYPE:EXT=MIMETYPE:...
                              (e.g., xls=application/vnd.ms-excel:wmf=application/x-msmetafile)
   --maxParamCount=N        = set the max number of parameters allowed in a form submission to protect
                              against hash DoS attack (oCERT #2011-003). Default is 10000.
   --usage / --help         = show this message
   --version                = show the version and quit
1
2
3
4
5
6
7
Security options:
   --realmClassName               = Set the realm class to use for user authentication. Defaults to ArgumentsRealm class

   --argumentsRealm.passwd.<user> = Password for user <user>. Only valid for the ArgumentsRealm realm class
   --argumentsRealm.roles.<user>  = Roles for user <user> (comma separated). Only valid for the ArgumentsRealm realm class

   --fileRealm.configFile         = File containing users/passwds/roles. Only valid for the FileRealm realm class
1
2
3
4
Access logging:
   --accessLoggerClassName        = Set the access logger class to use for user authentication. Defaults to disabled
   --simpleAccessLogger.format    = The log format to use. Supports combined/common/resin/custom (SimpleAccessLogger only)
   --simpleAccessLogger.file      = The location pattern for the log file(SimpleAccessLogger only)

jenkins 相關重啓或者關閉命令

jenkins 執行重啓命令需要在jenkins以及啓動的情況下執行,執行語法:

1
java -jar jenkins-cli.jar [-s URL] command [opts...] args...

需要注意的是:執行該命令式 必須要登陸jenkins 也就是必要的用戶名和密碼格式如下:

1
java -jar jenkins-cli.jar help [COMMAND] [--username VAL] [--password VAL] [--password-file VAL] #其中jenkins-cli.jar路徑在jenkins安裝目錄下 Jenkins/Home/war/WEB-INF/jenkins-cli.jar

實例:

1
sudo java -jar /Users/Shared/Jenkins/Home/war/WEB-INF/jenkins-cli.jar -s http://localhost:8080 help --username jenkins用戶名 --password 密碼

相關指令如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
add-job-to-view
    Adds jobs to view.
  build
    Builds a job, and optionally waits until its completion.
  cancel-quiet-down
    Cancel the effect of the "quiet-down" command.
  clear-queue
    Clears the build queue
  connect-node
    Reconnect to a node
  console
    Retrieves console output of a build.
  copy-job
    Copies a job.
  create-job
    Creates a new job by reading stdin as a configuration XML file.
  create-node
    Creates a new node by reading stdin as a XML configuration.
  create-view
    Creates a new view by reading stdin as a XML configuration.
  delete-builds
    Deletes build record(s).
  delete-job
    Deletes a job
  delete-node
    Deletes a node
  delete-view
    Deletes view(s).
  disable-job
    Disables a job
  disconnect-node
    Disconnects from a node
  enable-job
    Enables a job
  get-job
    Dumps the job definition XML to stdout.
  get-node
    Dumps the node definition XML to stdout.
  get-view
    Dumps the view definition XML to stdout.
  groovy
    Executes the specified Groovy script.
  groovysh
    Runs an interactive groovy shell.
  help
    Lists all the available commands or a detailed description of single command.
  install-plugin
    Installs a plugin either from a file, an URL, or from update center.
  install-tool
    Performs automatic tool installation, and print its location to stdout. Can be only called from inside a build.
  keep-build
    Mark the build to keep the build forever.
  list-changes
    Dumps the changelog for the specified build(s).
  list-jobs
    Lists all jobs in a specific view or item group.
  list-plugins
    Outputs a list of installed plugins.
  login
    Saves the current credential to allow future commands to run without explicit credential information.
  logout
    Deletes the credential stored with the login command.
  mail
    Reads stdin and sends that out as an e-mail.
  offline-node
    Stop using a node for performing builds temporarily, until the next "online-node" command.
  online-node
    Resume using a node for performing builds, to cancel out the earlier "offline-node" command.
  quiet-down
    Quiet down Jenkins, in preparation for a restart. Don’t start any builds.
  reload-configuration
    Discard all the loaded data in memory and reload everything from file system. Useful when you modified config files directly on disk.
  reload-job
    Reload job(s)
  remove-job-from-view
    Removes jobs from view.
  restart
    Restart Jenkins.
  safe-restart
    Safely restart Jenkins.
  safe-shutdown
    Puts Jenkins into the quiet mode, wait for existing builds to be completed, and then shut down Jenkins.
  session-id
    Outputs the session ID, which changes every time Jenkins restarts.
  set-build-description
    Sets the description of a build.
  set-build-display-name
    Sets the displayName of a build.
  set-build-parameter
    Update/set the build parameter of the current build in progress.
  set-build-result
    Sets the result of the current build. Works only if invoked from within a build.
  set-external-build-result
    Set external monitor job result.
  shutdown
    Immediately shuts down Jenkins server.
  update-job
    Updates the job definition XML from stdin. The opposite of the get-job command.
  update-node
    Updates the node definition XML from stdin. The opposite of the get-node command.
  update-view
    Updates the view definition XML from stdin. The opposite of the get-view command.
  version
    Outputs the current version.
  wait-node-offline
    Wait for a node to become offline.
  wait-node-online
    Wait for a node to become online.
  who-am-i
    Reports your credential and permissions.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章