Jenkins CLI를 사용하여 작업

7472 단어 Jenkins

목적


  • 자신의 비망록
  • 이외에 Jenkins CLI 모르는 사람 많기 때문에 공개

  • 절차 개요


  • ssh 공개 키를 Jenkins로 설정
  • jenkins-cli.jar 다운로드
  • jenkins-cli 실행

  • 절차



    ssh 공개 키를 Jenkins로 설정



    오른쪽 상단에서 설정 클릭하여 자신의 사용자 설정을 변경합니다.



    SSH Public Keys에 자신의 공개 키 정보를 추가합니다.
    다음은 입력 예 (더미)



    jenkins-cli.jar 다운로드



    Jenkins 관리 를 클릭하십시오.



    Jenkins CLI를 클릭합니다.



    전환 대상 화면의 jenkins-cli.jar 링크를 클릭하면 jenkins-cli.jar이 다운로드됩니다.



    jenkins-cli 실행



    동작 확인



    다운로드한 파일을 적당한 장소에 배치하여 실행한다.
    도움말이 표시되면 OK.

    jenkins-cli 도움말 보기
    $ java -jar jenkins-cli.jar -s http://{JenkinsのURL} help
    WARNING: An illegal reflective access operation has occurred
    WARNING: Illegal reflective access by hudson.remoting.RemoteClassLoader (file:/Users/01013548/repositories/chappie/chappie-infra-job-definition/jenkins-cli.jar) to method java.lang.ClassLoader.getClassLoadingLock(java.lang.String)
    WARNING: Please consider reporting this to the maintainers of hudson.remoting.RemoteClassLoader
    WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
    WARNING: All illegal access operations will be denied in a future release
      add-job-to-view
        Adds jobs to view.
      build
        ジョブをビルドします。オプションで完了するまで待ちます。
      cancel-quiet-down
        "quiet-down"コマンドの処理をキャンセルします。
      clear-queue
        ビルドキューをクリアします。
    
    ~~~~~~~~~~~~中略~~~~~~~~~~~~~~~~~~~~
    
      update-node
        標準入力からの情報でノード定義XMLを更新します。get-nodeコマンドの正反対のことを行います。
      update-view
        Updates the view definition XML from stdin. The opposite of the get-view command.
      version
        バージョンを表示します。
      wait-node-offline
        ノードがオフラインになるのを待ちます。
      wait-node-online
        ノードがオンラインになるのを待ちます。
      who-am-i
        認証情報を表示します。
    

    Java9를 사용하면 Warning이 대량으로 나오는데 문제 없음.

    작업 확인



    기존 작업을 확인할 때 다음 명령을 실행합니다.
    표준 출력에 작업 내용이 표시됩니다. 그리고는 삶아지고 구워져 좋아합니다.

    기존 작업 표시
    $ java -jar jenkins-cli.jar -s http://{JenkinsのURL} get-job ジョブの名前
    

    기존 작업 표시 (실행 결과 샘플)
    $ java -jar jenkins-cli.jar -s http://{JenkinsのURL} get-job sample
    WARNING: An illegal reflective access operation has occurred
    WARNING: Illegal reflective access by hudson.remoting.RemoteClassLoader (file:/Users/01013548/repositories/chappie/chappie-infra-job-definition/jenkins-cli.jar) to method java.lang.ClassLoader.getClassLoadingLock(java.lang.String)
    WARNING: Please consider reporting this to the maintainers of hudson.remoting.RemoteClassLoader
    WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
    WARNING: All illegal access operations will be denied in a future release
    <?xml version='1.0' encoding='UTF-8'?>
    <project>
      <description>サンプル</description>
      <keepDependencies>false</keepDependencies>
      <properties>
        <org.datadog.jenkins.plugins.datadog.DatadogJobProperty plugin="[email protected]">
          <tagProperties></tagProperties>
          <tagFile></tagFile>
          <emitOnCheckout>false</emitOnCheckout>
        </org.datadog.jenkins.plugins.datadog.DatadogJobProperty>
      </properties>
      <scm class="hudson.scm.NullSCM"/>
      <canRoam>true</canRoam>
      <disabled>false</disabled>
      <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
      <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
      <triggers/>
      <concurrentBuild>false</concurrentBuild>
      <builders/>
      <publishers/>
      <buildWrappers>
        <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="[email protected]">
          <deleteDirs>false</deleteDirs>
          <cleanupParameter></cleanupParameter>
          <externalDelete></externalDelete>
        </hudson.plugins.ws__cleanup.PreBuildCleanup>
        <hudson.plugins.ansicolor.AnsiColorBuildWrapper plugin="[email protected]">
          <colorMapName>xterm</colorMapName>
        </hudson.plugins.ansicolor.AnsiColorBuildWrapper>
        <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="[email protected]"/>
      </buildWrappers>
    

    작업 만들기



    리디렉션을 사용하여 표준 입력에서 xml 파일을 읽어 작업을 만듭니다.
    XML 파일을 모두 이치에서 그리는 것은 힘들기 때문에,
    다른 작업을 get-job한 결과를 저장 & 일부 변경 -> create-job 하는 것이 즐겁다.

    작업 만들기
    $ java -jar jenkins-cli.jar -s http://{JenkinsのURL} create-job {ジョブ名} < ジョブの定義ファイル(xml)
    

    요약



    이제 Jenkins의 화면을 터뜨리고 작업을 만들거나 하지 않아도 된다.
    비슷한 작업을 대량으로 만들거나 사시미 민들레적인 일을 다소 편하게 할 수있을 것. . .

    XML-yaml의 상호 변환이라든가 하면 인간에게도 상냥해질 것 같네요.
    (할 수 있는지는 모른다)

    좋은 웹페이지 즐겨찾기