Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] Integration tests using macos action runners #39

Open
teald opened this issue Jul 31, 2024 · 0 comments
Open

[FEATURE] Integration tests using macos action runners #39

teald opened this issue Jul 31, 2024 · 0 comments
Assignees
Labels
CI/CD Changes to CI/CD workflows enhancement New feature or request test Related to testing

Comments

@teald
Copy link
Member

teald commented Jul 31, 2024

Summary

The GitHub Actions use an incompatible architecture for DRAGONS (arm64). While this is something that can be worked with, it is not as straightforward using actions.

This is not an especially urgent update to make to the current workflows, and is blocking other progress. The code is already has unit and integration test coverage for arm64 and x86_64 locally, which is fine in the near-term. So I'm leaving this for later.

However, this is important enough (e.g., for scheduled tests) that it merits an issue.

@teald teald added enhancement New feature or request CI/CD Changes to CI/CD workflows test Related to testing labels Jul 31, 2024
@teald teald self-assigned this Jul 31, 2024
teald added a commit that referenced this issue Jul 31, 2024
@teald teald mentioned this issue Jul 31, 2024
teald added a commit that referenced this issue Aug 1, 2024
Squashing 68 commits that update the testing setup to use nox. See PR #35 for more information.

The commit messages for the squashed commits are listed below (in case they're useful):

* Update outdated docstring

* Add file range expansion to testing module

* Add download_multiple files and tests

* Initial integration testing commit

Includes updates to astrodata/testing.py as well which enable multiple
files to be downloaded asynchronously using threads or processes.

Ideally, that would eventually just be async, but invoking an executor
is easier and gets the job done.

Integration testing is planning to use:
+ The tutorials
+ Unit tests
+ Longer Tests if possible with github actions (need their own testing).

* Adding nox testing file.

* Adding noxfile and dependency.

* Updates to testing, add niri test

* Make stdout optional for downloads

* Update tests

* Add to niri tests, update test config

* Use Path objects in noxfile

* Update lock file

* Linting noxfile

* Move unit tests to unit test folder.

* Update unit test selection

It's more obvious to use the directory tree for separating classes of
tests than using marks (now that there are also integration tests).

* Explicitly ignore return results for session runs.

* Adjust for updates to test directory structure

* Add ruff config to pyproject.toml

Start of the process of migrating these settings from
pre-commit/workflows into the pyproject.toml file.

* Add __init__.py, calibration tests

* test(dragons): 🛠  Fix calibration service issue in fixture.

* test(dragons): 🧪 Add NIRI and GMOS tests, now working.

* fix: 👷 Fix post-rebase syntax issue in testing.yml

* ci: 💚 Allow for manual runs.

* fix: 🐛 Add missing python versions.

* ci(dragons): 🧪 add DRAGONS tests to workflow.

* fix(dragons): 🐛 Ignore dragons tests when running on windows.

* fix(dragons): 🐛 Include conda in workflows.

* test(dragons): 🧪 Add DRAGONS dev version tests

This adds a new testing session in nox that pulls the main DRAGONS
branch and tests on it explicitly, rather than only testing on the
release. This will be important for migrating changes to astrodata over
from DRAGONS.

Currently fails to run.

* test(commnent): spelling

* ci(dragons): 🛠️ Add homebrew for sextractor.

* ci(dragons): 🛠️ Remove redundant calibration test call.

* ci(dragons):  🧪 Add DRAGONS dev tests.

* test(dragons): 🐛 Update development tests to use conda for sextractor.

* test(dragons): 🐛 Update tests to install the appropriate miniconda.

* ci(dragons): 🐛 Fix syntax issues in yaml file, use curl for macos.

* ci(dragons): 🐛 Uncomment os's in matrix.

* fix(dragons): 🧹 remove brew command.

* fix(dragons): 🐛 Initialize conda shell.

* ci(dragons): 🛠🛠️ upgrade

* ci(dragons): 🧹 Tidy dragons dev install sequence

* ci: 🎨 Split out integration tests into their own workflow

"testing" workflow was becoming unwieldy.

* ci: 🐛 Fix issue with git+ installs

This was caused by a conflict when installing both python and conda in the same action (probably some library thing).

* ci: 🐛 Use more recent version of `setup-miniconda` (v2->v3)

* ci: 🐛 Remove windows from DRAGONS integration test runs

* ci: 🎨 Rename testing.yml workflow

This may break badges when it is published.

* ci: 🎨 Move dev tests to their own step

* test: 🎨 Consolidate conda installs

* test: 🔊 Increase test verbosity

* test: 🔊 Autouse proper log handling for DRAGONS

Otherwise, stdout gets double messaging (known issue in DRAGONS).

* ci: 💚 Catch bad OS Names for DRAGONS runs

* ci: ✅ Add back in OS's for unit testing

* ci: 🎨 Rename `testing.yml` -> `unit_tests.yml`

* ci: 🧪 Omit dragons dev branch tests

These tests now function as expected; they will be implemented for the next release.

* ci: 🔧 Update the global conda config in the `osx` runners.

* fix: 🐛 Fix issue with config command/subdir permanency

* test: ✅ Add configuration step for macos testing.

This is needed because the env settings to not always propogate down to the conda environemnts generated by `nox`.

* test: ✨ Generalize test dependency installation function to accept package list.

* test: 🧑‍💻 Remove the `dragons/astrodata` dir directly prior to build

This is a quick implementation for the future---this will ensure that any relative imports are still caught when testing astrodata on the development version of DRAGONS. It does *not* solve this problem for the release version, but that's less of an issue for now.

* ci: 🚧 Try updating session venv params passed to conda.

* ci: 🚧 Reorganize actions

* ci: 🚧 Verbose output for nox during github actions.

* Revert "ci: 🚧 Try updating session venv params passed to conda."

This reverts commit 434bcf7.

* ci: 🚧 Rearrange subdir invocation.

* Revert "Revert "ci: 🚧 Try updating session venv params passed to conda.""

This reverts commit 3ff7a21.

* ci: 🚧 Remove configuration step entirely.

* ci(dragons): Add nox install step.

* ci(dragons): 🚧 Add poetry install to workflow

* ci(dragons): 👷 Remove macos worker request

This is now covered in Issue #39.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI/CD Changes to CI/CD workflows enhancement New feature or request test Related to testing
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

1 participant