Compile the scim crate in release, and check that profile in CI #26

Merged
jcoffey-dev merged 1 commits from fix/scim-recursion-limit into main 2026-09-23 04:23:09 +00:00
2 changed files with 18 additions and 0 deletions
+10
View File
@@ -61,6 +61,16 @@ jobs:
# --no-run: the workflow compiled every test target without running them, # --no-run: the workflow compiled every test target without running them,
# which catches a test that no longer builds without paying for the suite. # which catches a test that no longer builds without paying for the suite.
- run: cargo test --workspace --locked --no-run - run: cargo test --workspace --locked --no-run
# The release profile, on main only. It is the profile the image is
# built with, and it fails in ways the dev profile does not: v2026.9.24
# was tagged on a commit whose CI was green and whose release build
# could not compile the scim crate at all. A few minutes per merge is
# cheaper than finding that out from a tag, which throws away a
# multi-architecture build and leaves a version half-cut.
#
# Pull requests stay on the dev profile, where the wait is worth less.
- if: github.event_name == 'push'
run: cargo build -p inbuxa --locked --release
# Keep the cache from growing without bound: past 60 GB the target dir # Keep the cache from growing without bound: past 60 GB the target dir
# is dropped and the next build starts cold. The download cache stays. # is dropped and the next build starts cold. The download cache stays.
# Two builds (dev + test profiles) already fill ~22 GB, so the limit # Two builds (dev + test profiles) already fill ~22 GB, so the limit
+8
View File
@@ -4,6 +4,14 @@
* SPDX-License-Identifier: AGPL-3.0-only * SPDX-License-Identifier: AGPL-3.0-only
*/ */
// The release profile computes the layout of this crate's async fn bodies in
// one go, and the deepest of them -- writable_domain, which awaits through
// the directory, the store and the JMAP registry -- takes rustc past its
// default query depth. The dev profile does not get that far, so the failure
// only appears in a release build: CI was green and the tag that started a
// release was not.
#![recursion_limit = "256"]
//! SCIM 2.0 provisioning (`docs/spec/features/scim.md`). inbuxa-server is the //! SCIM 2.0 provisioning (`docs/spec/features/scim.md`). inbuxa-server is the
//! service provider: an identity provider pushes users and groups to //! service provider: an identity provider pushes users and groups to
//! `/scim/v2`, and each request becomes the same `x:Account` reads and //! `/scim/v2`, and each request becomes the same `x:Account` reads and