Skip to content

Commit 25e078a

Browse files
committed
add chec deb and rpm install
1 parent 5cdee0d commit 25e078a

3 files changed

Lines changed: 16 additions & 5 deletions

File tree

.forgejo/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ jobs:
152152
set -euo pipefail
153153
if command -v apt-get >/dev/null 2>&1; then
154154
apt-get update
155-
apt-get install -y curl ca-certificates
155+
apt-get install -y curl ca-certificates gnupg
156156
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
157157
apt-get install -y nodejs git bash
158158
elif command -v dnf >/dev/null 2>&1; then
@@ -191,7 +191,7 @@ jobs:
191191
- name: Install Node.js and release tools
192192
run: |
193193
apt-get update
194-
apt-get install -y curl ca-certificates
194+
apt-get install -y curl ca-certificates gnupg
195195
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
196196
apt-get install -y nodejs git python3
197197

README.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Feature availability depends on the detected firmware configuration in `src/serv
4040
- `src/helper` - shared D-Bus/helper library used by the client and service.
4141
- `src/module` - EC kernel module and DKMS source files.
4242
- `cmake/packaging` - DEB/RPM, DKMS, Docker, and Qt runtime bundling helpers.
43-
- `scripts` - package build entry points for local and Docker builds.
43+
- `scripts` - package build and package install test entry points.
4444

4545
The client does not talk to EC hardware directly. It talks to the service, and the service owns hardware access, CPU control readback, fan target control, and state synchronization.
4646

@@ -111,11 +111,21 @@ export MSICONTROLLER_QT_HOST_DIR=/opt/Qt/6.11.1/gcc_64
111111
./scripts/build-packages.sh
112112
```
113113

114+
## Testing Packages
115+
116+
Package install smoke tests run the generated DEB/RPM in clean containers and check dependency resolution, installed file layout, desktop/autostart entries, D-Bus/systemd files, DKMS source placement, and unresolved shared libraries.
117+
118+
```sh
119+
./scripts/test-packages-docker.sh
120+
```
121+
122+
The test matrix covers Ubuntu 22.04, Ubuntu 24.04, Ubuntu 26.04, Debian 12, and Fedora. DKMS build/load is skipped only inside these container tests with `MSICONTROLLER_SKIP_DKMS=1`; normal user installation still builds and installs the module.
123+
114124
## Forgejo CI
115125

116-
Forgejo builds the project on pushes to `main` and has a dedicated package job. Download ready-to-install packages from the workflow artifact named `msicontroller-packages`.
126+
Forgejo builds the project on pushes to `main`, has a dedicated package job, and runs package install smoke tests against the generated artifacts. Download ready-to-install packages from the workflow artifact named `msicontroller-packages`.
117127

118-
When a tag matching `v*` is pushed, the package job also creates or updates the matching Forgejo Release and uploads:
128+
When a tag matching `v*` is pushed, packages are published only after the install smoke tests pass. The release job creates or updates the matching Forgejo Release and uploads:
119129

120130
- `msicontroller_amd64.deb`
121131
- `msicontroller_x86_64.rpm`

scripts/test-package-install.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ PACKAGE_DIR="${1:-packages}"
55
PACKAGE_DIR="$(cd "${PACKAGE_DIR}" && pwd)"
66
DEB_PACKAGE="${MSICONTROLLER_TEST_DEB:-${PACKAGE_DIR}/msicontroller_amd64.deb}"
77
RPM_PACKAGE="${MSICONTROLLER_TEST_RPM:-${PACKAGE_DIR}/msicontroller_x86_64.rpm}"
8+
export MSICONTROLLER_SKIP_DKMS="${MSICONTROLLER_SKIP_DKMS:-1}"
89

910
log() {
1011
printf '\n==> %s\n' "$*"

0 commit comments

Comments
 (0)