<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Job artifacts > 原文:[https://docs.gitlab.com/ee/ci/pipelines/job_artifacts.html](https://docs.gitlab.com/ee/ci/pipelines/job_artifacts.html) * [Defining artifacts in `.gitlab-ci.yml`](#defining-artifacts-in-gitlab-ciyml) * [`artifacts:reports`](#artifactsreports) * [`artifacts:reports:junit`](#artifactsreportsjunit) * [`artifacts:reports:dotenv`](#artifactsreportsdotenv) * [`artifacts:reports:cobertura`](#artifactsreportscobertura) * [`artifacts:reports:terraform`](#artifactsreportsterraform) * [`artifacts:reports:codequality`](#artifactsreportscodequality-starter) * [`artifacts:reports:sast`](#artifactsreportssast-ultimate) * [`artifacts:reports:secret_detection`](#artifactsreportssecret_detection-ultimate) * [`artifacts:reports:dependency_scanning`](#artifactsreportsdependency_scanning-ultimate) * [`artifacts:reports:container_scanning`](#artifactsreportscontainer_scanning-ultimate) * [`artifacts:reports:dast`](#artifactsreportsdast-ultimate) * [`artifacts:reports:license_management`](#artifactsreportslicense_management-ultimate) * [`artifacts:reports:license_scanning`](#artifactsreportslicense_scanning-ultimate) * [`artifacts:reports:performance`](#artifactsreportsperformance-premium) * [`artifacts:reports:load_performance`](#artifactsreportsload_performance-premium) * [`artifacts:reports:metrics`](#artifactsreportsmetrics-premium) * [`artifacts:reports:requirements`](#artifactsreportsrequirements-ultimate) * [Browsing artifacts](#browsing-artifacts) * [Downloading artifacts](#downloading-artifacts) * [Downloading the latest artifacts](#downloading-the-latest-artifacts) * [Erasing artifacts](#erasing-artifacts) * [Retrieve artifacts of private projects when using GitLab CI](#retrieve-artifacts-of-private-projects-when-using-gitlab-ci) # Job artifacts[](#job-artifacts "Permalink") 版本歷史 * 在 GitLab 8.2 和 GitLab Runner 0.7.0 中引入. * 從 GitLab 8.4 和 GitLab Runner 1.0 開始,工件存檔格式已更改為`ZIP` ,現在可以瀏覽其內容,并具有分別下載文件的功能. * 在 GitLab 8.17 中,將構建重命名為 job. * 工件瀏覽器僅適用于使用 GitLab Runner 1.0 及更高版本發送到 GitLab 的新工件. 無法瀏覽已經上傳到 GitLab 的舊工件. 作業工件是作業完成后創建的文件和目錄的列表. [默認情況下](../../administration/job_artifacts.html) ,所有 GitLab 安裝中均[啟用](../../administration/job_artifacts.html)此功能. 由 GitLab Runner 創建的作業工件被上傳到 GitLab,并可以使用 GitLab UI 或[GitLab API](../../api/jobs.html#get-job-artifacts)作為單個存檔下載. 有關概述,請觀看視頻[GitLab CI 管道,工件和環境](https://www.youtube.com/watch?v=PCKDICEe10s) . 也請觀看[面向初學者的 GitLab CI 管道教程](https://www.youtube.com/watch?v=Jav4vbUrqII) . ## Defining artifacts in `.gitlab-ci.yml`[](#defining-artifacts-in-gitlab-ciyml "Permalink") 在`.gitlab-ci.yml`中使用工件定義的一個簡單示例如下: ``` pdf: script: xelatex mycv.tex artifacts: paths: - mycv.pdf expire_in: 1 week ``` 名為`pdf`的作業會調用`xelatex`命令,以便從乳膠源文件`mycv.tex`生成 PDF 文件. 然后,我們定義`artifacts`路徑,這些路徑又用`paths`關鍵字定義. 文件和目錄的所有路徑都相對于在構建過程中克隆的存儲庫. 默認情況下,當作業成功時將上傳工件,但是可以將其設置為在作業失敗時上傳,或者如果使用[`artifacts:when`](../yaml/README.html#artifactswhen)參數,則始終設置為上傳. 根據`expire_in`定義,這些上傳的工件將在 GitLab 中保存 1 周. 您可以通過[Web 界面](#browsing-artifacts)防止工件過期. 如果未定義到期時間,則默認為[實例范圍設置](../../user/admin_area/settings/continuous_integration.html#default-artifacts-expiration-core-only) . 有關工件的更多示例,請遵循[`.gitlab-ci.yml`](../yaml/README.html#artifacts)的[工件參考](../yaml/README.html#artifacts) . ### `artifacts:reports`[](#artifactsreports "Permalink") 版本歷史 * 在 GitLab 11.2 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/20390) . * 需要 GitLab Runner 11.2 及更高版本. `artifacts:reports`關鍵字用于從作業中收集測試報告,代碼質量報告和安全性報告. 它還在 GitLab 的 UI 中顯示這些報告(合并請求,管道視圖和安全性儀表板). **注意:**無論作業結果(成功或失敗),都將收集測試報告. 您可以使用[`artifacts:expire_in`](../yaml/README.html#artifactsexpire_in)設置其工件的到期日期.**注:**如果您還希望能夠瀏覽報告輸出文件,請包括[`artifacts:paths`](../yaml/README.html#artifactspaths)關鍵字. #### `artifacts:reports:junit`[](#artifactsreportsjunit "Permalink") 版本歷史 * 在 GitLab 11.2 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/20390) . * 需要 GitLab Runner 11.2 及更高版本. `junit`報告將[JUnit XML 文件](https://www.ibm.com/support/knowledgecenter/en/SSQ2R2_14.1.0/com.ibm.rsar.analysis.codereview.cobol.doc/topics/cac_useresults_junit.html)收集為工件. 盡管 JUnit 最初是用 Java 開發的,但是還有許多其他[端口可以](https://en.wikipedia.org/wiki/JUnit#Ports)用于其他語言,例如 JavaScript,Python,Ruby 等. 有關更多詳細信息和示例,請參見[JUnit 測試報告](../junit_test_reports.html) . 下面是從 Ruby 的 RSpec 測試工具收集 JUnit XML 文件的示例: ``` rspec: stage: test script: - bundle install - rspec --format RspecJunitFormatter --out rspec.xml artifacts: reports: junit: rspec.xml ``` 收集的 JUnit 報告將作為工件上傳到 GitLab,并將自動顯示在合并請求中. **注意:**如果您使用的 JUnit 工具導出到多個 XML 文件,則可以在一個作業中指定多個測試報告路徑,它們將被自動串聯到一個文件中. 使用文件名模式( `junit: rspec-*.xml` ),文件名數組( `junit: [rspec-1.xml, rspec-2.xml, rspec-3.xml]` )或其組合( `junit: [rspec.xml, test-results/TEST-*.xml]` ). #### `artifacts:reports:dotenv`[](#artifactsreportsdotenv "Permalink") 版本歷史 * 在 GitLab 12.9 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/17066) . * 需要 GitLab Runner 11.5 及更高版本. `dotenv`報告收集一組環境變量作為工件. 收集的變量注冊為作業的運行時創建的變量,這對于[在作業完成后設置動態環境 URL](../environments/index.html#set-dynamic-environment-urls-after-a-job-finishes)很有用. [原始 dotenv 規則](https://github.com/motdotla/dotenv#rules)有兩個例外: * 可變鍵只能包含字母,數字和下劃線( `_` ). * `.env`文件的最大大小為 5 KB. * 變量的最大數量為 10. * 不支持`.env`文件中的變量替換. * `.env`文件不能包含空行或注釋(以`#`開頭). * `env`文件中的鍵值不能包含空格或換行符( `\n` ),包括使用單引號或雙引號時. * 不支持在解析過程中使用引號轉義( `key = 'value'` -> `{key: "value"}` ). #### `artifacts:reports:cobertura`[](#artifactsreportscobertura "Permalink") 版本歷史 * 在 GitLab 12.9 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/3708) . * 需要[GitLab Runner](https://docs.gitlab.com/runner/) 11.5 及更高版本. The `cobertura` report collects [Cobertura coverage XML files](../../user/project/merge_requests/test_coverage_visualization.html). The collected Cobertura coverage reports will be uploaded to GitLab as an artifact and will be automatically shown in merge requests. Cobertura 最初是為 Java 開發的,但是有許多第三方端口可用于其他語言,例如 JavaScript,Python,Ruby 等. #### `artifacts:reports:terraform`[](#artifactsreportsterraform "Permalink") 版本歷史 * 在 GitLab 13.0 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/207528) . * 需要[GitLab Runner](https://docs.gitlab.com/runner/) 11.5 及更高版本. `terraform`報告獲取 Terraform `tfplan.json`文件. [需要進行 JQ 處理才能刪除憑據](../../user/infrastructure/index.html#output-terraform-plan-information-into-a-merge-request) . 收集的 Terraform 計劃報告將作為工件上傳到 GitLab,并將在合并請求中自動顯示. 有關更多信息,請參見將[`terraform plan`信息輸出到合并請求中](../../user/infrastructure/index.html#output-terraform-plan-information-into-a-merge-request) . #### `artifacts:reports:codequality`[](#artifactsreportscodequality-starter "Permalink") 版本歷史 * 在 GitLab 11.5 中引入. * 需要 GitLab Runner 11.5 及更高版本. `codequality`報告將[CodeQuality 問題](../../user/project/merge_requests/code_quality.html)收集為工件. 收集的代碼質量報告將作為工件上傳到 GitLab,并在合并請求中進行匯總. #### `artifacts:reports:sast`[](#artifactsreportssast-ultimate "Permalink") 版本歷史 * 在 GitLab 11.5 中引入. * 需要 GitLab Runner 11.5 及更高版本. `sast`報告將[SAST 漏洞](../../user/application_security/sast/index.html)收集為工件. 收集的 SAST 報告將作為工件上傳到 GitLab,并將在合并請求和管道視圖中進行匯總. 它還用于為安全儀表板提供數據. #### `artifacts:reports:secret_detection`[](#artifactsreportssecret_detection-ultimate "Permalink") 版本歷史 * 在 GitLab 13.1 中引入. * 需要 GitLab Runner 11.5 及更高版本. `secret-detection`報告將[檢測到的機密](../../user/application_security/secret_detection/index.html)收集為偽像. 收集的 Secret Detection 報告作為工件上傳到 GitLab,并在合并請求和管道視圖中進行匯總. 它還用于為安全儀表板提供數據. #### `artifacts:reports:dependency_scanning`[](#artifactsreportsdependency_scanning-ultimate "Permalink") 版本歷史 * 在 GitLab 11.5 中引入. * 需要 GitLab Runner 11.5 及更高版本. `dependency_scanning`報告將" [依賴關系掃描"漏洞](../../user/application_security/dependency_scanning/index.html)收集為工件. 收集的"依賴關系掃描"報告將作為工件上傳到 GitLab,并將在合并請求和管道視圖中進行匯總. 它還用于為安全儀表板提供數據. #### `artifacts:reports:container_scanning`[](#artifactsreportscontainer_scanning-ultimate "Permalink") 版本歷史 * 在 GitLab 11.5 中引入. * 需要 GitLab Runner 11.5 及更高版本. `container_scanning`報告收集[容器掃描漏洞](../../user/application_security/container_scanning/index.html)作為工件. 收集的"容器掃描"報告將作為工件上傳到 GitLab,并將在合并請求和管道視圖中進行匯總. 它還用于為安全儀表板提供數據. #### `artifacts:reports:dast`[](#artifactsreportsdast-ultimate "Permalink") 版本歷史 * 在 GitLab 11.5 中引入. * 需要 GitLab Runner 11.5 及更高版本. `dast`報告將[DAST 漏洞](../../user/application_security/dast/index.html)收集為工件. 收集的 DAST 報告將作為工件上傳到 GitLab,并將在合并請求和管道視圖中進行匯總. 它還用于為安全儀表板提供數據. #### `artifacts:reports:license_management`[](#artifactsreportslicense_management-ultimate "Permalink") 版本歷史 * 在 GitLab 11.5 中引入. * 需要 GitLab Runner 11.5 及更高版本. **警告:**此工件仍然有效,但**不推薦使用** ,而**推薦使用** GitLab 12.8 中引入的[artifacts:reports:license_scanning](../pipelines/job_artifacts.html#artifactsreportslicense_scanning-ultimate) . `license_management`報告收集[許可證](../../user/compliance/license_compliance/index.html)作為工件. The collected License Compliance report will be uploaded to GitLab as an artifact and will be summarized in the merge requests and pipeline view. It’s also used to provide data for security dashboards. #### `artifacts:reports:license_scanning`[](#artifactsreportslicense_scanning-ultimate "Permalink") 版本歷史 * 在 GitLab 12.8 中引入. * 需要 GitLab Runner 11.5 及更高版本. `license_scanning`報告收集[許可證](../../user/compliance/license_compliance/index.html)作為工件. 許可證合規性報告將作為工件上傳到 GitLab,并將自動顯示在合并請求,管道視圖中,并為安全儀表板提供數據. #### `artifacts:reports:performance`[](#artifactsreportsperformance-premium "Permalink") 版本歷史 * 在 GitLab 11.5 中引入. * 需要 GitLab Runner 11.5 及更高版本. `performance`報告收集[瀏覽器性能測試指標](../../user/project/merge_requests/browser_performance_testing.html)作為工件. 收集的瀏覽器性能報告將作為工件上傳到 GitLab,并將自動顯示在合并請求中. #### `artifacts:reports:load_performance`[](#artifactsreportsload_performance-premium "Permalink") 版本歷史 * 介紹了[GitLab 13.2](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/35260)在[GitLab 溢價](https://about.gitlab.com/pricing/) 13.2\. * 需要 GitLab Runner 11.5 及更高版本. `load_performance`報告收集工件的[負載性能測試指標](../../user/project/merge_requests/load_performance_testing.html) . 該報告作為工件被上傳到 GitLab,并自動顯示在合并請求中. #### `artifacts:reports:metrics`[](#artifactsreportsmetrics-premium "Permalink") 在 GitLab 11.10 中引入. `metrics`報告收集[指標](../metrics_reports.html)作為工件. 收集的指標報告將作為工件上傳到 GitLab,并將自動顯示在合并請求中. #### `artifacts:reports:requirements`[](#artifactsreportsrequirements-ultimate "Permalink") 版本歷史 * 在 GitLab 13.1 中[引入](https://gitlab.com/groups/gitlab-org/-/epics/2859) . * 需要 GitLab Runner 11.5 及更高版本. `requirements`報告收集工件的`requirements.json`文件. 收集的需求報告將作為工件上傳到 GitLab,現有[需求](../../user/project/requirements/index.html)將標記為"滿意". ## Browsing artifacts[](#browsing-artifacts "Permalink") 版本歷史 * 從 GitLab 9.2,可以直接在工作工件瀏覽器中預覽 PDF,圖像,視頻和其他格式,而無需下載它們. * 在[GitLab 10.1 中](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/14399)引入的公共項目中的 HTML 文件可以在新選項卡中直接預覽,而在啟用[GitLab Pages](../../administration/pages/index.html)時無需下載它們. 文本格式也是如此(當前支持的擴展名: `.txt` , `.json`和`.log` ). * 在[GitLab 12.4 中](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/16675)引入后,啟用[GitLab 頁面訪問控制后,便](../../administration/pages/index.html#access-control)可以預覽私有項目中的工件. 作業完成后,如果您訪問作業的特定頁面,則有三個按鈕. 您可以下載工件歸檔文件或瀏覽其內容,而" **保留"**按鈕僅在您為工件設置了[有效日期](../yaml/README.html#artifactsexpire_in)的情況下出現,以防萬一您改變主意并希望保留它們. [![Job artifacts browser button](https://img.kancloud.cn/9d/0b/9d0b60ef33626ec6ee9621e2a6711e23_287x265.png)](img/job_artifacts_browser_button.png) 存檔瀏覽器顯示存檔中每個文件的名稱和實際文件大小. 如果您的工件包含目錄,那么您也可以在其中進行瀏覽. 您可以在下面看到瀏覽的樣子. 在這種情況下,我們瀏覽了檔案內部,此時有一個目錄,幾個文件和一個 HTML 文件,啟用[GitLab 頁面](../../administration/pages/index.html) (在新選項卡中打開)后,您可以直接在線查看. [![Job artifacts browser](https://img.kancloud.cn/43/1d/431df0eb1f892af01732935d905d563d_711x320.png)](img/job_artifacts_browser.png) ## Downloading artifacts[](#downloading-artifacts "Permalink") 如果您需要下載工件或整個檔案,請在 GitLab UI 的不同位置進行操作: 1. 在管道頁面上,您可以在右上角看到每個作業的工件和存檔的下載圖標: [![Job artifacts in Pipelines page](https://img.kancloud.cn/b6/2c/b62c05bacc3aee489bcaaa2b8986dcb7_1267x301.png)](img/job_artifacts_pipelines_page.png) 2. 在" **作業"**頁面上,您可以在右上角看到每個作業的工件和存檔的下載圖標: [![Job artifacts in Builds page](https://img.kancloud.cn/47/51/47519f210ca2c250dcd61ebb3c509aac_1275x319.png)](img/job_artifacts_builds_page.png) 3. While inside a specific job, you’re presented with a download button along with the one that browses the archive: [![Job artifacts browser button](https://img.kancloud.cn/9d/0b/9d0b60ef33626ec6ee9621e2a6711e23_287x265.png)](img/job_artifacts_browser_button.png) 4. 最后,在瀏覽檔案時,您可以在右上角看到下載按鈕: [![Job artifacts browser](https://img.kancloud.cn/43/1d/431df0eb1f892af01732935d905d563d_711x320.png)](img/job_artifacts_browser.png) ## Downloading the latest artifacts[](#downloading-the-latest-artifacts "Permalink") 可以通過眾所周知的 URL 下載作業的最新工件,以便將其用于腳本目的. **注意:**最新工件是由作業在特定引用的**最新**成功管道中創建的. 如果您為相同的參考運行兩種類型的管道,則最新的工件將通過計時來確定. 例如,如果通過合并合并請求創建的分支管道與計劃的管道同時運行,則最新的工件將來自最近完成的管道. 可以直接訪問其他管道的工件. 用于下載整個工件存檔的 URL 的結構如下: ``` https://example.com/<namespace>/<project>/-/jobs/artifacts/<ref>/download?job=<job_name> ``` To download a single file from the artifacts use the following URL: ``` https://example.com/<namespace>/<project>/-/jobs/artifacts/<ref>/raw/<path_to_file>?job=<job_name> ``` 例如,要下載名為`gitlab`項目的`master`分支(屬于`gitlab-org`命名空間)的`coverage`的作業的最新工件,URL 為: ``` https://gitlab.com/gitlab-org/gitlab/-/jobs/artifacts/master/download?job=coverage ``` 要從相同的工件下載文件`coverage/index.html` ,請使用以下 URL: ``` https://gitlab.com/gitlab-org/gitlab/-/jobs/artifacts/master/raw/coverage/index.html?job=coverage ``` 還有一個 URL 可瀏覽最新的作業工件: ``` https://example.com/<namespace>/<project>/-/jobs/artifacts/<ref>/browse?job=<job_name> ``` 例如: ``` https://gitlab.com/gitlab-org/gitlab/-/jobs/artifacts/master/browse?job=coverage ``` 還有一個指向特定文件的 URL,包括在[GitLab 頁面](../../administration/pages/index.html)中顯示的 HTML 文件: ``` https://example.com/<namespace>/<project>/-/jobs/artifacts/<ref>/file/<path>?job=<job_name> ``` 例如,當一個作業`coverage`創建神器`htmlcov/index.html` ,你可以訪問它: ``` https://gitlab.com/gitlab-org/gitlab/-/jobs/artifacts/master/file/htmlcov/index.html?job=coverage ``` UI 的不同位置也公開了最新版本. 具體來說,請在以下位置查找下載按鈕: * 主項目頁面 * 分支機構頁面 * 標簽頁面 如果最新作業未能上傳工件,則可以在 UI 中看到該信息. [![Latest artifacts button](https://img.kancloud.cn/5e/1d/5e1d62a3d3af509e4a4c2bdd1c4ecdca_300x384.png)](img/job_latest_artifacts_browser.png) ## Erasing artifacts[](#erasing-artifacts "Permalink") **警告:**這是一種破壞性行為,會導致數據丟失. 請謹慎使用. 您可以通過 UI 刪除單個作業,如果您是以下情況,則它也將刪除作業的工件和跟蹤: * 工作的所有者. * 項目的[維護者](../../user/permissions.html#gitlab-cicd-permissions) . 刪除作業: 1. 導航到工作頁面. 2. 單擊作業跟蹤右上方的垃圾桶圖標. 3. 確認刪除. ## Retrieve artifacts of private projects when using GitLab CI[](#retrieve-artifacts-of-private-projects-when-using-gitlab-ci "Permalink") 為了檢索不同項目的作業工件,您可能需要使用專用令牌來[認證和下載](../../api/jobs.html#get-job-artifacts)工件.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看