Closed dzmitry-lahoda closed 10 months ago
cc @rjonczy
Why will be it painful? We should be good to go if we had a way to ensure:
because cannot and/or hard debug failures until runtime is structured and can access what is going on in realtime and after end
@blasrodri here is current script for test
During 1 year it existing, only I was able to write non brittle and non flaky tests again Picasso and ComposableCosmos runtime. 2 QA engineers failed.
Also senior developers were unable to analyze reasons of failures.
From here my conclusion that running test inside bash script on CI is not enough for many reason nor I can bear any decision about my own on infra prices.
Just for my thing I tell it is hard too, just slow, but yet need for me and as per reports by others (devnet to work need to be automated - or Kostya follow more elaborated release testing procedure which may take a day).
The list is you provied, is good one but not enough, neither context is clear about accessibility of instruments, nor level of connectivity tested (which I consider to be https://github.com/ComposableFi/composable/issues/4404 already here by Yasin/Gloria at some fork easy to package for reuse and Yasin will be able CI these easy - so if Yasin will not be able to do so - it must be hard)
@dzmitry-lahoda As I understand, this e2e tests will run on ci.
How about we:
or
this e2e tests will run on ci.
Triggered by CI, but the problem of run on CI is problemtic (need external runners)
1 and 2 - yes.
also:
@rjonczy what do you think about testcontainers or alternatives https://stackshare.io/testcontainers/alternatives ?
me some tooling build on top of k8s specicially for test flow 1. runtime access . 2 .data export after run 3. active graph of dependenies (inliduing - if block stopedd producing, stop whole test, so that it is clear that CVM is not buggy)
so this is subject of issue - what is best way to do it?
I think next:
so I will stick 1 and small parts of 2 if blocked.
if @blasrodri and @rjonczy would decide to help, 4 imho best one
cc @kollegian
I almost happy with argocd https://argo-workflows.readthedocs.io/en/latest/running-nix/
Remaining part for me zero cost containers builds (basically container should be build on top of exisitng binaries in second)
Will go with whatever faster to get.
Motivation
With current approach can run and debug automatically just couple of tests on CVM/MANTIS tests, until some infra setuped, expanding and debugging will be pain. So it is pain already, requires manual layer tracing. Cannot SSH into CI runner processes, runners has no good way to handle dependencies and aborts.
Need more structured approach.
Suggested Solution
Need next reproducible setup:
good API to report error reason to CI (ci will call these and wait)
need ability to connect to outputs of running test per process for ease of debug, not big ball of text in zip wirh everything intermingled like it now.
after run can access ALL artefacts from run (logs, chain states, configs)
possible tecks:
Alternatives
Continue manual QA insurance, which is time consuming and easy breakable by people who do not test all pieces
Additional Information
https://composableprotocol.slack.com/archives/C05EMF8DYKU/p1704646575980879
Given my experience testing, there is no other option to have sane tests