<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      等峰也等你

      博客園 首頁 新隨筆 聯(lián)系 訂閱 管理

      Jenkins Api簡介

      • Jenkins 對外暴露的動作交付入口
      • 為外部程序提供入口,可以控制Jenkins
      • 支持協(xié)議 - Http
      • Api 接口支持用戶名、密碼認證
      • Jenkins Api支持的典型功能:運行Job、查看任務狀態(tài)、返回任務編號…等

      Jenkins Api 環(huán)境準備

      使用curl調用 獲取所有Jobs接口

      • 創(chuàng)建一個有任務運行和查詢權限的用戶
      • 較老版本的Jenkins操作關閉跨站腳本偽造請求保護,新版本的Jenkins無此選項了
      • 官方文檔 HTTPS://WWW.JENKINS.IO/DOC/BOOK/USING/REMOTE-ACCESS-API/

      curl -u USERNAME:PASSWORD "JENKINSURL:PORT/api/json?pretty=true"
      
      # 可以加上&tree=jobs[name,url]進行顯示內容的展示

      使用curl調用 獲取所有構建隊列

      curl -u USERNAME:PASSWORD JENKINSURL:PORT/queue/api/json?pretty=true

      使用curl調用 獲取Job信息

      # 獲取任務所有信息
      curl -u USERNAME:PASSWORD JENKINSURL:PORT/job/JOBNAME/api/json?pretty=true
      # 獲取最后一次構建信息
      curl -u USERNAME:PASSWORD JENKINSURL:PORT/job/JOBNAME/lastBuild/api/json?pretty=true
      # 獲取最后穩(wěn)定構建信息
      curl -u USERNAME:PASSWORD JENKINSURL:PORT/job/JOBNAME/lastStableBuild/api/json?pretty=true
      # 獲取最后成功的構建
      curl -u USERNAME:PASSWORD JENKINSURL:PORT/job/JOBNAME/lastSuccessfulBuild/api/json?pretty=true
      # 獲取最后完成的構建
      curl -u USERNAME:PASSWORD JENKINSURL:PORT/job/JOBNAME/lastCompletedBuild/api/json?pretty=true
      # 最近失敗的構建
      curl -u USERNAME:PASSWORD JENKINSURL:PORT/job/JOBNAME/lastFailedBuild/api/json?pretty=true

      使用curl調用 操作Job

      • 操作Job需要驗證 crumb
        • 獲取crumb使用
        • 使用token發(fā)起接口
      # 方式1:獲取crumb
      username_password="USERNAME:PASSWORD"
      jenkins_url="JENKINSURL:PORT"
      cookie_file="$(mktemp)"
      jenkins_crumb=$(curl -s -f -u "${username_password}" --cookie-jar "${cookie_file}" -s "${jenkins_url}/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,%22:%22,//crumb)")
      # 方式2:使用token

      使用curl調用 操作Job

      # 獲取job的config
      curl -u USERNAME:PASSWORD -O JENKINSURL:PORT/job/JOBNAME/config.xml
      # 創(chuàng)建job
      curl -u USERNAME:PASSWORD "JENKINSURL:PORT/createItem?name=JOBNAME" --cookie "${cookie_file}" -X POST -H "${jenkins_crumb}" -H 'Content-Type:text/xml' --data-binary "@./config.xml"
      # 復制job
      curl -u USERNAME:PASSWORD "JENKINSURL:PORT/createItem?name=NEWJOBNAME&mode=copy&from=JOBNAME" --cookie "${cookie_file}" -X POST -H "${jenkins_crumb}"
      # 修改job
      curl -u USERNAME:PASSWORD "JENKINSURL:PORT/job/JOBNAME/config.xml" --cookie "${cookie_file}" -X POST -H "${jenkins_crumb}" -H 'Content-Type:text/xml' --data-binary "@./config.xml"
      # 無參構建
      curl -u USERNAME:PASSWORD "JENKINSURL:PORT/job/JOBNAME/build" --cookie "${cookie_file}" -X POST -H "${jenkins_crumb}" 
      # 有參構建
      curl -u USERNAME:PASSWORD "JENKINSURL:PORT/job/JOBNAME/buildWithParameters" --cookie "${cookie_file}" -X POST -H "${jenkins_crumb}" --data-urlencode json='{"key1":"value1","key2":"value2"}'
      # 刪除job
      curl -u USERNAME:PASSWORD "JENKINSURL:PORT/job/JOBNAME/doDelete" --cookie "${cookie_file}" -X POST -H "${jenkins_crumb}"

      使用curl調用 操作指定構建的Job

      # 查看最新構建任務編號
      curl -u USERNAME:PASSWORD "JENKINSURL:PORT/job/son_demo/lastBuild/buildNumber"
      # 查看某次構建控制臺日志
      curl -u USERNAME:PASSWORD "JENKINSURL:PORT/job/JOBNAME/ID/logText/progressiveText"
      # 刪除某次構建
      curl -u USERNAME:PASSWORD "JENKINSURL:PORT/job/JOBNAME/ID/doDelete" -X POST --cookie "${cookie_file}" -H "${jenkins_crumb}"

      Python Jenkins Api常用接口操作

      • 安裝 pip install jenkinsapi

      jenkinsapi 連接Jenkins服務

      from jenkinsapi import jenkins
      
      my_jenkins = jenkins.Jenkins("JENKINSURL", "USERNAME", "PASSWORD", useCrumb=True)

      jenkinsapi 獲取所有jobs

      # 需要注意,如果請求的url與Jenkins Location配置的Jenkins URL不一致時,獲取到的key會拼接上一截地址
      print(my_jenkins.keys()) # 獲取所有的job名稱
      for info in my_jenkins.get_jobs_info():
          print(info)  # 獲取job的url與名稱  比較卡

      jenkinsapi 獲取構建隊列

      print(my_jenkins.get_queue().keys())

      jenkinsapi 獲取Job信息

      # 獲取job對象
      my_job = my_jenkins.get_job("JOBSNAME")
      # 獲取最后一次構建對象
      print(my_job.get_last_build())
      # 獲取最后一次完成的構建對象
      print(my_job.get_last_completed_build())
      # 獲取最后一次成功的構建對象
      print(my_job.get_last_good_build())
      # 獲取最后一次失敗的構建編號
      print(my_job.get_last_failed_buildnumber())

      jenkinsapi 操作Job信息

      # 獲取job的config
      print(my_job.get_config())
      # 創(chuàng)建job
      # 先獲取到job的config
      with open("config.xml", "w", encoding="utf-8") as f:
          my = my_jenkins.get_job("JOBNAME").get_config()
          f.write(my)
      my_jenkins.create_job("NEWJOBNAME", open("./config.xml",encoding="utf-8").read())
      # 復制job
      my_jenkins.copy_job("JOBNAME", "NEWJOBNAME")
      # 禁用job
      my_job.disable()
      # 啟用job
      my_job.enable()
      # 重命名job
      my_jenkins.rename_job("JOBNAME", "NEWJOBNAME")
      # 無參構建
      my_jenkins.build_job("JOBNAME")
      # 有參構建
      my_jenkins.build_job("JOBNAME", params={"key": "value"})
      # 刪除job
      my_jenkins.delete_job("JOBNAME")

      jenkinsapi 操作指定構建的Job

      # 當前job對象是否在隊列/構建中
      print(my_job.is_queued_or_running())
      # 獲取指定構建ID的對象
      build_object = my_job.get_build(BUILDID)
      # 獲取構建對象的時間戳
      print(build_object.get_timestamp())
      # 獲取控制臺日志
      print(build_object.get_console())
      # 獲取構建參數(shù)
      print(build_object.get_params())
      # 獲取構建的狀態(tài)
      print(build_object.get_status())
      # 獲取構建的變更日志
      print(build_object.get_changeset_items())
      # 刪除指定構建
      my_job.delete_build(BUILDID)
      posted on 2024-02-22 17:57  等峰也等你  閱讀(250)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 免费无码va一区二区三区| 国产精品护士| 亚洲悠悠色综合中文字幕| av中文字幕国产精品| 久久国产精品伊人青青草| 偷窥国产亚洲免费视频| 亚洲男人第一无码av网站| 99视频在线精品国自产拍| 国产成人午夜福利院| 亚洲日韩av无码一区二区三区人| 欧美变态另类zozo| 久久综合97丁香色香蕉| 久久久这里只有精品10| 日韩av综合免费在线| 午夜福利国产一区二区三区| 国产精品视频一区不卡| 亚洲一区二区三成人精品| 疯狂做受xxxx高潮欧美日本| 成人嫩草研究院久久久精品| 92国产精品午夜福利免费| 一区二区丝袜美腿视频| 亚洲精品综合第一国产综合| 国产在线中文字幕精品| 中文字幕亚洲人妻一区| 国产鲁鲁视频在线观看| 国产在线视频精品视频| 中文精品无码中文字幕无码专区| 国产精品无码不卡在线播放| 久久国产精品久久久久久 | 91久久久久无码精品露脸| 亚洲中文字幕综合小综合| 国产在线啪| 国产热A欧美热A在线视频| 无码人妻精品一区二区三区免费| 亚洲综合网一区中文字幕| 国产成人午夜福利院| 强奷乱码中文字幕| 久热久精久品这里在线观看| 国产成年码av片在线观看| 日韩一区二区三区一级片| 久久精品免视看国产成人|