Posts
Slack - Post Jenkins build notifications to a channel in Slack
要使用 Slack 接收 Jenkins CI 的建置通知訊息,可在 Slack 中加入 Jenkins CI App。
選取 Jenkins CI 建置通知訊息收到後要顯示在哪個 Channel,然後按下 Add Travis CI Integration 按鈕。
然後照著指示設定 Jenkins。
像是透過 Jenkins 的外掛程式管理為 Jenkins 加裝 Slack Notification 套件。
接著進入設定系統。
設定 Global Slack Notifier Settings 的 Base URL 與 Integration Token,按下儲存按鈕。
進到 Job 的組態設定。
在建置後動作加入 Slack Notifications。
設定要通知的事件。
當對應事件發生時 Slack 就會收到 Jenkins 的通知訊息。
Link Jenkins CI | Slack App Directory
read morePosts
Slack - Setting up Slack build notification in Travis CI
要使用 Slack 接收 Travis CI 的建置通知訊息,可在 Slack 中加入 Travis CI App。
選取 Travis CI 建置通知訊息收到後要顯示在哪個 Channel。
選好後按下 Add Travis CI Integration 按鈕。
接著照著教學設置 Travis CI 的設定檔。
再接著設置 Travis CI App 的名字、描述、圖示等,設置完後按下 Save Settings 按鈕存檔。
後續 Travis CI 建置時。Slack 就可以在指定的 Channel 收到對應的建置通知。
Link
read morePosts
Hubot - Interact with Jenkins CI server
要將 Hubot 整合 Jenkins 服務,可為 Hubot 加裝 hubot-jenkins 套件。
npm i hubot-jenkins 開啟 external-scripts.json,加上 hubot-jenkins 設定,存檔後關閉。
然後要透過 HUBOT_JENKINS_URL 環境變數設定 Jenkins 服務的位置。
set HUBOT_JENKINS_URL=<JenkinsUrl> 透過 HUBOT_JENKINS_AUTH 環境變數設定 Jenkins 服務的帳密 (使用 user:password 這樣的格式做設定)。
set HUBOT_JENKINS_AUTH=<Auth> 將 Hubot 啟動,可對 Hubot 調用命令查閱 Jenkins 服務上有的 Job。
<Hubot> jenkins list 可查詢指定的 Jenkins Job。
<Hubot> jenkins describe <Job> 可用 Jenkins Job Name 去建置特定的 Jenkins Job。
<Hubot> jenkins build <Job> 或是用編號建置特定的 Jenkins Job。
<Hubot> jenkins b <No> 也可以查詢特定 Jenkins Job 最後一次建置。
read morePosts
Hubot - Using with SSH
要將 Hubot 整合 SSH,可以安裝 hubot-sshbot。
npm install --save hubot-sshbot 安裝完後透過 HUBOT_SSH_HOST_KEY 環境變數指定 SSH key。
set HUBOT_SSH_HOST_KEY=<SSHKey> 透過 HUBOT_SSH_POST 環境變數指定要使用的 Port (預設是使用 3050)。
set HUBOT_SSH_PORT=<Port> 透過 HUBOT_SSH_HOST 環境變數指定 Host 的位置 (預設是 0.0.0.0)。
將 Hubot 運行起來並指定使用 SSH adapter。
hubot -a sshbot 接著透過 SSH 連進去。
就可以看到 SSH Hubot 的畫面。
可以透過 SSH Hubot 調用 Hubot 命令。
Link kylemacey/hubot-sshbot: An SSH based Hubot adapter to allow Hubot to be accessed from an SSH client.
read morePosts
Hubot - Using with slack
要將 Hubot 整合 Slack,首先要先在 Slack 上建立 Hubot App。
在 Slack 上點選加入 Apps。
選取安裝 Hubot App。
點選 Install 按鈕。
為加進 Slack 的 Hubot 取個名字,然後按下 Add Hubot Integration 按鈕。
複製 API Token 供後續使用,設定 Hubot 的名字、圖示…等資訓。
按下 Save Integration 按鈕。
Slack 的 Apps 那區就會顯示剛所建立的 Hubot App。
接著安裝 Hubot 要用到的 Slack adapter。
npm install hubot-slack --save 將剛剛複製的 API Token 設到環境變數。
set HUBOT_SLACK_TOKEN=<Token> 將 Hubot 運行起來並指定使用 Slack adapter。
hubot --adapter slack Hubot 與 Slack 就做完整合的動作了,可直接對 Slack 的 Hubot app 調用 Hubot 的命令。
read morePosts
Cake - Cleans the specified directories
要使用 Cake 清除特定目錄,可以參閱 CleanDirectories 的使用方式。
調用上可以直接帶入目錄的集合,或是目錄的 match pattern。
像是用 match pattern 去清除目錄腳本撰寫起來就會像下面這樣。
... Task("Clean") .Does(() => { CleanDirectories("./**/bin/" + configuration); CleanDirectories("./**/obj/" + configuration); }); ... Cake 任務運行後。
指定目錄的檔案就會被清除。
最後附上完整的 Cake 腳本。
/////////////////////////////////////////////////////////////////////////////// // ARGUMENTS /////////////////////////////////////////////////////////////////////////////// var target = Argument("target", "Default"); var configuration = Argument("configuration", "Release"); /////////////////////////////////////////////////////////////////////////////// // SETUP / TEARDOWN /////////////////////////////////////////////////////////////////////////////// Setup(ctx => { // Executed BEFORE the first task. Information("Running tasks..."); }); Teardown(ctx => { // Executed AFTER the last task.
read morePosts
Cake - Build with MSBuild
要使用 Cake 透過 MSBuild 建置方案,可以參閱 Cake 內使用 MSBuild 的方式。
調用上就是帶入方案檔即可,如有需要設定再帶入設定值而已。
所以建置的腳本寫起來會像下面這樣,先帶入方案檔的位置找到對應的方案檔,遍尋方案檔調用 MSBuild,如有需要則加帶設定,像是是否要將緊告示為錯誤、或是設定是要建置 Debug 或是 Release 等。
var solutions = GetFiles("../**/*.sln"); ... Task("Build") .Does(() => { foreach(var solution in solutions) { ... MSBuild(solution, settings => settings.SetPlatformTarget(PlatformTarget.MSIL) .WithProperty("TreatWarningsAsErrors","true") .WithTarget("Build") .SetConfiguration(configuration)); } }); ... Cake 任務運行後。
輸出目錄就會看到建置出來的檔案。
最後附上完整的 Cake 腳本。
var solutions = GetFiles("../**/*.sln"); /////////////////////////////////////////////////////////////////////////////// // ARGUMENTS /////////////////////////////////////////////////////////////////////////////// var target = Argument("target", "Default"); var configuration = Argument("configuration", "Release"); /////////////////////////////////////////////////////////////////////////////// // SETUP / TEARDOWN /////////////////////////////////////////////////////////////////////////////// Setup(ctx => { // Executed BEFORE the first task.
read morePosts
Cake - Visual Studio Code Cake extension
要在 Visual Studio Code 使用 Cake,可以為 Visual Studio 加裝 Cake 擴充套件。
安裝完可開啟 Command Palette。
使用 Cake: Install a boostrapper 為專案加入 boostrapper。
使用 Cake: Install a configuration file 為專案加入 Cake 設定檔。
使用 Cake: Install sample build file 為專案加入 Cake 腳本的範本。
如果一次要加入多個項目,可直接使用 Cake: Install to workspace。
要除錯的話可加入 launch.json,直接透過 Visual Studio Code 除錯。
如果要直接運行腳本的任務,可點選 [ Tasks | Run Task… ] 主選單選項。
選取要運行的腳本任務即可。
Link
read morePosts
Cake - Global .NET CLI tool
Cake 0.30.0 後開始支援 Global .NET CLI tool,可透過 dotnet tool 安裝。
dotnet tool install -g Cake.Tool 安裝完就可以直接透過 dotnet 命令運行 Cake。
dotnet cake <CakeFile> Link [Cake - Cake v0.30.0 released] (https://cakebuild.net/blog/2018/08/cake-v0.30.0-released)
read morePosts
Cake - Cake.Portable
Cake.Portable 是 Cake script runner,可直接透過 chocolatey 安裝。
choco install cake.portable 安裝完可以直接調用 Cake 命令測試看看,像是查閱 Cake 命令的使用方式。
cake --help 在使用上也就不需要再透過 bootstrapper 下載,可以直接運行 cake script。
Link Chocolatey Gallery | Cake.Portable 0.30.0
read more