Skip to content

Run Windows and remaining pycolmap CI only with the full-ci label - #4904

Merged
ahojnnes merged 1 commit into
mainfrom
user/jsch/full-ci-label
Oct 28, 2026
Merged

ahojnnes merged 1 commit into
mainfrom
user/jsch/full-ci-label

Conversation

@ahojnnes

Copy link
Copy Markdown
Contributor

Pull requests now automatically run only the fast CI jobs. The slow Windows and pycolmap jobs run once a maintainer adds the new full-ci label. On #4903, the gated jobs took about 3.4 runner-hours, and the slowest one (the pycolmap Windows wheel, 83 min) set the time to green.

Runs automatically on every PR update:

  • COLMAP (Ubuntu), COLMAP (Mac), COLMAP (Docker)
  • PyCOLMAP Linux wheel (ubuntu-24.04) and the docs build, which depends on it

Runs only with the full-ci label:

  • COLMAP (Windows): windows-2025-vs2026 Release, windows-2025-vs2026 Release CUDA
  • PyCOLMAP wheels: macos-14 arm64, windows-2025-vs2026, ubuntu-24.04 CUDA

Details:

  • The gated jobs' required status checks in the main-branch ruleset stay "Expected" until the label is added and the jobs pass, so they still gate merging. No ruleset changes are needed.
  • The label stays on the PR, so later pushes re-run the gated jobs automatically. Only users with triage access or higher can add labels.
  • Pushes to main and release/*, releases, and manual dispatches run everything as before.
  • To gate only some pycolmap wheels, build-pycolmap.yml splits the build job into build (Linux) and build-gated (macOS, Windows, CUDA). The second job reuses the first job's name, env, and steps through YAML anchors, so check names, artifact names, and cache keys are unchanged. pypi-publish now needs both jobs.
  • Adding any other label does not cancel an in-progress run, because such label events get their own concurrency group.
  • The assigned trigger is removed from all workflows, as it re-ran CI whenever someone was assigned.
  • doc/contribution.rst documents the label.

Verification performed:

  • Compared the old and new workflows with YAML anchors resolved. Apart from the intended trigger, concurrency, and if changes, the jobs are identical, and the two pycolmap matrices together equal the original matrix.
  • Ran actionlint 1.7.12. It accepts the new expressions and anchors. Its only warnings are false positives about arch/deploymentTarget missing from the Linux-only matrix; those values were already unset for that entry.
  • This PR uses the new workflows itself: without the label, the five gated checks should stay "Expected". Adding full-ci should run them.

Pull requests now automatically run only the Ubuntu, macOS, and Docker
builds, the Linux pycolmap wheel, and the docs build. The Windows builds and
the macOS, Windows, and CUDA pycolmap wheels run once a maintainer adds the
full-ci label. Their required status checks stay pending until then, so they
still gate merging. Pushes to main and release/*, releases, and manual
dispatches run everything as before.

Also drop the "assigned" pull_request trigger, which re-ran CI whenever
someone was assigned.
@ahojnnes ahojnnes added the full-ci Run Windows and remaining pycolmap CI label Oct 27, 2026
@ahojnnes
ahojnnes merged commit ea470c0 into main Oct 28, 2026
21 checks passed
@ahojnnes
ahojnnes deleted the user/jsch/full-ci-label branch October 28, 2026 07:28
fringehush-gif added a commit to fringehush-gif/colmap that referenced this pull request Nov 3, 2026
## Summary
- Integrate all 12 upstream commits after the shared base 9371f7b, including LoMa BF16 loading, matching-worker error propagation, keypoint shape scaling, and project-file CLI overrides.
- Preserve the fork's CUDA blocking-sync helper alongside upstream's BF16 device check and register the shared CUDA test once.

## Validation
- Resolved all merge conflicts; no conflict markers or unmerged paths remain; git diff --check passes.
- Incremental Linux CUDA build linked six focused test executables. The prepared custom Ceres closure required its existing Abseil/CUDA library directories on the linker's search path.
- CTest passed controllers/base_option_manager_test, feature_matching_utils_test, incremental_pipeline_test, option_manager_test, feature/loma_test, and util/cuda_test (six programs, one run each).
- No full suite, Python binding, end-to-end, or performance claim.

## Upstream commits

- `ea470c0c4f4a40a3bdfa33d01eb38375c5df64de` Run Windows and remaining pycolmap CI only with the full-ci label (colmap#4904)
- `c0339e95482c404b51f38ff9b86866de495984f0` Fix MSVC warnings C4805, C4996, and C4756 (colmap#4910)
- `f00d6063bb0b120cf10ee190f7f06f4a34edf432` Expose Ceres solver thresholds in incremental mapping (colmap#4892)
- `978a4467f36bbfc9ae18780f2dca253000b0d008` Keep division-camera derivatives finite on the optical axis (colmap#4888)
- `98f31541f483788ab550f5c4a4e0804e8674b9e0` Fix leak and check covariance in CovarianceWeightedCostFunction (colmap#4911)
- `a467519441171054c7aaa17dffe86fe06431f05c` Avoid stack overflow when compressing union-find chains (colmap#4906)
- `404b83db2c2cc04892e14a578ddfa73e0ac9bfb1` Fix LoMa bf16 fallback on CUDA by loading it like any other model (colmap#4924)
- `d02e6701dede22eaeee89f73784a8c79f6f289ac` Add max_num_features option to automatic_reconstructor and benchmark (colmap#4907)
- `82c3b5db78d96a7e93ca7b8b2af0634e28aa33f4` Propagate errors of feature matching workers instead of terminating (colmap#4921)
- `4afe8d1156a71a2ff33974895f221c8eb3740cb1` Rescale keypoint shapes in image coordinates (colmap#4926)
- `ce2b5ab9df3801c2b75edbba338c04ad3c8cc6af` Fix vocabulary tree builder descriptor dimensions (colmap#4923)
- `f956ce629c21a88d75a7f7b3107298d1faf3dcf3` Fix command-line overrides for project files (colmap#4902)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

full-ci Run Windows and remaining pycolmap CI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants