-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(ci-cd): nuke setup #73
feat(ci-cd): nuke setup #73
Conversation
Hello @mo-esmp, finally I completed the CI/CD setup 🛩️ It's based on Nuke, I inserted the details in the PR comments. Right now the workflows will fail, because they'll be missing the required secrets - as soon as those are set, they'll work out 👍 If you want to check, you can see them running on my fork - I tried all 3, expect for the final pack&publish (but we can fix that later, after the merge in the repo otherwise it won't be testable). I wanted to create a wiki in the repo, to move the whole README in a separate space. Do you mind if I create it? I would add a page about the Nuke build, how to use it, how it's done and any additional useful info 😃 Last thing, I'll leave you check if you think Sonarcloud can be achieved - at the end it's free and it would be cool to have it 😄 I think the serilog-contrib org could be interesting even for other prjs that could use it... |
@followynne Thanks for the PR. One question, |
yes, it's completed! I just made a class (serilog-ui\build\Configuration.cs - class: SonarCloudInfo) to make all the SonarCloud steps conditional. btw, can you try doing this step https://stackoverflow.com/a/75250838/15129749? |
@followynne thanks for the clarifications. I will try to share the info ASAP but probably takes a bit of time |
@mo-esmp Yep, don't worry, the pipelines will work equally without sonar, you just need to give them the permission and then they'll get green and be mergeable 😁 Sonar can come later on 😊 |
For now, we can move forward with your SonarCloud keys until I check with admins if there is any |
@mo-esmp sure,that's fine - if it's okay for you, I'll send you the api tokens for sonar in pvt? (I don't have access to Secrets) |
Content
This PR creates the Nuke Build project to have CI/CD in Serilog.Ui repository.
As soon as it's merged, it will consist of the following:
Additional details
The NUKE workflow runs compilation of the project, then running a SonarCloud scan for both types of code.
After the run, a Reporter task will create a test reporting summary directly in the Github Action (and PR, if open).
Release workflow must be run manually.
Inside it, Pack & Publish steps require either a release or main/master branch to actually execute.
To include a pkg in the Pack & Publish operation, the required input parameter must be set to true. All prj set to true will be separately packed and then published, one by one. This way we'll be able to select which pkgs are updated and should be released, from a same run.
Oh, I forgot! NUKE build can also be run on local! You just need to install NUKE and start it - it will only execute the build & tests, without Sonar & packing 😄
What's needed, before proceeding
To use the workflow, on serilog-ui main repo we need:
If Sonar analysis is let public, it's all free! 😄
IMHO we should create serilog-contrib organization and inside it the 2 projects. You can check what I mean with my current test setup, on my profile: https://sonarcloud.io/project/overview?id=followynne_serilog-ui, https://sonarcloud.io/project/overview?id=followynne_serilog-ui_assets
After the 3 variables are set (and we update the parts mentioned in the TODO in the end of this comment), everything should work fine!
!! TODO Before merging !!
Update with the correct sonarcloud info (project key - organization), on: