這個需求很少見,但是好不容易試驗成功了,所以要記錄下來備忘。
我們使用Jenkins+TexturePacker進行資源的自動打包和轉換。
TexturePacker首次運行需要在命令行中輸入agree進行版權聲明的用戶確認。而Jenkins的系統環境是獨立於桌面系統的,所以在Jenkins裏面要再一次輸入agree。於是就有了一個非常噁心的情況,Jenkins裏面運行TexturePacker命令行沒有給用戶輸入agree的地方。
幸好有萬能的python腳本。它可以模擬用戶的輸入。這樣只需要在Jenkins裏面執行一下這個腳本(建立一個Job,Execute Shell裏面運行如下腳本)
#!python.exe
import subprocess
halls = subprocess.Popen([r'D:\Workspace\TexturePacker\bin\TexturePacker.exe'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
result = halls.communicate(input=r'agree')[0]
print halls.returncode
print halls.communicate()