-on commit to submodule:
+on push to submodule:
+ error on non-fast-forward
+ error on pushing tag
zephyr
- nothing else?
-superrepo heads are dev, prod
-on commit to superrepo:
- for each changed submodule revision:
- (as optimization: if same commit already in dev, just reprepro move)
- try to build submodule
- if fail, abort -- whole commit, probably; else
- tag submodule with version
- upload to dev/prod respectively
- actually commit
- zephyr
+superrepo heads are dev and prod
+on push to superrepo:
+ error - no pushes to superrepo
-This makes a long pre-receive process. Is that cool?
-Probably is the right thing.
+on remctl xvm repo (dev|prod) package SHA-1:
+ use remctl ACLs to limit pushes to correct groups
+ verify that new version number is greater than previous
+ echo "(dev|prod) package SHA-1" > $build_queue/TIMESTAMP
+while build queue is not empty:
+ find min(os.listdir($build_queue))
+ (as optimization: if same commit already in dev, just reprepro move)
+ try to build submodule
+ if fail:
+ keep build around
+ send mail with log
+ zephyr
+ upload to apt repo
+ tag submodule with version
+ commit superrepo with updated submodule
+ clean up build files
+ zephyr
+ rm $build_queue file