feat: add Deepin CI build workflows#593
Conversation
Reviewer's GuideThis PR adds three dedicated GitHub Actions workflows that configure and utilize a Deepin pbuilder environment to build and package qwlroots, waylib (with a custom hook to install qwlroots), and treeland (including building treeland-protocols, merging dependencies, and producing a ZIP artifact with metadata). Sequence diagram for waylib build workflow with qwlroots dependencysequenceDiagram
participant GA as "GitHub Actions"
participant PB as "pbuilder (Deepin)"
participant Q as "qwlroots"
participant W as "waylib"
GA->>PB: Create pbuilder environment
GA->>Q: Build qwlroots source package
GA->>PB: Build qwlroots in pbuilder
PB->>Q: Build qwlroots
PB->>PB: Store qwlroots .deb in result
GA->>PB: Create hook to install qwlroots
GA->>W: Modify waylib to use system qwlroots
GA->>W: Build waylib source package
GA->>PB: Build waylib in pbuilder
PB->>PB: Hook installs qwlroots .deb
PB->>W: Build waylib
PB->>PB: Store waylib .deb in result
GA->>GA: Upload waylib .deb as artifact
Sequence diagram for treeland build workflow with merged dependencies and ZIP packagingsequenceDiagram
participant GA as "GitHub Actions"
participant PB as "pbuilder (Deepin)"
participant TP as "treeland-protocols"
participant TL as "treeland"
GA->>PB: Create pbuilder environment
PB->>PB: Configure apt sources
PB->>PB: Install build dependencies
PB->>TP: Clone and build treeland-protocols
PB->>TP: Install treeland-protocols
PB->>TL: Configure and build treeland (merged waylib/qwlroots)
PB->>TL: Install treeland to result directory
GA->>PB: Copy installed files from pbuilder result
GA->>GA: Create PACKAGE_INFO.txt
GA->>GA: Package files into ZIP
GA->>GA: Upload ZIP as artifact
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Hey there - I've reviewed your changes - here's some feedback:
- Consider extracting the repeated pbuilder setup steps into a reusable composite action or workflow template to reduce duplication across these workflows.
- The treeland workflow currently runs on every push/PR; you may want to scope its triggers to treeland-related paths or tags to avoid unnecessary CI runs.
- Using debian:unstable as the build container might introduce variability—consider switching to a dedicated Deepin or more stable base image for reproducible builds.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- Consider extracting the repeated pbuilder setup steps into a reusable composite action or workflow template to reduce duplication across these workflows.
- The treeland workflow currently runs on every push/PR; you may want to scope its triggers to treeland-related paths or tags to avoid unnecessary CI runs.
- Using debian:unstable as the build container might introduce variability—consider switching to a dedicated Deepin or more stable base image for reproducible builds.
## Individual Comments
### Comment 1
<location> `.github/workflows/treeland-deepin-build.yml:61` </location>
<code_context>
+ apt-get install -y devscripts equivs ca-certificates gnupg git
+
+ # Install build dependencies from control file
+ mk-build-deps --install --remove --tool='apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes' debian/control
+
+ # Build and install treeland-protocols
</code_context>
<issue_to_address>
**suggestion (bug_risk):** Using mk-build-deps with '--remove' may remove build dependencies prematurely.
Omitting '--remove' will keep all build dependencies installed for the duration of the build, preventing potential issues with missing packages.
```suggestion
mk-build-deps --install --tool='apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes' debian/control
```
</issue_to_address>
### Comment 2
<location> `.github/workflows/qwlroots-deepin-build.yml:53-57` </location>
<code_context>
+ dpkg-buildpackage -S -uc -us
+
+ # Build the package in pbuilder
+ sudo pbuilder build ../*.dsc
+
+ - name: Upload qwlroots Deepin packages as artifacts
</code_context>
<issue_to_address>
**suggestion (bug_risk):** Using '../*.dsc' may match unintended files if multiple .dsc files exist.
To avoid building the wrong package, specify the exact .dsc file or ensure only the intended file is present before running the build.
```suggestion
# Create source package first
dpkg-buildpackage -S -uc -us
# Find the exact .dsc file just created
DSC_FILE=$(ls ../*.dsc | head -n 1)
# Build the package in pbuilder using the exact .dsc file
sudo pbuilder build "$DSC_FILE"
```
</issue_to_address>Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
3b35853 to
5d6bcf7
Compare
|
TAG Bot New tag: 0.7.6 |
|
TAG Bot New tag: 0.7.7 |
|
TAG Bot New tag: 0.7.8 |
7c2ddfc to
ab3cda8
Compare
1. Added CI build workflows for qwlroots, waylib, and treeland on Deepin. 2. Includes configurations for building qwlroots and waylib independently, and treeland with merged waylib and qwlroots code. Influence: 1. Verify successful builds of qwlroots, waylib, and treeland on Deepin. 2. Check the created Debian packages for qwlroots and waylib for correctness. 3. Verify the treeland zip archive contains the installed files in the correct structure. 4. Validate the PACKAGE_INFO.txt file in the treeland zip archive. 5. Manually install the treeland zip archive on a Deepin system and ensure it functions as expected. feat: 添加 Deepin CI 构建工作流 1. 为 qwlroots、waylib 和 treeland 添加了 Deepin 上的 CI 构建工作流。 2. 包括独立构建 qwlroots 和 waylib 的配置,以及构建合并了 waylib 和 qwlroots 代码的 treeland 的配置。 Influence: 1. 验证 qwlroots、waylib 和 treeland 在 Deepin 上的成功构建。 2. 检查为 qwlroots 和 waylib 创建的 Debian 软件包的正确性。 3. 验证 treeland zip 压缩包是否包含正确结构的已安装文件。 4. 验证 treeland zip 压缩包中的 PACKAGE_INFO.txt 文件。 5. 在 Deepin 系统上手动安装 treeland zip 压缩包,并确保其按预期运行。
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: wineee, zccrs The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Influence:
feat: 添加 Deepin CI 构建工作流
Influence:
Summary by Sourcery
Introduce Deepin-specific CI workflows to build, package, and validate qwlroots, waylib, and treeland components using a Deepin pbuilder environment
New Features:
Enhancements:
CI: