amino-os / Amino.Run

Amino Distributed OS - Runtime Manager
Apache License 2.0
29 stars 12 forks source link

Umbrella issue: Get Google Cloud Builder CI working properly #482

Open quinton-hoole opened 5 years ago

quinton-hoole commented 5 years ago

We still have some issues related to Google Cloud Builder. Lets use this issue to track getting them done:

Firstly, there's a bug in GCB, so it only runs on PR's for which the main repo is the base: https://github.com/GoogleCloudPlatform/cloud-builders/issues/380

But it does run fine for PR's where the source branch is in the main repo, e.g: https://github.com/Huawei-PaaS/DCAP-Sapphire/pull/478

Secondly, we don't yet have the ruby component of GraalVM installed in the base image. That needs to be rebuilt and re-uploaded: https://github.com/Huawei-PaaS/DCAP-Sapphire/pull/480

As a temporary hack I tried installing it before running gradle build: https://github.com/Huawei-PaaS/DCAP-Sapphire/pull/481

Then we have a few flaky tests, but those can be followed up separately.

@jeevan-kamkar Could you upload the rebuilt base image as per #480 above?

jeevu-kamkar commented 5 years ago

Rebuilt image as per #480 uploaded and changes mentioned in #481 addressed in #484

quinton-hoole commented 5 years ago

@jeevan-kamkar Great! That seems to have resolved most of the problems, at least for PR's where the source branch is the main repo. It seems that Google do not plan to have a fix out for the above GCB bug until 2019, so we will need to change our workflow until then.

But lets first get the remaining flaky unit and integration tests fixed before changing our workflow so that GCB runs on all submitted PRs.

Leaving this issue open until we have GCB running successfully on all PR's.

quinton-hoole commented 5 years ago

Status update: No further progress. Flaky unit tests have been improved, but our workflow not yet adjusted to account for GoogleCloudPlatform/cloud-builders#380 above.

thandayuthapani commented 5 years ago

As a workaround, We can use Jenkins for CI. We have done some initial POC for this. Following are the points: We have deployed Jenkins in one of our bluezone vm, and using it for CI checks. Currently it is just making sure build process is ok and update the status in github. image I have excluded integration test because a test case in ConsensusDMIntegrationTest is failing randomly. Things to be Done:

  1. Ensure parallel build is possible, when multiple PR is raised at a time
  2. Add Coverage report

If this approach looks ok , then we are planing to finish pending task before RC3.

nehraankit commented 5 years ago

@quinton-hoole @sungwook-moon @VenuReddy2103 Travis or Circle CI are better options now for CI. Please let me know your opinion.

quinton-hoole commented 5 years ago

@nehraankit Can you please explain why you think that to be the case?

nehraankit commented 5 years ago

@quinton-hoole As mentioned above , Google cloud builder currently do not support build when PR raised from personal fork which is supported by Travis and Circle CI. Also on Travis , K8S cluster can be deployed and run work load which is needed in testing Amino.Run-Demo application test.

quinton-hoole commented 5 years ago

@nehraankit As far as I'm aware Google Cloud Builder works fine on public repos. Read GoogleCloudPlatform/cloud-builders#380 carefully. We only had the problem when this repo was private. Please correct me if I'm wrong. I do not want us to have to run our own CI servers (for example Jenkins), or unnecessarily pay for a CI service. GCB apparently works fine and is free for the volumes of build we need. It just needs to be set up correctly.