Jenkins 可以達成很多事情,例如自動化測試、打包、部屬等,那該如何在網頁上下載部屬好的檔案呢?
如果是使用 Pipeline ,可以透過 archiveArtifacts 套件非常簡單的達成。只要在 Jenkinsfile 中發布完成後的動作新增下面的步驟即可:
筆者測試的專案是 ASP.NET Core 6 ,在 docker 中打包、產生 docker image ,完成後啟動 docker 容器。
按照筆者的流程可以在啟動後直接將 docker 中的檔案複製出來。下面的範例 docker 容器名稱為 my_docker_container ,並且排除掉開發設定檔和 logs 資料夾,其餘的所有檔案都會出現在網頁中方便下載:
設定完成後,當每次任務執行完畢時都可以在上面看到 Build Artifacts 資料夾:
點進去就可以將所有檔案壓縮並下載:
也可以單獨查看各別檔案:
參考資料:
Jenkins - Archive the artifacts
如果是使用 Pipeline ,可以透過 archiveArtifacts 套件非常簡單的達成。只要在 Jenkinsfile 中發布完成後的動作新增下面的步驟即可:
stage('Archive Artifacts') {
steps {
archiveArtifacts artifacts: '**/**', allowEmptyArchive: false
}
}
筆者測試的專案是 ASP.NET Core 6 ,在 docker 中打包、產生 docker image ,完成後啟動 docker 容器。
按照筆者的流程可以在啟動後直接將 docker 中的檔案複製出來。下面的範例 docker 容器名稱為 my_docker_container ,並且排除掉開發設定檔和 logs 資料夾,其餘的所有檔案都會出現在網頁中方便下載:
stage('Archive Artifacts') {
steps {
echo 'Archive Artifacts'
sh """
docker cp my_docker_container:/app/ ./publish
""".trim()
archiveArtifacts artifacts: 'publish/**', allowEmptyArchive: false, excludes: 'publish/appsettings.Development.json,publish/logs/**'
}
}
設定完成後,當每次任務執行完畢時都可以在上面看到 Build Artifacts 資料夾:
點進去就可以將所有檔案壓縮並下載:
也可以單獨查看各別檔案:
參考資料:
Jenkins - Archive the artifacts
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com