Skip to content

Conversation

@mctierney-mitll
Copy link
Collaborator

I'd like to use GitHub Actions to run our tests automatically on pushes and PRs. This is really just a test attempt using the basic Python Application template.

Signed-off-by: Michael C. Tierney <michael.kotson@ll.mit.edu>
@mctierney-mitll mctierney-mitll added the enhancement New feature or request label Mar 31, 2025
@mctierney-mitll
Copy link
Collaborator Author

Opening this PR ran the test, which failed! But that was part of the plan. Gonna work on fixing it, now.

Signed-off-by: Michael C. Tierney <michael.kotson@ll.mit.edu>
Signed-off-by: Michael C. Tierney <michael.kotson@ll.mit.edu>
Signed-off-by: Michael C. Tierney <michael.kotson@ll.mit.edu>
@mctierney-mitll
Copy link
Collaborator Author

This is working and ready for review. It's slow (~35 minutes to run all tests), but we can improve that in a future update.

@rsullenbLL
Copy link
Collaborator

@mctierney-mitll
I'm unfamiliar with actions, but after reading up on it a bit,
I tried act -j build and got the following output (with error)

INFO[0000] Using docker host 'unix:///var/run/docker.sock', and daemon socket 'unix:///var/run/docker.sock'
? Please choose the default image you want to use with act:
  - Large size image: ca. 17GB download + 53.1GB storage, you will need 75GB of free disk space, snapshots of GitHub Hosted Runners without snap and pulled docker images
  - Medium size image: ~500MB, includes only necessary tools to bootstrap actions and aims to be compatible with most actions
  - Micro size image: <200MB, contains only NodeJS required to bootstrap actions, doesn't work with all actions

Default image and other options can be changed manually in /home/rsullenb.linux/.config/act/actrc (please refer to https://nektosact.com/usage/index.html?highlight=configur#configuration-file for additional information about file structure) Medium
Error: Could not find any stages to run. View the valid jobs with `act --list`. Use `act --help` to find how to filter by Job ID/Workflow/Event Name
➜  rsullenb ~/Projects/MaDDG git:(mctierney-mitll-github-workflow) ../../bin/act --list
INFO[0000] Using docker host 'unix:///var/run/docker.sock', and daemon socket 'unix:///var/run/docker.sock'
Stage  Job ID  Job name  Workflow name  Workflow file  Events
0      build   build     Tests          tests.yml      push,pull_request
➜  rsullenb ~/Projects/MaDDG git:(mctierney-mitll-github-workflow) ../../bin/act -j build
INFO[0000] Using docker host 'unix:///var/run/docker.sock', and daemon socket 'unix:///var/run/docker.sock'
[Tests/build] ⭐ Run Set up job
[Tests/build] 🚀  Start image=catthehacker/ubuntu:act-latest
[Tests/build]   🐳  docker pull image=catthehacker/ubuntu:act-latest platform= username= forcePull=true
[Tests/build]   🐳  docker create image=catthehacker/ubuntu:act-latest platform= entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[Tests/build]   🐳  docker run image=catthehacker/ubuntu:act-latest platform= entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[Tests/build]   🐳  docker exec cmd=[node --no-warnings -e console.log(process.execPath)] user= workdir=
[Tests/build]   ✅  Success - Set up job
[Tests/build]   ☁  git clone 'https://github.com/actions/setup-python' # ref=v3
[Tests/build] ⭐ Run Main actions/checkout@v4
[Tests/build]   🐳  docker cp src=/home/rsullenb.linux/Projects/MaDDG/. dst=/home/rsullenb.linux/Projects/MaDDG
[Tests/build]   ✅  Success - Main actions/checkout@v4 [15.573379ms]
[Tests/build] ⭐ Run Main Set up Python 3.11
[Tests/build]   🐳  docker cp src=/home/rsullenb.linux/.cache/act/actions-setup-python@v3/ dst=/var/run/act/actions/actions-setup-python@v3/
[Tests/build]   🐳  docker exec cmd=[/opt/acttoolcache/node/18.20.8/arm64/bin/node /var/run/act/actions/actions-setup-python@v3/dist/setup/index.js] user= workdir=
| Version 3.11 was not found in the local cache
| Version 3.11 is available for downloading
| Download from "https://github.com/actions/python-versions/releases/download/3.11.11-12160100664/python-3.11.11-linux-22.04-arm64.tar.gz"
| Extract downloaded archive
| [command]/usr/bin/tar xz --warning=no-unknown-keyword -C /tmp/a870cde4-d324-4676-b130-eb9550d91c96 -f /tmp/06fdad14-fd72-40e7-9ac6-cebfd6159160
| Execute installation script
| Check if Python hostedtoolcache folder exist...
| Creating Python hostedtoolcache folder...
| Create Python 3.11.11 folder
| Copy Python binaries to hostedtoolcache folder
| Create additional symlinks (Required for the UsePythonVersion Azure Pipelines task and the setup-python GitHub Action)
| Upgrading pip...
| Looking in links: /tmp/tmpyozqvn1c
| Requirement already satisfied: setuptools in /opt/hostedtoolcache/Python/3.11.11/arm64/lib/python3.11/site-packages (65.5.0)
| Requirement already satisfied: pip in /opt/hostedtoolcache/Python/3.11.11/arm64/lib/python3.11/site-packages (24.0)
[Tests/build]   ❗  ::error::WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
| Collecting pip
| Downloading pip-25.0.1-py3-none-any.whl.metadata (3.7 kB)
| Downloading pip-25.0.1-py3-none-any.whl (1.8 MB)
| ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 20.9 MB/s eta 0:00:00
|
| Installing collected packages: pip
| Attempting uninstall: pip
| Found existing installation: pip 24.0
| Uninstalling pip-24.0:
| Successfully uninstalled pip-24.0
| Successfully installed pip-25.0.1
| Create complete file
| Successfully setup CPython (3.11.11)
[Tests/build]   ❓ add-matcher /run/act/actions/actions-setup-python@v3/.github/python.json
[Tests/build]   ✅  Success - Main Set up Python 3.11 [8.546632449s]
[Tests/build]   ⚙  ::set-env:: pythonLocation=/opt/hostedtoolcache/Python/3.11.11/arm64
[Tests/build]   ⚙  ::set-env:: LD_LIBRARY_PATH=/opt/hostedtoolcache/Python/3.11.11/arm64/lib
[Tests/build]   ⚙  ::set-output:: python-version=3.11.11
[Tests/build]   ⚙  ::add-path:: /opt/hostedtoolcache/Python/3.11.11/arm64
[Tests/build]   ⚙  ::add-path:: /opt/hostedtoolcache/Python/3.11.11/arm64/bin
[Tests/build] ⭐ Run Main Install package
[Tests/build]   🐳  docker exec cmd=[bash -e /var/run/act/workflow/2] user= workdir=
| Requirement already satisfied: pip in /opt/hostedtoolcache/Python/3.11.11/arm64/lib/python3.11/site-packages (25.0.1)
| WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
| Collecting flake8
|   Downloading flake8-7.2.0-py2.py3-none-any.whl.metadata (3.8 kB)
| Collecting tox
|   Downloading tox-4.25.0-py3-none-any.whl.metadata (3.7 kB)
| Collecting mccabe<0.8.0,>=0.7.0 (from flake8)
|   Downloading mccabe-0.7.0-py2.py3-none-any.whl.metadata (5.0 kB)
| Collecting pycodestyle<2.14.0,>=2.13.0 (from flake8)
|   Downloading pycodestyle-2.13.0-py2.py3-none-any.whl.metadata (4.5 kB)
| Collecting pyflakes<3.4.0,>=3.3.0 (from flake8)
|   Downloading pyflakes-3.3.2-py2.py3-none-any.whl.metadata (3.5 kB)
| Collecting cachetools>=5.5.1 (from tox)
|   Downloading cachetools-5.5.2-py3-none-any.whl.metadata (5.4 kB)
| Collecting chardet>=5.2 (from tox)
|   Downloading chardet-5.2.0-py3-none-any.whl.metadata (3.4 kB)
| Collecting colorama>=0.4.6 (from tox)
|   Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)
| Collecting filelock>=3.16.1 (from tox)
|   Downloading filelock-3.18.0-py3-none-any.whl.metadata (2.9 kB)
| Collecting packaging>=24.2 (from tox)
|   Downloading packaging-24.2-py3-none-any.whl.metadata (3.2 kB)
| Collecting platformdirs>=4.3.6 (from tox)
|   Downloading platformdirs-4.3.7-py3-none-any.whl.metadata (11 kB)
| Collecting pluggy>=1.5 (from tox)
|   Downloading pluggy-1.5.0-py3-none-any.whl.metadata (4.8 kB)
| Collecting pyproject-api>=1.8 (from tox)
|   Downloading pyproject_api-1.9.0-py3-none-any.whl.metadata (2.7 kB)
| Collecting virtualenv>=20.29.1 (from tox)
|   Downloading virtualenv-20.30.0-py3-none-any.whl.metadata (4.5 kB)
| Collecting distlib<1,>=0.3.7 (from virtualenv>=20.29.1->tox)
|   Downloading distlib-0.3.9-py2.py3-none-any.whl.metadata (5.2 kB)
| Downloading flake8-7.2.0-py2.py3-none-any.whl (57 kB)
| Downloading tox-4.25.0-py3-none-any.whl (172 kB)
| Downloading cachetools-5.5.2-py3-none-any.whl (10 kB)
| Downloading chardet-5.2.0-py3-none-any.whl (199 kB)
| Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)
| Downloading filelock-3.18.0-py3-none-any.whl (16 kB)
| Downloading mccabe-0.7.0-py2.py3-none-any.whl (7.3 kB)
| Downloading packaging-24.2-py3-none-any.whl (65 kB)
| Downloading platformdirs-4.3.7-py3-none-any.whl (18 kB)
| Downloading pluggy-1.5.0-py3-none-any.whl (20 kB)
| Downloading pycodestyle-2.13.0-py2.py3-none-any.whl (31 kB)
| Downloading pyflakes-3.3.2-py2.py3-none-any.whl (63 kB)
| Downloading pyproject_api-1.9.0-py3-none-any.whl (13 kB)
| Downloading virtualenv-20.30.0-py3-none-any.whl (4.3 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.3/4.3 MB 31.7 MB/s eta 0:00:00
| Downloading distlib-0.3.9-py2.py3-none-any.whl (468 kB)
| Installing collected packages: distlib, pyflakes, pycodestyle, pluggy, platformdirs, packaging, mccabe, filelock, colorama, chardet, cachetools, virtualenv, pyproject-api, flake8, tox
| Successfully installed cachetools-5.5.2 chardet-5.2.0 colorama-0.4.6 distlib-0.3.9 filelock-3.18.0 flake8-7.2.0 mccabe-0.7.0 packaging-24.2 platformdirs-4.3.7 pluggy-1.5.0 pycodestyle-2.13.0 pyflakes-3.3.2 pyproject-api-1.9.0 tox-4.25.0 virtualenv-20.30.0
| WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
| Processing /home/rsullenb.linux/Projects/MaDDG
|   Installing build dependencies ... done
|   Getting requirements to build wheel ... done
|   Preparing metadata (pyproject.toml) ... done
| Collecting AstroForge (from MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading astroforge-0.2.7-py3-none-any.whl.metadata (3.8 kB)
| Collecting requests>=2.18.4 (from MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)
| Collecting astropy>=5.3.1 (from MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading astropy-7.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (10 kB)
| Collecting matplotlib>=3.7.2 (from MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading matplotlib-3.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (11 kB)
| Collecting numpy==1.26.4 (from MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (62 kB)
| Collecting pandas>=2.0.3 (from MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.metadata (89 kB)
| Collecting hydra-core>=1.3.2 (from MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading hydra_core-1.3.2-py3-none-any.whl.metadata (5.5 kB)
| Collecting hydra-submitit-launcher>=1.2.0 (from MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading hydra_submitit_launcher-1.2.0-py3-none-any.whl.metadata (1.1 kB)
| Collecting hydra-zen>=0.11.0 (from MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading hydra_zen-0.14.0-py3-none-any.whl.metadata (7.6 kB)
| Collecting submitit>=1.4.5 (from MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading submitit-1.5.2-py3-none-any.whl.metadata (7.9 kB)
| Collecting pyyaml>=6.0.1 (from MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (2.1 kB)
| Collecting jsonschema>=4.19.0 (from MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading jsonschema-4.23.0-py3-none-any.whl.metadata (7.9 kB)
| Collecting pyerfa>=2.0.1.1 (from astropy>=5.3.1->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading pyerfa-2.0.1.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (5.7 kB)
| Collecting astropy-iers-data>=0.2025.1.31.12.41.4 (from astropy>=5.3.1->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading astropy_iers_data-0.2025.3.31.0.36.18-py3-none-any.whl.metadata (5.1 kB)
| Requirement already satisfied: packaging>=22.0.0 in /opt/hostedtoolcache/Python/3.11.11/arm64/lib/python3.11/site-packages (from astropy>=5.3.1->MaDDG==0.1.0.post1.dev15+gcf409ea) (24.2)
| Collecting omegaconf<2.4,>=2.2 (from hydra-core>=1.3.2->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading omegaconf-2.3.0-py3-none-any.whl.metadata (3.9 kB)
| Collecting antlr4-python3-runtime==4.9.* (from hydra-core>=1.3.2->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading antlr4-python3-runtime-4.9.3.tar.gz (117 kB)
|   Installing build dependencies ... done
|   Getting requirements to build wheel ... done
|   Preparing metadata (pyproject.toml) ... done
| Collecting hydra-core>=1.3.2 (from MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading hydra_core-1.4.0.dev1-py3-none-any.whl.metadata (5.4 kB)
| Collecting typing-extensions!=4.6.0,>=4.1.0 (from hydra-zen>=0.11.0->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading typing_extensions-4.13.0-py3-none-any.whl.metadata (3.0 kB)
| Collecting attrs>=22.2.0 (from jsonschema>=4.19.0->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading attrs-25.3.0-py3-none-any.whl.metadata (10 kB)
| Collecting jsonschema-specifications>=2023.03.6 (from jsonschema>=4.19.0->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading jsonschema_specifications-2024.10.1-py3-none-any.whl.metadata (3.0 kB)
| Collecting referencing>=0.28.4 (from jsonschema>=4.19.0->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading referencing-0.36.2-py3-none-any.whl.metadata (2.8 kB)
| Collecting rpds-py>=0.7.1 (from jsonschema>=4.19.0->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading rpds_py-0.24.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (4.1 kB)
| Collecting contourpy>=1.0.1 (from matplotlib>=3.7.2->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading contourpy-1.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (5.4 kB)
| Collecting cycler>=0.10 (from matplotlib>=3.7.2->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)
| Collecting fonttools>=4.22.0 (from matplotlib>=3.7.2->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading fonttools-4.56.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (101 kB)
| Collecting kiwisolver>=1.3.1 (from matplotlib>=3.7.2->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (6.2 kB)
| Collecting pillow>=8 (from matplotlib>=3.7.2->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl.metadata (9.1 kB)
| Collecting pyparsing>=2.3.1 (from matplotlib>=3.7.2->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading pyparsing-3.2.3-py3-none-any.whl.metadata (5.0 kB)
| Collecting python-dateutil>=2.7 (from matplotlib>=3.7.2->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
| Collecting pytz>=2020.1 (from pandas>=2.0.3->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading pytz-2025.2-py2.py3-none-any.whl.metadata (22 kB)
| Collecting tzdata>=2022.7 (from pandas>=2.0.3->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading tzdata-2025.2-py2.py3-none-any.whl.metadata (1.4 kB)
| Collecting charset-normalizer<4,>=2 (from requests>=2.18.4->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (35 kB)
| Collecting idna<4,>=2.5 (from requests>=2.18.4->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading idna-3.10-py3-none-any.whl.metadata (10 kB)
| Collecting urllib3<3,>=1.21.1 (from requests>=2.18.4->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading urllib3-2.3.0-py3-none-any.whl.metadata (6.5 kB)
| Collecting certifi>=2017.4.17 (from requests>=2.18.4->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading certifi-2025.1.31-py3-none-any.whl.metadata (2.5 kB)
| Collecting cloudpickle>=1.2.1 (from submitit>=1.4.5->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading cloudpickle-3.1.1-py3-none-any.whl.metadata (7.1 kB)
| Collecting numba>=0.57.1 (from AstroForge->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading numba-0.61.0-cp311-cp311-manylinux_2_28_aarch64.whl.metadata (2.8 kB)
| Collecting scipy>=1.11.1 (from AstroForge->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading scipy-1.15.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (61 kB)
| Collecting llvmlite<0.45,>=0.44.0dev0 (from numba>=0.57.1->AstroForge->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading llvmlite-0.44.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.metadata (4.8 kB)
| Collecting six>=1.5 (from python-dateutil>=2.7->matplotlib>=3.7.2->MaDDG==0.1.0.post1.dev15+gcf409ea)
|   Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)
| Downloading numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (14.2 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.2/14.2 MB 30.3 MB/s eta 0:00:00
| Downloading astropy-7.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (10.3 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.3/10.3 MB 28.1 MB/s eta 0:00:00
| Downloading hydra_core-1.3.2-py3-none-any.whl (154 kB)
| Downloading hydra_submitit_launcher-1.2.0-py3-none-any.whl (5.2 kB)
| Downloading hydra_zen-0.14.0-py3-none-any.whl (104 kB)
| Downloading jsonschema-4.23.0-py3-none-any.whl (88 kB)
| Downloading matplotlib-3.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.5 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.5/8.5 MB 29.2 MB/s eta 0:00:00
| Downloading pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (15.6 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 15.6/15.6 MB 30.2 MB/s eta 0:00:00
| Downloading PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (736 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 736.8/736.8 kB 30.6 MB/s eta 0:00:00
| Downloading requests-2.32.3-py3-none-any.whl (64 kB)
| Downloading submitit-1.5.2-py3-none-any.whl (74 kB)
| Downloading astroforge-0.2.7-py3-none-any.whl (31 kB)
| Downloading astropy_iers_data-0.2025.3.31.0.36.18-py3-none-any.whl (2.0 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.0/2.0 MB 17.2 MB/s eta 0:00:00
| Downloading attrs-25.3.0-py3-none-any.whl (63 kB)
| Downloading certifi-2025.1.31-py3-none-any.whl (166 kB)
| Downloading charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (139 kB)
| Downloading cloudpickle-3.1.1-py3-none-any.whl (20 kB)
| Downloading contourpy-1.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (313 kB)
| Downloading cycler-0.12.1-py3-none-any.whl (8.3 kB)
| Downloading fonttools-4.56.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.9 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.9/4.9 MB 29.8 MB/s eta 0:00:00
| Downloading idna-3.10-py3-none-any.whl (70 kB)
| Downloading jsonschema_specifications-2024.10.1-py3-none-any.whl (18 kB)
| Downloading kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 27.3 MB/s eta 0:00:00
| Downloading numba-0.61.0-cp311-cp311-manylinux_2_28_aarch64.whl (3.5 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.5/3.5 MB 21.4 MB/s eta 0:00:00
| Downloading omegaconf-2.3.0-py3-none-any.whl (79 kB)
| Downloading pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl (4.4 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.4/4.4 MB 18.9 MB/s eta 0:00:00
| Downloading pyerfa-2.0.1.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (692 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 692.8/692.8 kB 23.4 MB/s eta 0:00:00
| Downloading pyparsing-3.2.3-py3-none-any.whl (111 kB)
| Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
| Downloading pytz-2025.2-py2.py3-none-any.whl (509 kB)
| Downloading referencing-0.36.2-py3-none-any.whl (26 kB)
| Downloading rpds_py-0.24.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (388 kB)
| Downloading scipy-1.15.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (35.5 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 35.5/35.5 MB 26.9 MB/s eta 0:00:00
| Downloading typing_extensions-4.13.0-py3-none-any.whl (45 kB)
| Downloading tzdata-2025.2-py2.py3-none-any.whl (347 kB)
| Downloading urllib3-2.3.0-py3-none-any.whl (128 kB)
| Downloading llvmlite-0.44.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (41.2 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 41.2/41.2 MB 27.2 MB/s eta 0:00:00
| Downloading six-1.17.0-py2.py3-none-any.whl (11 kB)
| Building wheels for collected packages: MaDDG, antlr4-python3-runtime
|   Building wheel for MaDDG (pyproject.toml) ... done
|   Created wheel for MaDDG: filename=maddg-0.1.0.post1.dev15+gcf409ea-py3-none-any.whl size=28542 sha256=888dd169e47ac3a432502587c3af172d8efb85151beeb7e5364d55dc576653b6
|   Stored in directory: /tmp/pip-ephem-wheel-cache-w5grg_je/wheels/19/d8/9d/10cb2ce27debb77ed3e5347d61a381d951ffaadb4269b4d8a5
|   Building wheel for antlr4-python3-runtime (pyproject.toml) ... done
|   Created wheel for antlr4-python3-runtime: filename=antlr4_python3_runtime-4.9.3-py3-none-any.whl size=144592 sha256=24ed1050d1d1775471552a77ce3b55749f2a6a209f38847322fef4a3b4b0c18f
|   Stored in directory: /root/.cache/pip/wheels/1a/97/32/461f837398029ad76911109f07047fde1d7b661a147c7c56d1
| Successfully built MaDDG antlr4-python3-runtime
| Installing collected packages: pytz, antlr4-python3-runtime, urllib3, tzdata, typing-extensions, six, rpds-py, pyyaml, pyparsing, pillow, numpy, llvmlite, kiwisolver, idna, fonttools, cycler, cloudpickle, charset-normalizer, certifi, attrs, astropy-iers-data, submitit, scipy, requests, referencing, python-dateutil, pyerfa, omegaconf, numba, contourpy, pandas, matplotlib, jsonschema-specifications, hydra-core, astropy, jsonschema, hydra-zen, hydra-submitit-launcher, AstroForge, MaDDG
| Successfully installed AstroForge-0.2.7 MaDDG-0.1.0.post1.dev15+gcf409ea antlr4-python3-runtime-4.9.3 astropy-7.0.1 astropy-iers-data-0.2025.3.31.0.36.18 attrs-25.3.0 certifi-2025.1.31 charset-normalizer-3.4.1 cloudpickle-3.1.1 contourpy-1.3.1 cycler-0.12.1 fonttools-4.56.0 hydra-core-1.3.2 hydra-submitit-launcher-1.2.0 hydra-zen-0.14.0 idna-3.10 jsonschema-4.23.0 jsonschema-specifications-2024.10.1 kiwisolver-1.4.8 llvmlite-0.44.0 matplotlib-3.10.1 numba-0.61.0 numpy-1.26.4 omegaconf-2.3.0 pandas-2.2.3 pillow-11.1.0 pyerfa-2.0.1.5 pyparsing-3.2.3 python-dateutil-2.9.0.post0 pytz-2025.2 pyyaml-6.0.2 referencing-0.36.2 requests-2.32.3 rpds-py-0.24.0 scipy-1.15.2 six-1.17.0 submitit-1.5.2 typing-extensions-4.13.0 tzdata-2025.2 urllib3-2.3.0
| WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
[Tests/build]   ✅  Success - Main Install package [22.870932581s]
[Tests/build] ⭐ Run Main Lint with flake8
[Tests/build]   🐳  docker exec cmd=[bash -e /var/run/act/workflow/3] user= workdir=
| 0
| ./scripts/dropout.py:178:1: C901 'plot_sensor_ID' is too complex (12)
| ./scripts/dropout.py:200:128: E501 line too long (131 > 127 characters)
| ./scripts/dropout.py:415:1: C901 'dropout' is too complex (13)
| ./scripts/dropout.py:567:49: E712 comparison to True should be 'if cond is True:' or 'if cond:'
| ./scripts/dropout.py:626:128: E501 line too long (154 > 127 characters)
| ./scripts/dropout.py:633:128: E501 line too long (128 > 127 characters)
| ./scripts/dropout.py:647:13: E721 do not compare types, for exact checks use `is` / `is not`, for instance checks use `isinstance()`
| ./scripts/hz_launcher.py:22:1: F401 'madlib._utils.MadlibException' imported but unused
| ./scripts/hz_launcher.py:196:1: C901 'simulator_task' is too complex (16)
| ./scripts/hz_launcher.py:408:128: E501 line too long (131 > 127 characters)
| ./src/maddg/_residuals.py:43:5: E266 too many leading '#' for block comment
| ./src/maddg/_residuals.py:48:5: E266 too many leading '#' for block comment
| ./src/maddg/_residuals.py:56:5: E266 too many leading '#' for block comment
| ./src/maddg/_sim_launcher.py:51:1: C901 'launcher' is too complex (27)
| ./src/maddg/_sim_launcher.py:108:128: E501 line too long (154 > 127 characters)
| ./src/maddg/_sim_launcher.py:185:13: F541 f-string is missing placeholders
| ./src/maddg/_sim_launcher.py:192:13: F541 f-string is missing placeholders
| ./src/maddg/_sim_launcher.py:221:13: E721 do not compare types, for exact checks use `is` / `is not`, for instance checks use `isinstance()`
| ./src/madlib/__init__.py:10:1: F401 '._maneuver.ContinuousManeuver' imported but unused
| ./src/madlib/__init__.py:10:1: F401 '._maneuver.ImpulsiveManeuver' imported but unused
| ./src/madlib/__init__.py:11:1: F401 '._observation.Observation' imported but unused
| ./src/madlib/__init__.py:11:1: F401 '._observation.ObservationResidual' imported but unused
| ./src/madlib/__init__.py:12:1: F401 '._satellite.ContinuousThrustSatellite' imported but unused
| ./src/madlib/__init__.py:12:1: F401 '._satellite.Satellite' imported but unused
| ./src/madlib/__init__.py:13:1: F401 '._sensor.GroundOpticalSensor' imported but unused
| ./src/madlib/__init__.py:13:1: F401 '._sensor.SpaceOpticalSensor' imported but unused
| ./src/madlib/__init__.py:14:1: F401 '._sensor_collection.SensorCollection' imported but unused
| ./src/madlib/_maneuver.py:12:128: E501 line too long (131 > 127 characters)
| ./src/madlib/_satellite.py:417:9: E731 do not assign a lambda expression, use a def
| ./src/madlib/_satellite.py:496:128: E501 line too long (243 > 127 characters)
| ./src/madlib/_sensor.py:141:5: C901 '_OpticalSensor.generate_obs_timing' is too complex (11)
| ./src/madlib/_sensor.py:506:9: E266 too many leading '#' for block comment
| ./src/madlib/_sensor.py:860:9: E266 too many leading '#' for block comment
| ./src/madlib/_sensor.py:903:9: E266 too many leading '#' for block comment
| ./src/madlib/_sensor.py:906:9: E266 too many leading '#' for block comment
| ./src/madlib/_sensor.py:907:9: E266 too many leading '#' for block comment
| ./src/madlib/_sensor.py:911:9: E266 too many leading '#' for block comment
| ./src/madlib/_sensor.py:915:9: E266 too many leading '#' for block comment
| ./tests/test_configs.py:15:5: F841 local variable 'network' is assigned to but never used
| ./tests/test_dropout.py:83:43: E712 comparison to False should be 'if cond is False:' or 'if not cond:'
| ./tests/test_dropout.py:85:32: E712 comparison to False should be 'if cond is False:' or 'if not cond:'
| ./tests/test_dropout.py:129:43: E712 comparison to True should be 'if cond is True:' or 'if cond:'
| ./tests/test_dropout.py:131:32: E712 comparison to True should be 'if cond is True:' or 'if cond:'
| ./tests/test_dropout.py:585:9: F841 local variable 'df' is assigned to but never used
| ./tests/test_dropout.py:596:9: F841 local variable 'df_drop' is assigned to but never used
| ./tests/test_hz_launcher.py:168:9: F841 local variable 'activated_sensors' is assigned to but never used
| ./tests/test_hz_launcher.py:170:9: F841 local variable 'final_ra' is assigned to but never used
| ./tests/test_hz_launcher.py:171:9: F841 local variable 'final_dec' is assigned to but never used
| ./tests/test_hz_launcher.py:240:13: F841 local variable 'results' is assigned to but never used
| ./tests/test_hz_launcher.py:271:24: E711 comparison to None should be 'if cond is None:'
| ./tests/test_madlib_satellite.py:23:1: F401 'madlib._satellite.ContinuousThrustSatellite' imported but unused
| ./tests/test_madlib_satellite.py:71:25: E711 comparison to None should be 'if cond is None:'
| ./tests/test_madlib_sensor.py:76:9: F841 local variable 'x0' is assigned to but never used
| ./tests/test_madlib_sensor.py:77:9: F841 local variable 'v0' is assigned to but never used
| ./tests/test_madlib_sensor.py:78:9: F841 local variable 'a0' is assigned to but never used
| ./tests/test_madlib_sensor.py:85:9: F841 local variable 'man' is assigned to but never used
| ./tests/test_madlib_sensor.py:173:13: F841 local variable 'obs' is assigned to but never used
| ./tests/test_madlib_sensor.py:303:9: F841 local variable 'x0' is assigned to but never used
| ./tests/test_madlib_sensor.py:304:9: F841 local variable 'v0' is assigned to but never used
| ./tests/test_madlib_sensor.py:305:9: F841 local variable 'a0' is assigned to but never used
| ./tests/test_madlib_sensor.py:312:9: F841 local variable 'man' is assigned to but never used
| ./tests/test_madlib_sensor_collection.py:37:29: E711 comparison to None should be 'if cond is None:'
| ./tests/test_madlib_sensor_collection.py:45:29: E711 comparison to None should be 'if cond is None:'
| ./tests/test_madlib_sensor_collection.py:51:5: E266 too many leading '#' for block comment
| ./tests/test_madlib_sensor_collection.py:55:29: E711 comparison to None should be 'if cond is None:'
| ./tests/test_madlib_sensor_collection.py:57:29: E711 comparison to None should be 'if cond is not None:'
| ./tests/test_madlib_sensor_collection.py:68:5: E266 too many leading '#' for block comment
| ./tests/test_madlib_sensor_collection.py:174:9: F841 local variable 'observations' is assigned to but never used
| ./tests/test_madlib_sensor_collection.py:188:13: F841 local variable 'params' is assigned to but never used
| ./tests/test_madlib_sensor_collection.py:200:13: F841 local variable 'params' is assigned to but never used
| ./tests/test_madlib_sensor_collection.py:213:13: F841 local variable 'params' is assigned to but never used
| ./tests/test_propagate.py:147:5: F841 local variable 'dt' is assigned to but never used
| 5     C901 'plot_sensor_ID' is too complex (12)
| 12    E266 too many leading '#' for block comment
| 7     E501 line too long (131 > 127 characters)
| 6     E711 comparison to None should be 'if cond is None:'
| 5     E712 comparison to True should be 'if cond is True:' or 'if cond:'
| 2     E721 do not compare types, for exact checks use `is` / `is not`, for instance checks use `isinstance()`
| 1     E731 do not assign a lambda expression, use a def
| 11    F401 'madlib._utils.MadlibException' imported but unused
| 2     F541 f-string is missing placeholders
| 21    F841 local variable 'network' is assigned to but never used
| 72
[Tests/build]   ✅  Success - Main Lint with flake8 [434.276967ms]
[Tests/build] ⭐ Run Main Test with tox
[Tests/build]   🐳  docker exec cmd=[bash -e /var/run/act/workflow/4] user= workdir=
| coverage: skipped because could not find python interpreter with spec(s): python3.12
|   coverage: SKIP (0.00 seconds)
|   evaluation failed :( (0.10 seconds)
[Tests/build]   ❌  Failure - Main Test with tox [212.659147ms]
[Tests/build] exitcode '255': failure
[Tests/build] ⭐ Run Complete job
[Tests/build]   ✅  Success - Complete job
[Tests/build] 🏁  Job failed
Error: Job 'build' failed

Let me know if I should be testing this some other way.

@mctierney-mitll
Copy link
Collaborator Author

The nice thing about this is that it runs itself. If you look in the Actions tab of the repo, or where it says "All checks have passed" at the bottom of this PR, you can see the output from when the test was run.

@mctierney-mitll mctierney-mitll removed the request for review from rallen10 May 6, 2025 16:08
@mctierney-mitll mctierney-mitll merged commit 66be96e into main May 6, 2025
1 check passed
@mctierney-mitll mctierney-mitll deleted the mctierney-mitll-github-workflow branch May 6, 2025 16:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants