Skip to content

Add CI/CD pipeline, fix all notebooks#71

Merged
HuwCheston merged 20 commits into
gh-pagesfrom
hc-ci-pipeline
Nov 3, 2025
Merged

Add CI/CD pipeline, fix all notebooks#71
HuwCheston merged 20 commits into
gh-pagesfrom
hc-ci-pipeline

Conversation

@HuwCheston

@HuwCheston HuwCheston commented Oct 23, 2025

Copy link
Copy Markdown
Collaborator

This is a pretty big PR that aims to:

  1. Add a CI/CD pipeline on GitHub Actions
  2. Modernise all notebooks so that they can be run with an up-to-date version of Python 3 (and up-to-date dependencies)

A good chunk of this is built on the work in #61 (thanks, @gijzelaerr!).

CI Pipeline

Tests are integrated into a single Makefile. To run all tests, just run make tests.

These tests:

  • Check that all notebooks can be executed successfully, without errors
    • I made some exceptions for exercise notebooks, which are designed to be filled in by the user.
    • I also made an exception for adtlib.ipynb, which is currently broken due to tensorflow versions, and will need a complete rewrite (see adtlib issues #70)
  • Check that all URLs in all notebooks are live (should help prevent errors like e.g. Broken Link #46 Broken link for chord estimation #59)

The tests will also be run automatically on GitHub actions whenever a pull request is made or merged. They will also run once every week, which should help prevent issues with broken links accumulating over time.

Notebook modernisation

Fixes #66

With the CI pipeline, I've gone through and fixed up all notebooks so that they can be run with the requirements specified in requirements.txt.

Still TODO

Currently the GitHub actions runners seem a little flaky and prone to dying. We can try tweaking the number of times we rerun each notebook or reduce the number of workers to 1.

* Implement retry mechanism in download functions

* Hardcode assets file paths

* initial commit

* add requirements.in

* add postBuild

* make package installable

* update all `mirdotcom.init()` calls

* add binder badge

* try fix install

* update all binder links

* remove badges, update colab references

* fix line break

* add jupyter-book requirement

* try refactor

* update all headings

* fix test paths

* update cross-references

* add initial jupyter-book build

* try fix

* remove musicinformationretrieval.com URLs and "Back to index"

* update config to fix thebe + binder

* update all notebooks

* actually set working directory

* replace references to "workshop" with "website"

* fix sheet music representations links

* fix midi conversion table

* remove function names as section titles

* axis labels

* remove hardcoded ../../assets, replace with `mirdotcom.get_audio`

* add beginner tutorial

* move "people who use this site" section

* add build target to makefile

* pin dependencies, minor fixes

* add note about .ipynb

* optimize imports

* remove "hide-cell"

* fix titles

* add more unittests for notebooks

* make notebooks pass tests

* add black formatting + deps: run `make fix`

* run black on files
# Conflicts:
#	mirdotcom.py
@HuwCheston HuwCheston merged commit de0d24f into gh-pages Nov 3, 2025
0 of 2 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.

Update librosa functions

1 participant