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

本頁說明如何以預先建構的 CIPD 套件將軟體整合至 Fuchsia 專案。

如要將預先建構的套件發布至 CIPD,請參閱以下指南:

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

必要條件

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

如果預先建構的套件包含 ELF 二進位檔 (無論是否位於 FAR 內),請刪除這些二進位檔。此外,針對 Fuchsia ELF 二進位檔,您必須產生並上傳配套符號套件,以支援符號化和偵錯作業。

選擇 CIPD 套件路徑

在 CIPD 儲存庫中,每個 CIPD 套件都有專屬路徑。這個路徑的命名慣例取決於 Fuchsia 專案是否產生 (或維護) 預先建構。

外部專案提供的 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 專案產生的 Fuchsia IDK 封存檔的套件。

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

    <CIPD_OS>-<CIPD_HOST_ARCHITECTURE>
    
    • <CIPD_OS> 是與 CIPD 相容的 OS 名稱。
      • <CIPD_OS> 使用 linuxmac (而非 Linuxosxdarwinmach)。
    • <CIPD_HOST_ARCHITECTURE> 是與 CIPD 相容的 CPU 架構名稱。
      • <CIPD_HOST_ARCHITECTURE> 使用 i386amd64arm64 (而非 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 建構的 SwiftShader 式 Vulkan ICD/驅動程式庫程式的路徑。

設定 CIPD 套件版本管理

Fuchsia 開發人員必須能識別用來產生每個 CIPD 套件執行個體的原始碼。

version

如要識別預先建構套件的來源,請以下列格式為每個修訂版本標記

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 二進位檔,也別忘了上傳隨附符號套件