Some of you may have seen my latest commit I have just pushed. It sets up 
and enables Travis based pipeline to nightly build and publish OSv 
artifacts. It builds on the initial work by Matthew Pabst and enhances it 
by using open source project - 
https://github.com/nurupo/ci-release-publisher. 

Unlike the old CI setup, we not only build kernel and test related 
artifacts, but also publish them to a new Github repo - 
https://github.com/osvunikernel/osv-nightly-releases/releases - so that 
hopefully one can easily assemble and run an app on latest OSv kernel using 
capstan without having to build from source. For more details please read 
comments in this commit - 
https://github.com/cloudius-systems/osv/commit/7305d0ff9f961ae2f983c5141801ad4aa9b0dc51
. 

For now the published artifacts are focused on the unit tests and ability 
to build unit tests images (aka ./scripts/build image=tests) using capstan 
and run them. As part of the commit I have also added new Python scripts 
that makes it easy to navigate new OSv nightly releases repo. As you can 
see with this tool, the only nightly latest release has 10 artifacts:

./scripts/github_releases_util.py list-releases
NAME               TITLE                                                    
    PUBLISHED_AT        
ci-master-latest   Latest CI build of master branch                        
     2020-03-09 04:59:57 
ci-master-69       v0.54.0-134-g7305d0ff                                    
    2020-03-09 05:00:01 

./scripts/github_releases_util.py list-artifacts
NAME                                     SIZE       DOWNLOAD_URL 
(base=https://github.com/osvunikernel/osv-nightly-releases/releases/download)
index.yaml                               124        
/ci-master-latest/index.yaml                      
osv-loader.qemu.gz                       3838306    
/ci-master-latest/osv-loader.qemu.gz              
osv-version                              22        
 /ci-master-latest/osv-version                     
osv.bootstrap.mpm                        315685    
 /ci-master-latest/osv.bootstrap.mpm               
osv.bootstrap.yaml                       139        
/ci-master-latest/osv.bootstrap.yaml              
osv.unit-tests.mpm                       4013104    
/ci-master-latest/osv.unit-tests.mpm              
osv.unit-tests.yaml                      175        
/ci-master-latest/osv.unit-tests.yaml             
unit_tests.manifest                      8848      
 /ci-master-latest/unit_tests.manifest    

In future we can enhance this pipeline and for example build various 
flavors of kernel - zfs-less, firecracker specific, etc or for experimental 
features that are on branches - one such candidate is the ipv6 branch that 
I am hoping to merge master to and setup similar CI pipeline as well.

Let me know what you think about it. For example right now the artifacts 
are published on every commit but maybe we should do it really "nightly" 
only if there was some commit that day. Also for now the pipeline is setup 
to publish up to 10 last commits and then it rolls over. We can make it 
higher or lower - OSv artifacts are pretty tiny - in total less than 8 MB 
(kernel + unit tests).

Waldek

PS. Capstan is also able to list and pull packages from github but needs 
some tweaks to make it friendly with the new  
https://github.com/osvunikernel/osv-nightly-releases/release 
<https://github.com/osvunikernel/osv-nightly-releases/releases> repo.

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/osv-dev/4f5672eb-852d-419c-a7b1-d3ca55a5c241%40googlegroups.com.

Reply via email to