本頁說明如何以預先建構的 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 二進位檔,而非 x64
或 x86_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>
使用linux
或mac
(而非Linux
、osx
、darwin
或mach
)。
- 為
<CIPD_HOST_ARCHITECTURE>
是與 CIPD 相容的 CPU 架構名稱。- 為
<CIPD_HOST_ARCHITECTURE>
使用i386
、amd64
或arm64
(而非x86
、x64
或aarch64
)。
- 為
舉例來說,
fuchsia/third_party/clang/mac-amd64
是包含 64 位元 Intel OS X Clang 工具鍊二進位檔的 CIPD 套件使用的路徑。Fuchsia ELF 預先建構的路徑需使用結尾為以下內容的路徑:
arch/<ARCH>
<ARCH>
是與 Fuchsia 相容的 CPU 架構名稱。- 使用
x64
或arm64
(而非amd64
、x86_64
或aarch64
)。
- 使用
如果是 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.0
和 version: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 二進位檔,也別忘了上傳隨附符號套件。