asyncapi / shape-up-process

This repo contains pitches and the current cycle bets. More info about the Shape Up process: https://basecamp.com/shapeup
https://shapeup.asyncapi.io
11 stars 8 forks source link

Create a CI pipeline for Go projects #94

Closed smoya closed 3 years ago

smoya commented 3 years ago

Our current GH actions workflows run proper CI/CD for projects written in NodeJS. However, there is nothing in place for Go projects.

The expected outcome for this issue is:

asyncapi-bot commented 3 years ago

Hey! You've labeled this issue as a Scope. Remember you can use the following command to inform about its progress:

/progress <percentage> [message]

or

/progress <percentage>

A mutiline message.
It supports **Markdown**.
Example:
/progress 40 We're still figuring out how to implement this. We have an idea but it is not yet confirmed it will work.
/progress 50

A few notes:

* We got this figured out :tada:
* We're going to use [this library](#link-to-website) to avoid losing time implementing this algorithm.
* We decided to go for the quickest solution and will improve it if we got time at the end of the cycle.

:weight_lifting_woman: See the progress on the Shape Up Dashboard.

smoya commented 3 years ago

/progress 25 I created a PR adding a GH Actions Workflow for Go projects.

smoya commented 3 years ago

/progress 50 GH Action workflow PR got merged after few iterations.

smoya commented 3 years ago

Reopen when retaken

smoya commented 3 years ago

After giving several tries, I think the best way to use sonarcloud in go projects is not by being the only tool to use but complementing. Go projects use golangci-lint linter that includes tons of several linters for analysing statically the code. Those can be configured to run on any environment (local dev, CI, etc) providing reproducible results. So, I’m gonna leave golangci-lint as part of the CI and Sonarcloud to be enabled on each project individual

Otherwise, we would need to run Sonarcloud from the CI instead of just rely on the Automatic Analysis feature of Sonarcloud. Why? Because if we want to import the results from the golangci-lint Sonarcloud requires to run manually/

Let’s see how we move forward with that approach and let’s try to simplify as we go.

smoya commented 3 years ago

Work is done by now. Finished with this PR: https://github.com/asyncapi/template-for-go-projects/pull/6