-
Notifications
You must be signed in to change notification settings - Fork 76
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
test: Emscripten build and test on GitHub Actions #1026
Conversation
@lobis you can use the WASM artefact for awkward-cpp from our release workflow to test the CI: https://github.com/scikit-hep/awkward/actions/runs/6894740990 This won't last for ever (I suspect 30 days is the limit on our artefact caching atm). |
git clone https://github.com/scikit-hep/awkward.git | ||
cd awkward | ||
git checkout main | ||
git submodule update --init --recursive |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
git submodule update --init --recursive | |
git submodule update --init --recursive | |
pipx run nox -s prepare -- --headers --signatures --tests |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
n.b. you'll still need awkward's C++ components too
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My initial goal was to test the build (only uproot) and run the tests. However the uproot build will only work if the dependencies (awkward) are available, and there is a significant delay between the publication in pypi and it's availability from pyodide, this means that this CI will fail for a while whenever there is a release that modifies dependencies.
To test the CI job I though of building the awkward (and awkward-cpp) wheel in this CI job (in particular the version of awkward listed in pyproject.toml).
I am having some troubles understanding the necessary steps though.
Co-authored-by: Angus Hollands <goosey15@gmail.com>
The new docs/readthedocs.org:uproot test requirement can be satisfied by merging #1084/jpivarski/fix-readthedocs-documentation into this PR (or by merging in |
* origin/main: (41 commits) chore: hatch-vcs generates 'version.py'; add it to .gitignore docs: add bnavigator as a contributor for test (#1087) feat: support for writing hist derived profiles (#1000) feat: add the ability to read RNTuple alias columns (#1004) chore: update pre-commit hooks (#1082) docs: fix ReadTheDocs documentation (#1084) chore: update pre-commit hooks (#1073) chore(deps): bump actions/upload-artifact from 3 to 4 (#1071) chore(deps): bump actions/download-artifact from 3 to 4 (#1072) build: change build to autogen version info (#1062) chore: remove src/uproot/version.py (for #1062). The next release will be 5.2.1. add known_base_form option so that opening root files can be avoided for mature analyses (#1077) test: fsspec cache (#1075) test: xrootd server fixture (#1076) The next release will be 5.2.0. fix: correct typo in fsspec globbing (#1067) chore(deps): bump actions/setup-python from 4 to 5 (#1059) The next release will be 5.2.0rc5. fix: dask distributed fsspec issue (#1065) ...
git checkout main | ||
git submodule update --init --recursive | ||
pipx run nox -s prepare -- --headers --signatures --tests | ||
pyodide build |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pyodide build
only builds the pure-Python component, not the C++ build.
I think that #1272 is starting to be in pretty good shape, so I'll close this PR. |
Based on https://pyodide.org/en/stable/development/building-and-testing-packages.html and https://github.com/numpy/numpy/blob/main/.github/workflows/emscripten.yml.
(Currently doesn't work since awkward-cpp is not available in the right version but it'll be fixed soon).
This action will build the uproot wheel and run the tests using nodejs.
I will label and skip those tests that don't make sense to run on the browser (local files, etc.).