Dev/CI/CD/Testing Infrastructure #3787
Replies: 10 comments 13 replies
-
Copied from https://github.com/orgs/Trust-Machines/discussions/502 |
Beta Was this translation helpful? Give feedback.
-
RoadmapTasks:
Questions: should we simplify our branching strategy and use mono-repo? We can use either command-line arguments or separate executables for experimental and incompatible versions. @kantai could you help me to identify tasks for Clarity workflow? |
Beta Was this translation helpful? Give feedback.
-
Before we get into any language specific decisions for keeping cloud infrastructure vendor agnostic (e.g. FunctionalScript), I think we should analyze the tools that exist for agnostic cloud deployment and then find the programming language that allows us to best utilize those. We discussed this a week ago, but I think we will likely end up defining our agnostic code in some front end that calls upon TerraformCDK so we can specify the vendor agnostic cloud infrastructure top level and turn it into vendor specific specification bottom level with Terraform. There may be tools that allow us to do this for FunctionalScript explicitly, but I've played around with TerraformCDK and can confirm that it works nicely with straight TypeScript (not sure why all these things use some JavaScript spinoff) and think it will be better to use raw TypeScript since that's what the framework is really designed for. @sergey-shandar I'm wondering if there are other existing vendor agnostic IaC frameworks that you know of. |
Beta Was this translation helpful? Give feedback.
-
Also - I think for communication purposes in this design phase it would be good to create a flow chart of what we want the pipeline to look like for pull, push, etc. separately, with the bulkier pipeline stages maybe in red. I'm looking into issue-466 and the turnaround time for testing my changes against the pipeline in my private repo is 15 minutes, which imo is at least 10 minutes too long. Also - I'm not entirely clear on why we're spinning up cloud infrastructure for the tests. Are we not trusting the OS specifications in GitHub? |
Beta Was this translation helpful? Give feedback.
-
@jo-tm could you add your thoughts, needs, links to tickets for sBTC related to testing and CI/CD?
|
Beta Was this translation helpful? Give feedback.
-
@CharlieC3 feel free to comment |
Beta Was this translation helpful? Give feedback.
-
@netrome @jferrant @stjepangolemac @soju-drinker please, add your thoughts/links to issues and documents related to deployment and testing to this thread. Especially, we are interested in your current needs for sBTC from deployment and testing point of view. For example, a clear set of deployment steps or E2E test setup. |
Beta Was this translation helpful? Give feedback.
-
Just chiming in to say that you can set up your own custom runner with GitLab. Their CI solution is pretty good imo. |
Beta Was this translation helpful? Give feedback.
-
For Sprint 3:
|
Beta Was this translation helpful? Give feedback.
-
Best Practices
|
Beta Was this translation helpful? Give feedback.
-
I was thinking about different kinds of tests, such as unit, perf (WSTS benchmarks), code coverage, and E2E (manual observation of a working system). Then I see I a huge problem which is caused by different vendor-specific architectures of modern tools and services which were not designed for decentralized software open-source development.
Other Challenges
main
branch.main
ASAP.Infrastructure Principles
Why?
We shouldn't depend on specific vendors because we develop open-source, decentralized software. Also, we had a lot of problems with different providers
such as
Every provider has its language to describe executions.
Alternatives:
How?
To be vendor agnostic, we should have a way to describe and configure pipelines in simple terms. FunctionalScript can be used for such things.
Another problem is that we must execute the scripts to generate other scripts and configuration files. The solution is that we can commit the results of the scripts into the repo.
[Scripts] -> [generating CI configurations]
Generated scripts should be marked, for example, with a comment
# Generated file
. In the same type, developers may edit these files for experimenting and debugging. Also, sometimes, generated files may not include everything we need.Another reason to do this is that we have multiple repositories, and we would like to provide a similar infrastructure for all of these repositories. We would like to have consistency between repositories.
The solution is to add it to FunctionalScript repo.
Plan
Short term
Notes
Beta Was this translation helpful? Give feedback.
All reactions