2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-10-21 15:18:19 +00:00
Commit Graph

85 Commits

Author SHA1 Message Date
Daniel Hilst cf170b36c4 Merge pull request #7942 from VersatusHPC/feat/rootimg-sha256
feat(netboot): check the root image against its SHA-256 checksum
2026-10-16 18:18:10 -03:00
Daniel Hilst d8c38ec6d2 Merge pull request #7906 from VersatusHPC/fix/openeuler-core-mock-resultdir-owner
fix(xcat-core): the openEuler ppc64le core build runs rpmbuild as root
2026-10-15 18:15:42 -03:00
Daniel Hilst 7c011fc9e5 Merge pull request #7916 from VersatusHPC/fix/probe-debian-directory-permissions
fix(probe): preserve Debian library directory permissions
2026-10-15 13:53:54 -03:00
Daniel Hilst 5c6347d930 Merge master into fix/openeuler-core-mock-resultdir-owner
Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-10-15 13:42:27 -03:00
Vinícius Ferrão 35d01515eb test(mknb): exercise compression and archive publication 2026-10-14 13:29:21 -03:00
Vinícius Ferrão 0cca31bd2b test(statelite): run the liteimg archive test with the native tests
The liteimg archive test runs real cpio and gzip, and puts compressor
and ctorrent fixtures in PATH. That is a native test, so it moves out
of the unit suite. The pull-request workflow runs it explicitly.

A missing Linux tool now fails the test instead of skipping it. An
ilitefile fixture replaces the runcmd override, so liteimg runs its
commands through the real runcmd.
2026-10-14 13:14:50 -03:00
Vinícius Ferrão 957c52fe53 test(probe): exercise Debian package permissions 2026-10-14 12:38:00 -03:00
Daniel Hilst 2ae9abbaf8 Merge pull request #7936 from VersatusHPC/refactor/r26-genesis-reuse
refactor(genesis): share runtime helpers and build policy
2026-10-14 11:47:15 -03:00
Daniel Hilst 82a658ff23 Merge pull request #7917 from VersatusHPC/test/r26-package-artifacts
test(packaging): exercise package and repository behavior
2026-10-14 11:44:03 -03:00
Vinícius Ferrão eaf95fb5bd test(genesis): exercise newt dialog navigation 2026-10-13 22:16:50 -03:00
Vinícius Ferrão 1cf06e4f70 test(ci): keep package and unit results independent 2026-10-13 11:39:40 -03:00
Vinícius Ferrão dbbdcddcb2 test(packaging): query resolved RPM dependencies 2026-10-13 11:38:11 -03:00
Vinícius Ferrão e7c7babce0 test(build): exercise release repository finalization 2026-10-13 11:38:10 -03:00
Vinícius Ferrão aebc350e1a test(probe): exercise the built RPM payload 2026-10-13 11:38:10 -03:00
Vinícius Ferrão 2d751ac847 test(el10): exercise media and RPM package policy 2026-10-13 11:38:09 -03:00
Vinícius Ferrão 14d0ac27da test(genimage): check driver selection after driver updates 2026-10-13 11:38:09 -03:00
Daniel Hilst be9c063981 Merge pull request #7913 from VersatusHPC/test/r26-ubuntu-image-behavior
test(ubuntu): exercise media imports and genimage behavior
2026-10-13 11:21:29 -03:00
Daniel Hilst d1f63dfc25 Merge pull request #7925 from VersatusHPC/test/r26-genesis-behavior
test(genesis): exercise startup and OpenEmbedded build contracts
2026-10-13 10:16:23 -03:00
Daniel Hilst abf0f2228f Merge pull request #7935 from VersatusHPC/refactor/r26-package-lifecycle
refactor(packaging): share package lifecycle helpers
2026-10-13 10:00:14 -03:00
Vinícius Ferrão 54ce837c6f test(genesis): evaluate OpenEmbedded build contracts 2026-10-12 15:56:25 -03:00
Vinícius Ferrão 320a1a1299 test(ubuntu): inspect resolver files in generated initrds
Run the unchanged initrd builder with fixture binaries and inspect both generated archives. Replace source extraction with checks for selected libraries and their contents.
2026-10-12 13:58:45 -03:00
Vinícius Ferrão a4e14299ee test(ubuntu): exercise genimage mirror selection
Read site settings from an isolated database and inspect the sources.list written into the image. Stop at an injected package-metadata failure without downloading packages.
2026-10-12 13:58:45 -03:00
Vinícius Ferrão 5013f85774 test(ubuntu): check debootstrap architecture arguments
Run genimage and inspect the arguments passed to debootstrap instead of evaluating an extracted assignment. Keep the existing ppc64le pass-through explicit.
2026-10-12 13:58:45 -03:00
Vinícius Ferrão 114efc35e1 test(ubuntu): exercise live-media imports and warnings
Replace source-text assertions with real media imports in an isolated filesystem and database. Run the native fixture before the package build in CI.
2026-10-12 13:58:32 -03:00
Vinícius Ferrão 7dea5f68b2 ci(test): install squashfs-tools and pigz for the packimage tests
The packimage tests skip their squashfs and pigz cases unless mksquashfs,
unsquashfs and pigz are installed. Install them in the unit test job so
that CI runs those cases.
2026-10-12 12:15:51 -03:00
Daniel Hilst e5137981ff test(xcat-core): mock cannot read the sources staged under /root
buildrpms.pl stages each build's sources under $HOME/rpmbuild/sources.
mock now builds as the chrootuid of the target, uid 1000 for openEuler
24.03, and HOME of the Jenkins agents is /root, mode 0550. mock --sources
then fails with "Permission denied" on the staging directory.

The unit test asserts that the base directory is under the dist tree of
the checkout and not under $HOME, and that the staging tree is readable
by other users when the umask is 077. A native test, run as root in the
Fedora container, reads the staged files as uid 1000.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-10-12 11:02:52 -03:00
Daniel Hilst 926c076533 test(xcat-core): the mock result directory owner ignores include() and stale logs
mock_build_owner reads chrootuid and chrootgid from the text of the
rendered configuration. It does not see a value set in an included file,
an assignment with an inline comment or a double-quoted key, or an
include that overrides an earlier assignment. prepare_mock_resultdirs
then gives the result directories to the wrong uid, or to none.

prepare_mock_resultdirs changes only the two directories. A root build
that stopped part way leaves root-owned 0644 logs in them, and mock,
running as uid 1000, cannot append to them on the next run.

native/mock_resultdir_owner.t runs mock's loader on each configuration
case, and checks as root that uid 1000 can append to the stale logs in
both directories. Ubuntu ships no mock, so the workflow runs it in a
Fedora container and fails when it skips. The unit test checks, with
chown recorded, which owner the directories and their files get.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-10-12 11:02:51 -03:00
Daniel Hilst 1786f80541 Merge pull request #7926 from VersatusHPC/test/r26-package-script-behavior
test(packages): exercise go-xcat and postscript behavior
2026-10-12 10:29:13 -03:00
Vinícius Ferrão 41839052cc test(packaging): exercise upgrade logging and failure policy
Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-10-11 11:50:49 -03:00
Vinícius Ferrão 905510bca9 test(go-xcat): read release files through the complete script
Run OS detection in a private filesystem with the real release parser.
Remove the rewritten-source Perl harness and require GNU awk for the
legacy Red Hat fallback.
2026-10-09 21:01:25 -03:00
Vinícius Ferrão 39139f7101 test(packaging): exercise Apache setup and response headers 2026-10-09 03:22:47 -03:00
Vinícius Ferrão 1b69975d62 test(packaging): exercise daemon restart callers 2026-10-09 03:22:47 -03:00
Vinícius Ferrão c69f9fb2b4 test(packaging): exercise Apache configuration upgrades 2026-10-09 03:22:46 -03:00
Vinícius Ferrão 3abd11220a test(packaging): exercise RPM service lifecycle 2026-10-09 03:22:46 -03:00
Vinícius Ferrão e83ddfe0d9 test(packaging): exercise Debian service lifecycle 2026-10-09 03:22:46 -03:00
Vinícius Ferrão 0766c7213b test(ci): prepare syslog for dispatch redaction checks
Install rsyslog and create its xCAT log directory before installing xCAT.
Wait for a unique syslog marker before changing test state, including when
the log does not exist yet. Reuse that wait for the completion marker.
2026-10-02 22:35:57 -03:00
Vinícius Ferrão c97b8d412b test(ci): exercise the GitHub action driver
Run the unchanged driver with command and filesystem fixtures instead of
matching its source. Check apt arguments, syntax exclusions, and failure
propagation. Parse the workflow with YAML::PP and install it in CI.
2026-10-02 19:24:04 -03:00
Daniel Hilst 0d2f1f6450 Merge pull request #7833 from VersatusHPC/fix/remove-xcat-genesis-builder
fix(xcat-core): Remove legacy xCAT-genesis-builder
2026-10-01 10:29:29 -03:00
Daniel Hilst 0682d56de6 Merge master into fix/remove-xcat-genesis-builder
Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-10-01 09:03:27 -03:00
Daniel Hilst 988b1654e1 Merge master into test/client-server-testing
Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-10-01 08:22:20 -03:00
Daniel Hilst 016a5ed8cb Merge master into test/client-server-testing
Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-09-29 12:28:35 -03:00
Vinícius Ferrão 63cf366b96 Merge master into feature/openeuler-lts 2026-09-29 00:01:05 -03:00
Vinícius Ferrão f375080212 ci(test): install rpm for the spec tests
The GitHub check installs no rpm, so riscv64_packaging.t and
genesis_spec_target_arch.t skip every check that runs rpmspec. The
workflow now installs rpm, which provides rpmspec on Ubuntu.
2026-09-28 15:22:28 -03:00
Daniel Hilst e747f015bb Merge master into test/client-server-testing
Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-09-28 14:30:14 -03:00
Daniel Hilst a095259a01 Merge pull request #7868 from VersatusHPC/test/r26-otherpkgs-upgrade-behavior
test(otherpkgs): exercise repository-scoped upgrades
2026-09-28 13:47:30 -03:00
Vinícius Ferrão 463eca19e5 Merge master into feature/openeuler-lts 2026-09-25 01:41:02 -03:00
Daniel Hilst 052d2d5fbe fix(xcat-core): Genesis base tests from master read the old directory and evaluate shell
Master added a workflow and several tests after this branch renamed
xCAT-genesis-builder to xCAT-genesis-base. They still name files under
xCAT-genesis-builder/, which no longer exists, so they fail or read
nothing. The OpenEmbedded workflow, six bats files and four unit tests
now use the new paths.

Two of those unit tests could reach the code only as shell.
genesis_ubuntu_build_root.t cut the package list out of
builddeb-genesis-base and evaluated it through bash.
genesis_payload_verification.t ran the bash verifier and parsed its
stderr.

XCAT::GenesisBuildRoot::required_packages() now returns the build-root
package list, and builddeb-genesis-base calls it. XCAT::GenesisPayload
holds the mandatory-command list and the payload check, and
verify-genesis-payload runs its main() with the same arguments, exit
codes and messages. stage_genesis_base_sources() stages the module
beside the script. Both modules use core Perl only.

The two tests now call these functions with chosen inputs and assert
the exact results. genesis_base_sources_staged.t expects the module in
the staged tarball.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-09-24 17:28:26 -03:00
Vinícius Ferrão 771da0e09e ci(genesis): run the OpenEmbedded check only when its inputs change
The OpenEmbedded metadata job ran on every pull request and took about
20 minutes. It reads only xCAT-genesis-builder/oe and
xCAT-genesis-scripts, and it pins its upstream sources to fixed commits.
A pull request that changes neither directory gets the same result each
time.

The job moves unchanged to its own workflow, which runs only when those
paths or the workflow file change. xcat_pr_test stays in xcat_test.yml
and runs on every pull request, because a required check that does not
run blocks the merge.
2026-09-23 13:39:05 -03:00
Vinícius Ferrão c7052489d2 ci(test): refresh package indexes before installing dependencies 2026-09-23 12:41:43 -03:00
Vinícius Ferrão f49941fb62 test: separate native openEuler checks from unit tests 2026-09-22 23:15:42 -03:00