Simplify integration test runs
Currently we run the following builds for Go 1.4 and 1.5
- Auth ON
- tags = unit
- tags = integration
- tags = ccm
To simplify and speed up we should merge the unit and integration runs, and possible the CCM tests as well.
Currently, you can run tests with the flag "all" which makes it fast and easy. Candidate to be closed.
Currently, you can run tests with the flag "all" which makes it fast and easy. Candidate to be closed.
This is not true, we still have separate runs in CI. I think we can keep this issue but I'd argue that we should have:
- unit tests
- integration (+ ccm) tests
And auth tests should go in either unit or integration tests.
Currently, you can run tests with the flag "all" which makes it fast and easy. Candidate to be closed.
This is not true, we still have separate runs in CI. I think we can keep this issue but I'd argue that we should have:
- unit tests
- integration (+ ccm) tests
And auth tests should go in either unit or integration tests.
Oh, sorry for the misunderstanding, I didn't notice that it's for CI, that's my bad. I meant that locally tests could be run with such a flag, something like:
go test -v -tags all -cluster "xxx.xx.x.x" ./...
And auth tests should go in either unit or integration tests.
I can try to handle it. If I understand correctly we have two integration test runs(with auth and without), and we can merge them into one. What do you think?
I can try to handle it. If I understand correctly we have two integration test runs(with auth and without), and we can merge them into one. What do you think?
I agree but unfortunately auth tests require a ccm cluster with a different configuration so that's why they are separate like this. What we can do is add a step to the integration tests job to stop the ccm cluster and enable auth (or just delete the cluster and create a new one) and then run the auth tests on the same job so we would still effectively be merging them into a single CI job.
Also I was planning on doing some changes to reduce the number of jobs (see this). I think the fix for this is to make the job run all the tags (i.e. "cassandra", "integration", "ccm", "all") in a single test run instead of running 1 test job per tag. So basically we would be removing auth and tags from the CI matrix which should cut down the number of jobs significantly.
If the number is still too high after the change mentioned above then we can make the previous go version jobs run only for "snappy" compression but let's not worry about this for now.
Can you take care of this?
Can you take care of this?
Understood, I'll be working on it.
Can you take care of this?
@joao-r-reis I have created PR on my fork with refactored workflow.
I've moved auth tests to the integration tests job as a separate step, also I've added true value for matrix.auth (it is needed for conditionally running auth tests on different cassandra versions).
I have changed matrix.tags from separate strings to one and added integration tag for matrix.auth.
Everything looks to work fine, except two jobs that have hit timeout(maybe your take with snappy compression on previous go versions will help). Can you take a look at it?