Commit Graph

37 Commits

Author SHA1 Message Date
Miguel Angel Ajo
e234b630f8 Support overlayfs whiteouts on checkout
Introduces an intermediate format for overlayfs storage, where
.wh-ostree. prefixed files will be converted into char 0:0
whiteout devices used by overlayfs to mark deletions across layers.

The CI scripts now uses a volume for the scratch directories
previously in /var/tmp otherwise we cannot create whiteout
devices into an overlayfs mounted filesystem.

Related-Issue: #2712
2022-09-28 12:26:31 +02:00
Colin Walters
21a8f39284 ci: Also drop seccomp on debian testing
I didn't deep dive into debugging this but I'm pretty sure it's
 https://gitlab.gnome.org/GNOME/glib/-/issues/2580
which is us having an older Docker in the middle here.
2022-08-22 17:00:09 -04:00
Colin Walters
001839b35f ci/rust: Change MSRV to cargo check
No reason to codegen just to throw it away.  We could test here too,
but eh.
2022-06-23 14:45:16 -04:00
Colin Walters
ed98a7904c ci/rust: Enable cap-std-apis in default build, add a no-feature build
Our CI was missing coverage of `cap-std-apis`.
2022-06-23 14:45:11 -04:00
Colin Walters
76071a2b11 ci: Bump MSRV
To match what's in ostree-rs-ext.
2022-06-09 17:49:18 -04:00
Colin Walters
5341a13b33 ci: Add a flow that does a git libostree + git rust-bindings
In https://github.com/ostreedev/ostree/pull/2633 I realized
that our CI only builds git of libostree or git of rust-bindings,
not git of both.  And we definitely want to test the latter too,
so e.g. the Rust tests *also* become tests for changes to the C code.
2022-06-08 10:33:46 -04:00
Colin Walters
4806d84f56 rust: Bump semver, add feature for current release
There were some changes to the sys API for introspection fixes.
And add a feature for the current release, which is something
I'll add to the checklist for releases.
2022-06-08 09:37:57 -04:00
Colin Walters
1c201d6be4 ci: Move codestyle and min build to GH actions
Part of general momentum to leave heavy lifting (e.g. VM tests)
to Jenkins and Prow and use the cheaper/faster GH actions for
plain builds.
2022-05-17 08:11:09 -04:00
Colin Walters
9f8d026f82 ci: use cargo-deny
Copied from https://github.com/ostreedev/ostree-rs-ext/pull/291

Part of unifying our CI.
2022-05-10 17:14:01 -04:00
Colin Walters
891c7dffa7
Merge pull request #2575 from cgwalters/merge-ostree-rs
Merge ostree-rs into this repository
2022-05-09 16:41:08 -04:00
Colin Walters
e9141e97c1 ci: Move rust-bindings CI to toplevel
It should replace our stub one.
2022-05-09 14:52:46 -04:00
Colin Walters
9db45cad5a ci: Work around GH actions container: + git + security bug
See https://github.com/actions/checkout/issues/760
2022-05-09 14:46:41 -04:00
Luca BRUNO
83956daeee
ci/github: add a job for --without-libsystemd 2022-05-06 10:07:24 +00:00
Dan Nicholson
9b6a8171c5 docs: Publish man pages
Make a copy of `man/html` to `docs/man` and then configure Jekyll to
include it verbatim like the API docs. A link is added to the main index
and the necessary commands are added to the github docs workflow.
2022-04-08 19:25:32 -06:00
Colin Walters
e6f92f76fa ci: Update docs workflow to use fcos-buildroot
This way we can also use `./ci/installdeps.sh` which avoids yet
another list of dependencies.
2022-03-14 09:27:07 -04:00
Colin Walters
089b821098 ci: Disable Ubuntu LTS
It doesn't have a new enough glib.
2022-03-14 09:21:15 -04:00
Dan Nicholson
de1870df8c github: Workaround glib/seccomp issue on Ubuntu impish
The ubuntu-latest VMs are currently based on 20.04 (focal). In focal,
libseccomp2 doesn't know about the close_range syscall[1], but
g_spawn_sync in impish tries to use close_range since it's defined in
glibc. That causes libseccomp2 to return EPERM as it does for any
unknown syscalls. g_spawn_sync carries on silently instead of falling
back to other means of setting CLOEXEC on open FDs. Eventually it causes
some tests to hang since once side of a pipe is never closed. Remove
this when libseccomp2 in focal is updated or glib in impish handles the
EPERM better.

1. https://bugs.launchpad.net/ubuntu/+source/libseccomp/+bug/1944436

Fixes: #2495
2022-01-12 21:59:23 -07:00
Luca BRUNO
2bfdcea2c5
github: add dependabot config
This adds a configuration file for dependabot, taking care of automatic
updates for all git submodules.
2022-01-04 10:34:30 +00:00
Simon McVittie
43859b58f6
rofiles-fuse: Build using FUSE 3 if possible, falling back to FUSE 2
This adds build-time configuration logic to automatically detect
and switch between libfuse 2.x and 3.x.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Co-authored-by: Luca BRUNO <luca.bruno@coreos.com>
2022-01-04 09:41:38 +00:00
Colin Walters
fdeee165f6 ci: Run main GH action CI build+test as non-root
This is really the standard best practice, matching how
e.g. dpkg/rpm work, as well as most local development
environments (including mine) with e.g. `toolbox`.
2021-08-26 14:40:34 -04:00
Benjamin Gilbert
d9483f89ad workflows: limit permissions to reading repo contents
Move the existing docs permissions stanza to the top of the workflow for
consistency.
2021-07-28 18:32:04 -04:00
Benjamin Gilbert
079528971c workflows: bump lint toolchain 2021-07-28 18:30:33 -04:00
Dan Nicholson
dfe3bdc13f ci: Use Debian and Ubuntu release stage tags
Rather than use the release codename tags, use the release stage tags.
This way the configuration (theoretically) doesn't need to be updated
when new Debian and Ubuntu releases are made.

For Debian stable is used instead of buster and a testing (bullseye)
build is added. For Ubuntu, latest is used instead of focal for the
current LTS and rolling is used instead of groovy for the latest
release. This actually changes the Ubuntu build from groovy to hirsute.
2021-06-21 13:47:00 -06:00
Dan Nicholson
f1b900340f ci: Disable fail-fast in GitHub Tests workflow
Don't cancel all the jobs if one distro config fails. The jobs are
mostly independent, so we do want to let the others continue in case
the failure is isolated to that particular distro configuration.
2021-06-21 12:27:01 -06:00
Dan Nicholson
a0012ae0ee ci: Add GitHub Actions workflow for test suite
This runs the test suite in various distros. The intention is to use
this to replace the Travis CI setup since it often has rate limit
failures.

Each configuration in the matrix runs in a Docker container, installs
system dependencies and then builds and tests ostree. The scripts are
basically copy and paste of the travis ones with some of the lesser used
features pruned out.

Some differences from the travis setup:

* OS details are gathered from `/etc/os-release` instead of being passed
  in as environment variables.

* The scripts always assume the user is root and don't try to use
  `sudo`.

* The `installcheck` test has been removed since ostree doesn't actually
  use that. It could be added to run the installed tests or
  `gnome-desktop-testing-runner` could just be called directly.

There should be enough flexibility to run other distros like Fedora,
Arch or Alpine. Another option would be to use the other build scripts
in ci/.
2021-06-18 15:30:06 -06:00
Dan Nicholson
9ff141fe80 ci: Rename GitHub Actions rust workflow metadata file
This workflow is specific to using rust and not just the general test
suite.
2021-06-18 15:24:47 -06:00
Dan Nicholson
bd42df4c9b workflow/docs: Give token write permission to push gh-pages
The ostree repo has read permissions set for workflows, which prevents
the documentation job from pushing the built docs to the gh-pages
branch. Raise the job's permissions to write for repo contents to allow
that.
2021-05-25 14:25:28 -06:00
Dan Nicholson
e19840a252 docs: Copy in API docs and add link
Make a copy of `apidoc/html` to `docs/reference` and then tell Jekyll to
include it verbatim. This will include the gtk-doc API docs on the
static site. A link is added to the main index.

A script is added to do the copy (a symlink won't do) and is setup to
run before Jekyll in the GitHub workflow. Ideally this would be a local
Jekyll plugin to make the process automatic, but the github-pages gem
doesn't allow that.
2021-05-21 10:46:49 -06:00
Dan Nicholson
19a306ecef docs: Add github workflow for building and publishing docs
This uses the Jekyll Actions GitHub action to push the rendered docs to
the gh-pages branch rather than GitHub's automated docs flow. That will
allow greater control over how the docs are generated. Pushing to the
gh-pages branch only happens on pushes to main. For pull requests, the
docs are only built.
2021-05-21 10:45:08 -06:00
Timothée Ravier
b8cca6cef1 *: rename master branch to main 2021-05-07 16:55:03 +02:00
Colin Walters
73a896e62c ci: Fix GH action for rustfmt
Since we now have a toplevel workspace, just use that.
2021-04-27 13:10:07 -04:00
Colin Walters
26166bb8e3 ci: Add a Github Action for Rust for tests/inst
Let's dip our toes in GH Actions (specifically aiming to migrate
away from Travis).
2021-03-17 19:37:21 +00:00
OpenShift Merge Robot
024b169aef
Merge pull request #2244 from lucab/ups/docs-release-guide
templates: add release-checklist
2020-11-19 15:40:33 +01:00
Luca BRUNO
8ece70b207
templates: add release-checklist
This collects all release steps in a release-checklist template.
2020-11-18 13:05:07 +00:00
Luca BRUNO
9567a0e91c
workflow/release: further refinements
This tweaks the release GH workflow further so that it only triggers
when the `configure.ac` file (which owns the version) changes.
Plus it properly checkouts the PR branch to avoid wrongly looking
at a synthetic merge commit.
2020-11-18 10:24:32 +00:00
Luca BRUNO
ee57fe2821
workflows/release: pattern-match on PR title
This adds an additional condition in order to run sanity check all
PRs starting with `Release` (case-insensitive).
2020-11-16 17:13:47 +00:00
Luca BRUNO
0d0eb4715b
ci: run ci-release-build.sh on GitHub
This adds a GitHub action in order to run ci-release-build.sh on
release PRs (detected via the `kind/release` label).
2020-11-16 11:14:40 +00:00