Skip to content

Consolidate CI hooks - #299

Merged
sea-bass merged 5 commits into
open-planning:mainfrom
EzraBrooks:consolidate-ci-hooks
Sep 4, 2026
Merged

sea-bass merged 5 commits into
open-planning:mainfrom
EzraBrooks:consolidate-ci-hooks

Conversation

@EzraBrooks

Copy link
Copy Markdown
Collaborator

By invoking format and build_pypi_wheels from workflow_call, we ensure that our CI trigger and schedule strategy does not drift from job to job.

@EzraBrooks

Copy link
Copy Markdown
Collaborator Author

This might be considered a matter of taste - but personally I like having all my CI jobs visible in a singular workflow in Actions.

@EzraBrooks

Copy link
Copy Markdown
Collaborator Author

Ah, because of the way the job names are generated (pre-pending their caller and /) this will also require changing the required job names in GitHub. So if we like both this and #296 we probably should merge as one

@sea-bass sea-bass left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this as well, so we can merge the 2 PRs as one. I can go into the admin settings and change the required checks to pass after the fact.

Let me know when/if you want to consolidate these 2 PRs and we shall get it through.

@EzraBrooks

Copy link
Copy Markdown
Collaborator Author

Would it make sense to also move the current jobs that live at the top level of build_and_test.yml into their own reusable workflows, just to get ahead of any future naming problems? That way the whole workflow view in GitHub will already be folderized into format, wheels, Pixi, and ROS builds.

I could go either way personally, just thinking about how to prevent more faffing about with GitHub settings.

@sea-bass

sea-bass commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

That seems like a good idea for consistency!

@@ -1,4 +1,4 @@
name: build_and_test
name: CI

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed this name while we're gonna be messing with names anyway - since this workflow just orchestrates "CI" in general.

By invoking format and build_pypi_wheels from workflow_call, we ensure
that our CI trigger and schedule strategy does not drift from job to job.
@EzraBrooks

EzraBrooks commented Sep 4, 2026 •

Copy link
Copy Markdown
Collaborator Author

we can do some more cosmetic tweaking to the workflow names and job names once we run and see how they look in practice. they might be a bit verbose right now

Comment on lines +31 to +36
- name: Sanitize tag name
id: sanitize_tag
run: |
BRANCH="${{ github.head_ref || github.ref_name }}"
TAG="${BRANCH//\//-}"
echo "tag=$TAG" >> $GITHUB_OUTPUT

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In a follow-up PR (since I don't want to risk functional changes in this PR that's mostly cosmetic), I think we should move this up to the root workflow and pass the tag name as an argument to the two jobs that use it.

Make the contents of the job clear in its name and remove inline YAML logic.

@EzraBrooks EzraBrooks left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thoughts on these proposed names for the folderization of the workflow?

Comment thread .github/workflows/build_and_test.yml Resolved
Comment thread .github/workflows/build_and_test.yml Resolved
Comment thread .github/workflows/build_and_test.yml Resolved
Comment thread .github/workflows/build_and_test.yml Resolved
Comment thread .github/workflows/build_and_test.yml Resolved
@EzraBrooks
EzraBrooks force-pushed the consolidate-ci-hooks branch 3 times, most recently from c180eb3 to 8ba816a Compare September 4, 2026 18:57
@EzraBrooks

Copy link
Copy Markdown
Collaborator Author

I got a bit lost in the sauce on changing the names of things but I think it looks really nice now.

@eholum eholum left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this change! Def easier to see the results. Minor nit in what looks like a bypassed test, but otherwise even the required status checks panel is nicer to look at:

Image

Comment thread tests/unified_python_package_test.py Outdated
assert "workflow_call:" in workflow
assert "pull_request:" not in workflow
assert "push:" not in workflow
assert "workflow_dispatch:" not in workflow

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed, right? This test now fails for me locally,

>       assert "workflow_dispatch:" not in workflow
E       AssertionError: assert 'workflow_dispatch:' not in 'name: Build...und: error\n'
E         
E         'workflow_dispatch:' is contained here:
E           name: Build PyPI wheels
E           
E           on:
E             workflow_dispatch:
E             workflow_call: {}...
E         
E         ...Full output truncated (133 lines hidden), use '-vv' to show

That said does this get run by anything?

Suggested change
assert "workflow_dispatch:" not in workflow

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

failing locally but not in CI? suspicious..

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It appears this test has never been invoked by CI. It seems like it's mostly just AI ramblings. Should I just delete it?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A non-functional, non-executed test definitely doesn't add value... Seems like it was added in the initial wheels setup, #247.

So since we haven't been using it I would vote delete. But if someone who knows more about python packages (namely, everyone) than I do might see the value in actually wiring it to something...

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I actually have an incoming draft that unifies the wheel build into the new superbuild. Also, the CI job for building the wheels already sanity-checks them by importing them

@eholum eholum left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, can coordinate with @sea-bass about merging and updating the status checks...

@sea-bass sea-bass left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated naming LGTM, gonna fiddle with the required checks now

@sea-bass
sea-bass merged commit 25c75a3 into open-planning:main Sep 4, 2026
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants