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

Dave Kelsey

(Discord: NorfolkAndChance #6513)

Mentee

Rinish Sam

(Discord: CaptainIRS#2752)




Communication Channel

Discord + Email + GitHub




Plan

Initial Objectives

  • Follow Caliper tutorial and document the experience
  • Follow Caliper-benchmarks and document the experience
  • Document the Azure pipelines used in Caliper
  • Port UnitTests Stage to GitHub Actions
  • Raise GitHub issues describing remaining work


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
  • Disable Azure Pipelines for (PR caliper#1382
    • Unit Tests
    • Integration Tests
  • Publish to GitHub Actions (PR caliper#1384
    • Stable release
    • Unstable release
Optimize

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



Current PRs

Ongoing Issues

(WIP)

  • No labels