test: bats coverage at 100 percent and CI on keel-host #1

Open
navigator wants to merge 0 commits from fix/ci-runner-label into 19.x
Owner

CI asked for a runner with the label docker. No runner has it, so each run failed at once. This uses keel-host and actions/checkout@v7 and checks every shell file at severity warning.

CI asked for a runner with the label `docker`. No runner has it, so each run failed at once. This uses `keel-host` and `actions/checkout@v7` and checks every shell file at severity warning.
fix: run CI on the keel-host runner
All checks were successful
tests / shellcheck (pull_request) Successful in 2s
cb1b478f03
The workflow asked for a runner with the label docker. No runner has that
label, so every run failed before it started. Use keel-host and
actions/checkout@v7, as the other Keel repositories do, and shellcheck every
shell file of the layer at severity warning.
fix: name no container runtime in CI
All checks were successful
tests / shellcheck (pull_request) Successful in 2s
bd20fefb61
navigator changed title from fix: run CI on the keel-host runner to test: bats coverage at 100 percent and CI on keel-host 2026-11-05 07:13:28 -03:00
test: bats coverage at 100 percent and the boot test
Some checks failed
tests / package (pull_request) Successful in 5s
tests / appliance (pull_request) Failing after 9s
tests / tests (pull_request) Successful in 23s
3dda85486a
Add the test suite of keel-redis, changed for this layer. The boot test
library has the checks that this layer adds over lnmp: the site on port
80 over IPv6, the PHP extensions, Composer, Node.js, Webmin and keel diff.
kcov measures tests/lib/boot-test-lib.sh at 100 percent (161/161) and
bin/keel-project-packages at 100 percent (32/32), over 62 bats tests.

The workflow has the three jobs of keel-redis: tests (test-shell.yml,
threshold 100) and package (require-changelog) on keel-host, and
appliance (test-appliance.yml, parent lnmp) on keel-lxc. Add the
changelog that bt-layer and require-changelog read.
fix: make conf.d/main executable
Some checks failed
tests / appliance (pull_request) Failing after 10s
tests / package (pull_request) Successful in 5s
tests / tests (pull_request) Successful in 24s
416176dcac
fab runs only the executable files in conf.d. This file was mode 0644, so
no build ran it and the layer had none of its configuration.
feat: first boot hook that makes the Laravel application of the machine
Some checks failed
tests / package (pull_request) Successful in 5s
tests / appliance (pull_request) Failing after 9s
tests / tests (pull_request) Successful in 32s
dec1feeb7f
The example description promised a first boot that runs composer
create-project, but no hook existed, and the boot test checked a
placeholder page.

The build now runs composer create-project (Laravel 12, --no-scripts) as
www-data in conf.d/main. The download is at build time and not at first
boot, so a machine made from the image needs no network to start. With
no scripts, the image holds no .env, no APP_KEY and no SQLite file.

firstboot.d/45laravel and lib/laravel.sh check every value of the
description and stop with the name of a bad option. They make the MariaDB
database and its user (SQL on stdin, random password when none is
declared), write .env with mode 0600 in one step, with a key from
artisan key:generate --show when none is declared, run the migrations
and wait until the site answers. Debug in production is refused.

The options are name, environment, debug, url, database and
database_user, and the secrets database_password and app_key. LNMP
already uses db_password and db_user for its administrative account, so
this layer uses other names. A new appliance manifest declares them.

The boot test now finds the name of the test description in the title
of the welcome page. tests/hook.bats, manifest.bats and layer.bats add
44 tests; the four measured files are at 100 percent over 106 tests.
Some checks failed
tests / package (pull_request) Successful in 5s
tests / appliance (pull_request) Failing after 9s
tests / tests (pull_request) Successful in 32s
This branch is already included in the target branch. There is nothing to merge.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin fix/ci-runner-label:fix/ci-runner-label
git switch fix/ci-runner-label

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch 19.x
git merge --no-ff fix/ci-runner-label
git switch fix/ci-runner-label
git rebase 19.x
git switch 19.x
git merge --ff-only fix/ci-runner-label
git switch fix/ci-runner-label
git rebase 19.x
git switch 19.x
git merge --no-ff fix/ci-runner-label
git switch 19.x
git merge --squash fix/ci-runner-label
git switch 19.x
git merge --ff-only fix/ci-runner-label
git switch 19.x
git merge fix/ci-runner-label
git push origin 19.x
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Keel-Linux/keel-laravel!1
No description provided.