美文网首页iOS之常用第三方库的实用iOS IOS CI持续集成
iOS持续集成:jenkins+gitlab+蒲公英+邮件通知(

iOS持续集成:jenkins+gitlab+蒲公英+邮件通知(

作者: 十三亿少女梦丶 | 来源:发表于2016-05-12 14:20 被阅读526次

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

    jenkins环境搭建

    在Mac环境下,我们需要先安装JDK,然后在jenkins的官网下载最新Mac OS X版本的dmg包。安装完dmg包之后 默然自动开启jenkins服务,默认端口8080.
    这样就可以直接在浏览器中输入以下地址就可以打开jenkins了:

    http://localhost:8080
    

    jenkins 相关启动命令

    1. 默认情况下安装完dmg包,mac系统会自动生成全局变量:jenkins(变量地址:/usr/local/Cellar/jenkins/1.618/libexec/jenkins.war),只要在命令行中直接输入jenkins + 相关参数 即可运行相关命令。如:
    cmd$:jenkins --httpPort=8888 #更换端口号,当默认端口8080被占用,或者指定特定端口时。
    
    1. 由于mac系统版本的不同,可能会导致在一些环境中无法直接使用jenkins全局变量,这个时候需要找到安装的应用程序中jenkins文件夹下的jenk.war来启动或者执行命令.如:
    cmd$:java -jar /Applications/Jenkins/jenkins.war --httpPort=8888
    

    相关参数 可以通过在后面追加 --help 查看:如下

    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]
    
    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
    
    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
    
    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以及启动的情况下执行,执行语法:

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

    需要注意的是:执行该命令式 必须要登陆jenkins 也就是必要的用户名和密码格式如下:

    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
    

    实例:

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

    相关指令如下:

    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.
    

    相关文章

      网友评论

        本文标题:iOS持续集成:jenkins+gitlab+蒲公英+邮件通知(

        本文链接:https://www.haomeiwen.com/subject/rbhprttx.html