Skip to content

Refactor integration testing system to build a dashboard and run in CI#44

Merged
pllim merged 17 commits into
astropy:mainfrom
astrofrog:refactor
May 14, 2026
Merged

Refactor integration testing system to build a dashboard and run in CI#44
pllim merged 17 commits into
astropy:mainfrom
astrofrog:refactor

Conversation

@astrofrog

Copy link
Copy Markdown
Member

Work in progress!

@astrofrog

Copy link
Copy Markdown
Member Author

Preview of Generated dashboard in CI

Once this is merged, future PRs will have a link posted automatically

@bsipocz

bsipocz commented May 11, 2026

Copy link
Copy Markdown
Member

fyi, I get auth error for the dashboard link above.

@astrofrog

Copy link
Copy Markdown
Member Author

Yes sorry I need to fix the link

@astrofrog astrofrog marked this pull request as ready for review May 13, 2026 11:45
@astrofrog astrofrog changed the title WIP: Refactor integration testing system to build a dashboard and run in CI Refactor integration testing system to build a dashboard and run in CI May 13, 2026
@astrofrog

astrofrog commented May 13, 2026

Copy link
Copy Markdown
Member Author

Here's the latest version of the dashboard:

https://github.com/astropy/astropy-integration-testing/suites/68789126288/artifacts/6969081003

As noted now, the CI in PRs is just testing that the infrastructure is all working and packages are working at a basic level but only checks the first 10 tests. This is to save computing/waiting time in PRs. The main published version of the dashboard will be authoritative and include all tests.

@astrofrog

Copy link
Copy Markdown
Member Author

As a disclaimer, this was written in collaboration with an LLM - I thought this would be acceptable since it can produce much nicer dashboards than I ever could, and this is not going to be code running on users' machines.

@astrofrog astrofrog requested a review from pllim May 13, 2026 12:08
return f"{pkg['pypi_name']}{_extras_suffix(pkg)} @ git+{repo}", None

else:
include_pre = variant == "pre"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Does it always run the pre job even if the versions are the same? If not can we hide it from the report?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Yes I'll check

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

So technically pre applies to all packages including in wider non astropy ecosystem so could be useful to find out issues

@bsipocz bsipocz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks great!

Does this also means that we don't run into the duplicated conftest.py requirement any more, or tests are only passing for astroquery as you capped them at the first 10?

# PR previews limit each package to the first 10 tests so the
# matrix finishes in minutes; conftest.py at the repo root reads
# this env var and truncates the collected items.
PYTEST_LIMIT_N: ${{ github.event_name == 'pull_request' && '10' || '' }}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

shouldn't we make sure to run the whole test suite, at least for the coordinated packages?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

we discussed it off-github: this is not a concern of mine any more, having the limit on PRs is fine.

@bsipocz bsipocz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Merge this away; we discussed my concern off-band and it was made clear they are not concerns.

Comment thread .github/workflows/integration.yml Outdated
pull_request:

permissions:
contents: write # to push gh-pages on main / schedule / dispatch

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should we add pull-requests: none just to be sure or it does not matter?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Done

@pllim pllim left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thank you for this awesome upgrade! Some comments:


- uses: actions/setup-python@v5
with:
python-version: '3.12'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Shouldn't this use Python version set up in matrix above?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

No, this is just the version for the orchestrator, uv sets up the Python version it needs at the point of setting up the virtual environment to run the tests in.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Comment added to clarify this

Comment thread astropy_integration/dashboard.py
Comment on lines +37 to +38
ASTROPY_NIGHTLY_INDEX = "https://pypi.anaconda.org/astropy/simple"
LIBERFA_NIGHTLY_INDEX = (

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

You mentioned interest to share this infrastructure with non-Astropy projects. If that is to happen, I suspect things like these need to be made customizable.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Agree, though I'd rather keep this as a separate PR to make it easier to review, so I've opened a new issue here: #48

Comment thread packages.yaml
pytest_args: ["-c", "sunpy_pytest.ini"]

# --- Affiliated packages auto-imported from
# https://github.com/astropy/astropy.github.com/blob/main/affiliated/registry.json

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

What about newer ones in https://www.astropy.org/affiliated/index.html#affiliated-packages-registry (from pyOpenSci cross-listing)?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Done

Comment thread README.md Outdated
Comment thread README.md

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think it would be clearer to future maintainers if you name the jobs explicitly rather than a vague "a fourth job" and so on.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Done

@astrofrog

Copy link
Copy Markdown
Member Author

The dashboard preview link will be fixed once this is merged and will work in subsequent PRs

astrofrog and others added 3 commits May 14, 2026 09:40
Co-authored-by: P. L. Lim <2090236+pllim@users.noreply.github.com>
Add seven pyOpenSci-reviewed affiliated packages (astrodata,
astromartini, autogalaxy, GALFITools, petrofit, stingray, zodipy)
under a new pyopensci tier, ranked after affiliated in install and
dashboard order.

Set an explicit pull-requests: none workflow permission, document why
setup-python uses a fixed version, and name the CI jobs explicitly in
the README.
Pin every action in the integration and preview-link workflows to a
full release commit SHA with a version comment. Add a 7-day cooldown
to the github-actions Dependabot entry so a release has time to settle
before a bump is proposed.
@astrofrog

Copy link
Copy Markdown
Member Author
  • Can we please pin GHA workflows to release hashes?

Done

Done

  • As mentioned in other review, the dashboard preview link needs to be fixed

Will be fixed after this PR is merged

@astrofrog

Copy link
Copy Markdown
Member Author

@pllim - think I've addressed all your comments?

@pllim pllim left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

✨ Main character energy. No cap! ✨

Given the preview link is currently broken, I will just have to trust your screenshot. We can fix it up later if your screenshot is no longer accurate.

p.s. Looks like this repo is no longer in-tox-icated. 😏

p.p.s. Webring is still on the table, right?

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.

4 participants