The basic idea is that, instead of blindly generating the packages daily (no matter if they change or no - current approach), they only will be generated when there are effective changes triggering the package.
This can be easily implemented by implementing one "post-receive" hook into one (target) repository that will launch the whole packaging/sync process by pushing changes from another (source) repository.
Right now both the source and target repositories will be @ download.moodle.org, and pushing will happen in a cron-based way (
MDLSITE-2045), but it's pretty easy to move the source repository to, say, Jenkins, and have the packaging controlled from there (with all the logs/facilities available there). Only some properly-restricted git write access (over SSH) would be necessary to achieve that.
Also, the hook must be able to detect, based on some meta-information file, if the builds for some branch are stopped for some reason (old branches, for example), in order to be able to skip some packaging by configuration.
The git hook will use the general packager created @
MDLSITE-2046, with some post-process to adjust it to download.moodle.org particularities.