將預先建立的套件發布至 CIPD

本資訊頁面說明如何將您的軟體整合到 Fuchsia 專案中。 預先建構的 CIPD 套件

如何將預先建構的套件發布至 CIPD、 請參閱下列指南:

將預先建構的套件發布至 CIDP 後 更新 Fuchsia Jiri 資訊清單 確認 Fuchsia 的套件內容適用於 持續整合 (CI) 和 Fuchsia 開發人員。

必要條件

如果打算使用 Fuchsia 封存內容 (FAR) 發布預先建構的 套件,請參閱 建構套件 (使用 FAR)。

如果您的預先建構套件 ELF 無論是 FAR 內部或非 FAR 內部,都必須去除這些二進位檔。此外, 如果是 Fuchsia ELF 二進位檔,您必須產生並上傳 隨播符號套件 支援符號化和偵錯功能

選取 CIPD 套件路徑

每個 CIPD 套件在 CIPD 儲存庫中都有不同的路徑。命名 這個路徑的慣例取決於系統是否已產生預先建構。 )。

外部專案提供的 CIPD 套件

如果是外部團隊或專案提供的預先建構 CIPD 套件, 請使用下列 CIPD 路徑命名慣例:

<PROJECT>/fuchsia/<PACKAGE>-<CIPD_TARGET_ARCHITECTURE>

<CIPD_TARGET_ARCHITECTURE> 是與 CIPD 相容的 CPU 架構 名稱 (例如,amd64 適用於 64 位元 Intel 二進位檔,而非 x64x86_64)。

請參閱以下範例:

,瞭解如何調查及移除這項存取權。

Fuchsia 專案產生的 CIPD 套件

如果是 Fuchsia 專案產生或維護的預先建構套件, 請使用下列 CIPD 路徑命名慣例:

  • 使用 fuchsia/ 做為所有預建套件的根專案目錄。

  • 如果是從第三方開放原始碼專案產生的預建項目,請使用路徑 低於 fuchsia/third_party/

    例如,fuchsia/third_party/ninja/ 包含預建的套件 Ninja 建構工具的二進位檔,fuchsia/sdk/core 則包含套件 對應至 Fuchsia IDK 封存檔。

  • 針對預建主機的最後一個目錄項目,請使用下列指令 慣例:

    <CIPD_OS>-<CIPD_HOST_ARCHITECTURE>
    
    • <CIPD_OS> 是與 CIPD 相容的 OS 名稱。
      • <CIPD_OS> 使用 linuxmac (非 Linuxosxdarwinmach)。
    • <CIPD_HOST_ARCHITECTURE> 是 CIPD 相容的 CPU 架構名稱。
      • i386amd64arm64 用於 <CIPD_HOST_ARCHITECTURE> (不是 x86x64aarch64)。

    舉例來說,fuchsia/third_party/clang/mac-amd64 是 包含 64 位元 Intel OS X Clang 工具鍊二進位檔的 CIPD 套件。

  • Fuchsia ELF 預先建構的路徑必須使用結尾如下的結尾:

    arch/<ARCH>
    
    • <ARCH> 是與 Fuchsia 相容的 CPU 架構名稱。

      • 請使用 x64arm64 (而非 amd64x86_64aarch64)。

    在 64 位元 Intel 二進位檔中,amd64 只會用於 主機預先建構,而 x64 僅用於 Fuchsia ELF 預先建構。

    舉例來說,fuchsia/third_party/swiftshader/arch/x64 是 專為 Fuchsia 打造的 Vulkan ICD/驅動程式庫程式,以 SwiftShader 為基礎。

設定 CIPD 套件版本管理

Fuchsia 開發人員必須能夠辨識 每個 CIPD 套件執行個體

version

如要識別預建套件的來源: 標記每個標記 修訂版本 ID,格式為:

version:<VERSION_ID_OF_INSTANCE>

例如 version:77.0.3835.0version:176326.

git_revision

除了指定 version 以外 (如有,例如建築物) 第三方開放原始碼專案),請納入 Git 修訂版本雜湊:

git_revision:<GIT_COMMIT_HASH>

這個 git_revision 標記可識別所用來源樹狀結構的確切 Git 修訂版本 建構二進位檔

如果有多個修訂版本是用相同的 Git 修訂版本雜湊建構而成 (例如 第一個執行個體誤以偵錯方式建構,而非發布模式 可使用以連字號 (-) 分隔的後置字串,例如: git_revision:<GIT_COMMIT_HASH>-2,用於新修訂版本的標記。

上傳 CIPD 套件

必須經過驗證才能手動上傳新的 CIPD 套件修訂版本 然後使用 cipd auth-login,然後執行 cipd create 指令。操作說明範例 提供 這個 CIPD 頁面

強烈建議您使用 cipd.yaml 檔案。建議您 從您的重新建構指令碼自動產生這個檔案,並且包括上傳 指示,如以下虛擬範例所示:

# This file was auto-generated by build-project-fuchsia-package.sh
# For more information, see http://myproject.url/docs/fuchsia/
#
# To upload the files in this CIPD package do:
#
#   TAG=git_revision:cd13435a975057b0ad0b72636f6c8323113c9c8b
#   VERSION=version:22.0.773.345
#   cipd create -pkg-defs cipd.yaml -tag $TAG -tag $VERSION
#
package: myproject/fuchsia/mypackage-arm64
description: mypackage's Fuchsia binaries from myproject.
data:
  - file: LICENSE # or NOTICE(.txt)
  - file: mypackage.far

別忘了一併上傳 隨播符號套件 (如果套件包含 Fuchsia ELF 二進位檔)。