Project Plan - Optimising the pipelines using GitHub Actions for Caliper and Caliper-Benchmarks
Abstract
The goal of this project is to optimise how Caliper and Caliper-Benchmarks verify PRs and publish artifacts using Github Actions and to improve how testing is done to ensure that the artifacts to be published actually work as expected.
Mentor and Mentee
Mentor | @d_kelsey (Discord: NorfolkAndChance #6513) |
|---|---|
Mentee | @Rinish Sam (Discord: CaptainIRS#2752) |
Communication Channel
Discord + Email + GitHub
Plan
Initial Objectives
Caliper Github will be used to define and track the work for this project (And will include shadow issues for the Caliper benchmarks repo). The epics will track the overall project and themes. There are 3 themes.
Migrate (Migrate Caliper build to github actions)
Optimize (Optimize the builds for caliper and caliper-benchmarks)
Enhance (enhance the builds with new features for caliper and caliper-benchmarks)
Migrate | Port to GitHub Actions for Unit Tests (PR caliper#1364) Integration Tests (PR caliper#1376) Disable Azure Pipelines for (PR caliper#1382) Unit Tests Integration Tests Publish to GitHub Actions (PR caliper#1384) Stable release Unstable release |
|---|---|
Optimize | Caliper PR Verification Investigate possibility of testing only what has changed (PR caliper#1421) Investigate options for caching node modules across workflows () Implement caching for node modules (PR caliper#1406) Investigate options for caching docker images (see comment) Implement caching of docker images (draft PR caliper#1419) Setup GitHub actions for docs in the gh-pages branch (PR caliper#1424) On merge Investigate whether Unit Tests should be run on merge (see comment) Caliper Benchmarks Investigate whether whole benchmark suite has to be run for all changes (PR caliper-benchmarks#226) Investigate caching of docker images (see comment) Investigate caching of caliper install (PR caliper-benchmarks#225) |
Enhance (Stretch Goal) | Migrate the repository to npm workspaces (PR caliper#1394) Migrate Fabric integration tests to test-network (PRs caliper#1410 and caliper#1414) Remove channel and chaincode operations from Fabric v1 connector (PR caliper#1411) Test docker images as part of a PR pipeline Include node.js dependency checker as part of a PR pipeline Investigate publishing to local npm and testing in progress Investigate replacing current publish process with a more GitHub centric approach Publish to ghcr.io Refine release process Implement automatic version bump Document the process of creating a stable release Improve integration tests Investigate a better way to setup Fabric during workflows (possibly leverage services in GitHub actions) Investigate ways to cover more of Caliper's capability Cleanup the 3 Fabric packages Re-enable Java in Caliper Benchmarks Add license checking in caliper-benchmarks Other miscellaneous enhancements Update dependencies and deliver package-lock.json files in progress Create and publish Code Coverage reports (PR caliper#1428) Add GitHub actions for security scanning CodeQL npm audit Dependabot Investigate nightly builds Discord notifications of build failure using webhooks eslint improvements across all of Caliper |