We are now starting to automate the process to release OpenWhisk projects, in order to graduate them in Apache community.

Current status:

A new repo is created to manage the release of OpenWhisk: https://github.com/apache/incubator-openwhisk-release


Structure of the directory for each release:

  • /1.0.0-incubating
    • Core
    • CLI
    • Runtimes
    • Api gateway
    • Packages
  • /1.1.1-incubating
  • ...

Work item: develop scripts for this repo to generate the above structure for all the artifacts.

How to link the directories to different repositories?

  • One approach is using git submodule.
  • Another option can be using one descriptive file for each project, describing the repo links, hashes and tags.

Work item: develop scripts to add licensing documentation and installation files

Directories of releases:

  • /1.0.0-incubating:
    • Artifacts of all the repositories
    • NOTICE
    • /Installation/
      • vagrant

Work item: Add the feature to download, build and verify OpenWhisk for a certain release in Jenkins.

Work item: Develop scripts to generate source packages and compiled packages(zips)

Work item: Develop scripts to upload the artifacts to the project’s subdirectory in Apache

Vincent Hou: I have made some progress regarding the Travis builds as the automated jobs to release the openwhisk projects.

Travis job has a time limit of 50 minutes in open source versions, but we can divide the release into several stages, so jobs can be running both in sequential or parallel. Artifacts can be shared across different jobs by cache.

As I predict, we may need to share artifacts, like the same source code, some pre-built images, etc.

My pilot PR is https://github.com/apache/incubator-openwhisk-release/pull/1. Travis build can be found: https://travis-ci.org/apache/incubator-openwhisk-release.

  • No labels