jenkins BlueOcean修復Pipeline不支持中文的問題


問題

在Jenkins的BlueOcean中,修改Pipeline,結果發現,如果編寫過程中,凡是能導致jenkinsFile有中文信息的,點擊 save and run之后 Console 中出現錯誤,無法保存。

分析

根據錯誤信息,定位到問題來源jenkins-js-extension.js,該問題和 js的btoa和atob 不支持unicode有關。

解決

  1. 將jenkins的./webapps/plugins/blueocean-pipeline-editor/WEB-INF/lib/blueocean-pipeline-editor.jar下載到本地,
  2. 解壓出jenkins-js-extension.js,搜索btoa,有兩處一樣的代碼,搜索atob也是一樣的,成對出現。
  3. 修改代碼,將兩處encode和decode修改為以下結果:
  4. 將修改之后的jenkins-js-extension.js拖入blueocean-pipeline-editor.jar。
  5. 將修改之后的blueocean-pipeline-editor.jar上傳到Jenkins的原處:./webapps/plugins/blueocean-pipeline-editor/WEB-INF/lib/blueocean-pipeline-editor.jar
var Base64 = {
    encode: function encode(data) {
        return btoa(unescape(encodeURIComponent(data)));
    },
    decode: function decode(str) {
        return decodeURIComponent(escape(atob(str)));
    }
};

該JS的黑魔法解決方案來自這里

本解決方案原創,轉載需要注明


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM