1
0
mirror of https://github.com/containers/bootc.git synced 2026-02-05 15:45:53 +01:00

129 Commits

Author SHA1 Message Date
Colin Walters
b6e16c487b install: Add a tmpfs for /var/lib/containers
Recent podman versions got stricter about not doing overlay-on-overlay
by default.

Signed-off-by: Colin Walters <walters@verbum.org>
2025-10-03 13:55:25 -04:00
Colin Walters
97ebaac77c labeler: Fix for crate renames
- Have area/documentation not a standalone documentation
- Fix the other labels for the move into crates/

Signed-off-by: Colin Walters <walters@verbum.org>
2025-09-29 14:42:14 -04:00
Colin Walters
788162f6cf Move docs workflow into Justfile + container
This drains nontrivial logic out GHA and into something
isolated via containers and driven via `Justfile` and
easily replicable locally too.

Signed-off-by: Colin Walters <walters@verbum.org>
2025-09-26 15:23:34 -04:00
Colin Walters
9a6df0935a ci: Consolidate and cleanup workflows
- Having separate workflows made sharing build artifacts not
  really possible, and it just makes sense to consolidate
- Refactor shared parts into a little internal action

Signed-off-by: Colin Walters <walters@verbum.org>
2025-09-26 08:39:53 -04:00
Colin Walters
69395c3076 Updates to build sys and CONTRIBUTING.md
The emphasis here is on trying to have
the `Justfile` be the default entrypoint,
wrapping other tools.

- Replace mentions of podman-bootc with bcvk
  since I hope the latter supercedes the former
- Unify the unit test entrypoint
- Set up /var/tmp as a tmpdir to fix the etc merge
  test (otherwise, selinux failures w/tmp)
- Run the unit+container tests in integration.yml
- Have `just validate` run in a container

Signed-off-by: Colin Walters <walters@verbum.org>
2025-09-24 07:03:18 -04:00
Colin Walters
88364c02b3 Merge pull request #1607 from cgwalters/testing-cleanups-p1
ci: Unify more of hack/ and tests/
2025-09-19 14:54:42 -04:00
Colin Walters
542f62d801 ci: Drop control/skip-ci
This burned us recently. Since our man pages are input to
the build, we can't really skip CI for them.

Signed-off-by: Colin Walters <walters@verbum.org>
2025-09-18 21:46:09 +02:00
Colin Walters
d81c395fce ci: Unify more of hack/ and tests/
A key thing for me is that the `Justfile` should be a one-stop
shop for development of the project. It can't have everything but
it should answer the basic questions of "how do I build and test
this project".

This aligns the recently added tmt-on-GHA flow a *bit* more closely
with some of that. Biggest is to use the `just build-integration-test-image` as the canonical
way to build a container image with our testing stuff in it;
which uses our main Dockerfile

Other cleanups:
- Change test script to move into tests/tmt/ as a workaround for
  https://github.com/teemtee/tmt/pull/3037#issuecomment-3259585271
- Change the qemu logic to use SMBIOS credentials so we don't
  have to carry around both a disk image and a SSH key
- Change qemu to use `-snapshot` so we can reuse disks
- Change the scripts to accept data via argv[1] and not environment
- Drop the hardcoded testing directory and use `target/` as
  a generic build artifact dir

Signed-off-by: Colin Walters <walters@verbum.org>
2025-09-17 15:20:06 -04:00
Colin Walters
d438aaf9ec Switch to hand-written man pages with auto option sync
See the updates to `Justfile` for how to use this.

Closes: #1428

Assisted-By: Claude Code (opus + sonnet)
Signed-off-by: Colin Walters <walters@verbum.org>
2025-09-12 16:13:49 -04:00
Xiaofeng Wang
49cca3a9bc ci: Add fedora 41/42/43 and cs9/10 integration test
Signed-off-by: Xiaofeng Wang <henrywangxf@me.com>
2025-09-10 20:55:00 +08:00
Xiaofeng Wang
310bc532a0 ci: Add bootc and image build on ARM
Signed-off-by: Xiaofeng Wang <henrywangxf@me.com>
2025-09-10 20:55:00 +08:00
Xiaofeng Wang
cc53ba16a4 test: Run script with sudo instead of adding sudo in script
Signed-off-by: Xiaofeng Wang <henrywangxf@me.com>
2025-09-10 20:55:00 +08:00
Xiaofeng Wang
54f8562dad test: Add integration test running on github runner
Signed-off-by: Xiaofeng Wang <henrywangxf@me.com>
2025-09-10 20:55:00 +08:00
gursewak1997
4e32026294 Update workflow to use gh-app token for assignment 2025-08-16 13:49:02 -07:00
gursewak1997
98e9e4e661 Add missing perms and fix reviewer assignment API call 2025-08-15 00:53:31 -07:00
gursewak1997
44872ff4d1 fix: Use gh pr edit to avoid JSON formatting issues 2025-08-14 13:09:58 -07:00
gursewak1997
5219fad736 add auto-reviewer workflow with built-in GITHUB_TOKEN 2025-08-14 12:38:11 -07:00
gursewak1997
f66c53ab97 Resolve GH_TOKEN conflict in auto-reviewer workflow 2025-08-13 10:39:13 -07:00
Colin Walters
09890a4df0 Merge pull request #1491 from gursewak1997/feature/auto-reviewer-rotation
Add automated PR reviewer rotation system
2025-08-08 11:52:36 -04:00
gursewak1997
efe603119e feat: add automated PR reviewer rotation system
- Auto-assign reviewers from MAINTAINERS.md on 3-week rotation
- Exclude PR author from self-assignment
- Trigger on PR open, ready-for-review, and pushes
- Preserve existing manual reviewer assignments
2025-08-07 14:12:19 -07:00
ckyrouac
0da7858e4b ci: Refactor release action to use app and create-pull-request
This uses the token generated in the GitHub app that has a limited
scope. Also refactors the commit/push steps to use the
create-pull-request action rather than manually committing and pushing.
This simplifies the token usage when committing/pushing.

Signed-off-by: ckyrouac <ckyrouac@redhat.com>
2025-08-07 08:40:00 -04:00
ckyrouac
08d2c982f2 ci: Release every 3 weeks starting from 2025-08-04
This modifies the scheduled release to happen every 3 weeks regardless
of when the previous release happened. This aligns with the team's
schedule.

Assisted-by: Claude code
Signed-off-by: ckyrouac <ckyrouac@redhat.com>
2025-08-06 10:04:45 -04:00
Colin Walters
c5044b0a09 Merge pull request #1487 from jeckersb/fix-autovendor-cli-path
Fix autovendor workflow CLI directory path
2025-08-05 14:32:56 -04:00
Micah Abbott
6bb02940cc Revert "ci: periodically run update-generated"
This reverts commit 9e0a0f887b.

Signed-off-by: Micah Abbott <miabbott@redhat.com>
2025-08-05 14:24:48 -04:00
John Eckersberg
2245c1a03e Fix autovendor workflow CLI directory path
Update the autovendor GitHub workflow to use the correct path 'crates/cli'
instead of 'cli', which was causing the job to fail with "No such file or
directory" error.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: John Eckersberg <jeckersb@redhat.com>
2025-08-05 12:50:34 -04:00
ckyrouac
4f61e710aa ci: Shorten the release interval to 19 days
Since there is some user intervention required for the scheduled
release, this adds a 2 day buffer in case the buttons weren't clicked
immediately last time.

Signed-off-by: ckyrouac <ckyrouac@redhat.com>
2025-07-30 11:44:25 -04:00
ckyrouac
f15a65a528 ci: Check if it's time for release earlier in gh action
Just a small optimization to avoid installing deps when it's not time
for a release.

Signed-off-by: ckyrouac <ckyrouac@redhat.com>
2025-07-28 15:35:10 -04:00
Colin Walters
8557d1a07d Dockerfile: Support pulling in the continuous repo
If enabled this pulls in git main of ostree which I want
for soft reboot work.

Signed-off-by: Colin Walters <walters@verbum.org>
2025-07-24 13:59:09 -04:00
ckyrouac
4fc87419c2 build: Add actions to automate release
This adds two github actions, "Create Release PR" and "release". The
first is scheduled to run every 3 weeks to automatically create a
release PR that bumps the versions. The "release" action is triggered
when the release PR is merged. It will create a draft release with the
tars attached.

Assited-by: Claude Code
Signed-off-by: ckyrouac <ckyrouac@redhat.com>
2025-07-23 11:08:45 -04:00
Colin Walters
d4c19f7d31 tests: Add a suite which runs tests under systemd
And add a single test which verifies that our internal `reboot`
code actually does what it should (via systemd-run etc.)

This took me way, way too long to do...there were so many missteps
and confusion. First of all, I kept trying to use `systemd.extra-unit`
from https://www.freedesktop.org/software/systemd/man/latest/systemd-debug-generator.html#
but that doesn't exist in stream9.

I spent way too long trying to debug the fact that switching from
`podman run <image> /sbin/init` to `podman run <image> /bin/sh -c '<stuff> && exec /sbin/init`
fails because in the latter case podman's auto-detection fails and
we need to explicitly say `--systemd=always`. In retrospect obvious...but oh well.

On the positive side, I think with some cleanup we could extend this model
and generalize it for "test running in a container with systemd" (with
a lot of cleanup really)

Signed-off-by: Colin Walters <walters@verbum.org>
2025-07-18 07:42:05 -04:00
Colin Walters
2f69a16074 Move all crates under crates/
Just organizational cleanup, a number of Rust projects
do this:
https://github.com/search?q=+%22crates%2F*%22+path%3ACargo.toml+-is%3Afork&type=code&p=5

Signed-off-by: Colin Walters <walters@verbum.org>
2025-07-17 16:27:39 -04:00
Micah Abbott
9e0a0f887b ci: periodically run update-generated
This introduces a GitHub workflow to periodically run `cargo xtask
update-generated` in order to keep the docs up-to-date with the
latest changes. It will create a PR if changes are detected.

Signed-off-by: Micah Abbott <miabbott@redhat.com>
2025-06-26 15:43:53 -04:00
Colin Walters
fc057e6a1b build-sys: Rework to have toplevel Dockerfile + Justfile
This is aligning with what I did in https://github.com/ostreedev/ostree/pull/3439

- What gets invoked in e.g. GHA should ideally most be `just` commands
  that are easy to run locally too (with sudo in GHA, without sudo locally)
- Move the "core build" to the toplevel so that one can just `podman build`
  directly too (without the Justfile) and have it do something useful
- The "always build and test in a container" helps for LLM-assisted coding
  because what they can do is inherently sandboxed

Signed-off-by: Colin Walters <walters@verbum.org>
2025-06-11 17:44:54 +02:00
ckyrouac
e0301cd45a reinstall: Only pull the image if it's not already present
This enables using a local image with system-reinstall-bootc. A couple
drive by cleanups to the integration tests are included.

Signed-off-by: ckyrouac <ckyrouac@redhat.com>
2025-06-06 11:20:51 -04:00
ckyrouac
72c3c74c9e reinstall: Initial set of system-reinstall-bootc integration tests
This adds a few basic integration tests for system-reinstall-bootc, adds
a system-reinstall option to tests-integration to run them, and executes
them as part of the github action.

Signed-off-by: ckyrouac <ckyrouac@redhat.com>
2025-06-05 10:27:48 -04:00
Colin Walters
2367f5251e ci: Update podman on fedora-container-tests too
So we can use heredocs.

Signed-off-by: Colin Walters <walters@verbum.org>
2025-05-15 13:27:23 -04:00
Colin Walters
ff952c3c3d install: Honor composefs.enabled=verity
Key off the ostree prepare-root config to require fsverity
on all objects.

As part of this:

- Add a dependency on composefs-rs just for the fsverity querying
  APIs, and as prep for further integration.
- Add `bootc internals fsck`, which verifies the expected
  fsverity state.

Signed-off-by: Colin Walters <walters@verbum.org>
2025-03-16 10:25:16 -04:00
Colin Walters
728ab1a296 ci/install-tests: Update to newer podman
For here doc support.

Signed-off-by: Colin Walters <walters@verbum.org>
2025-03-15 13:52:40 -04:00
Joseph Marrero Corchado
5229fbb1fe docs: add footer with CNCF trademark notice
Signed-off-by: Joseph Marrero Corchado <jmarrero@redhat.com>
2025-03-10 20:59:28 -04:00
Omer Tuchfeld
7b4ceb83c9 labeler: auto add system-reinstall-bootc label
Automatically mark any PR touching files in the system-reinstall-bootc
directory with the area/system-reinstall-bootc label.

Signed-off-by: Omer Tuchfeld <omer@tuchfeld.dev>
2025-02-18 09:18:44 +01:00
Colin Walters
cb99cf5c95 ci: Bump Fedora to 41
For newer ostree

Signed-off-by: Colin Walters <walters@verbum.org>
2025-02-03 12:37:38 -05:00
Colin Walters
b55a5d9bc0 deny: Sync with rpm-ostree
We should really have a more centrally-maintained `cargo-deny`
configuration. I'd argue to maintain it here in bootc to
start, but this will be a common thing for other projects
in github.com/containers and elsewhere.

Anyways, this needed updating for the new Unicode-3.0 license
in some updated unicode crates that I saw in rpm-ostree.

While we're here, quiet the duplicate crate warning in the CI
job, as it's just noise. Keep it when running locally so
we have some visibility if we care about it.

Signed-off-by: Colin Walters <walters@verbum.org>
2025-01-16 08:50:21 -05:00
John Eckersberg
9d6de63eb0 ci: labeler: use globstar where applicable
It appears the single glob '*' doesn't match recursively, so use the
globstar '**' where we want to match anything within a subtree

Signed-off-by: John Eckersberg <jeckersb@redhat.com>
2024-12-19 12:06:43 -05:00
Xiaofeng Wang
f8b7e946c7 ci: fix labeler action error
Fix "The configuration file (path: .github/labeler.yml) was not
found locally" error

Signed-off-by: Xiaofeng Wang <henrywangxf@me.com>
2024-12-10 17:44:13 +08:00
Xiaofeng Wang
e2d5dd2cfa ci: remove python checking from CI
No python code in the repo any more

Signed-off-by: Xiaofeng Wang <henrywangxf@me.com>
2024-12-10 17:38:10 +08:00
Colin Walters
6429eebc61 ci: Run the ostree-ext deploy tests
Signed-off-by: Colin Walters <walters@verbum.org>
2024-12-09 08:05:03 -05:00
Colin Walters
97692bd1c2 Make lints stricter, apply crate wide
Add `dead_code = "deny"` to our default lints; we had
a compiler warning for this in main.

Fix the warning by moving the human readable test code into
`#[cfg(test)]`.

While we're here, move the other lib.rs lints into the crate;
enforcing docs for *everything* at first I thought might be heavy
handed but actually is fine as it only applies to things that
are `pub`, of which we don't actually have that much so it
mainly forced me to add some stub docs for the modules, which
is probably a good idea.

Signed-off-by: Colin Walters <walters@verbum.org>
2024-09-18 13:10:49 -04:00
Platform Engineering Bot
f8314fb48d chore(deps): update embarkstudios/cargo-deny-action action to v2
Signed-off-by: Platform Engineering Bot <platform-engineering@redhat.com>
Signed-off-by: Colin Walters <walters@verbum.org>
2024-08-13 10:15:43 -04:00
Chris Kyrouac
091840b09b Merge pull request #691 from cgwalters/doc-experimental
docs: Add experimental section w/`bootc image`
2024-07-18 09:01:46 -04:00
Colin Walters
63bcf63868 build: Use workspace global lints
In relatively recent rust there's a nice way to globally
configure clippy lints for the whole workspace. We can
kill the `custom-lints` target because relatively
recently clippy has a lint for `todo!` and `dbg!` itself.

Signed-off-by: Colin Walters <walters@verbum.org>
2024-07-17 13:48:12 -04:00