本資訊頁面說明如何將您的軟體整合到 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 二進位檔,而非 x64
,
x86_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>
使用linux
或mac
(非Linux
、osx
、darwin
或mach
)。
- 為
<CIPD_HOST_ARCHITECTURE>
是 CIPD 相容的 CPU 架構名稱。- 將
i386
、amd64
或arm64
用於<CIPD_HOST_ARCHITECTURE>
(不是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 打造的 Vulkan ICD/驅動程式庫程式,以 SwiftShader 為基礎。
設定 CIPD 套件版本管理
Fuchsia 開發人員必須能夠辨識 每個 CIPD 套件執行個體
version
如要識別預建套件的來源: 標記每個標記 修訂版本 ID,格式為:
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 二進位檔)。