Jenkins 下載發布後的檔案

Jenkins 可以達成很多事情,例如自動化測試、打包、部屬等,那該如何在網頁上下載部屬好的檔案呢?

如果是使用 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

留言