[ 
https://issues.apache.org/jira/browse/CASSANDRA-19796?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17879153#comment-17879153
 ] 

Dmytro Tsapko commented on CASSANDRA-19796:
-------------------------------------------

The CI pipeline is configured using GitHub Actions, with workflows defined in 
the `.github/workflows/` directory.

The workflow typically includes steps for setting up the environment, 
installing dependencies, and running tests. The environment setup specifies the 
Go versions to be tested, currently 1.19 and 1.20, though the gocql team aims 
to support the two most recent Go versions, which are now 1.22 and 1.23. While 
gocql may still function with older Go versions, official support for these 
versions has been discontinued.

Given that the tests require running a Cassandra cluster, the CI job uses the 
Cassandra Cluster Manager (CCM) script to create and manage Cassandra nodes. 
The tests in the CI pipeline are a mix of unit tests and integration tests:

- **Integration Tests:** These tests rely on CCM to set up a real Cassandra 
cluster with multiple nodes. The tests ensure that the gocql driver behaves 
correctly under various scenarios. However, simulating complex situations like 
topology changes, nodes joining, leaving, or re-joining with different IP 
addresses is challenging. There's an open issue to rewrite the integration test 
runner to address these limitations: [Issue 
#1686](https://github.com/apache/cassandra-gocql-driver/issues/1686).
- **Unit Tests:** These tests focus on validating the logic of the driver in 
isolation, ensuring that individual functions and methods work as expected.

The CI job is triggered when a new pull request is created or an existing pull 
request is updated. This helps maintainers and contributors verify that the 
proposed changes do not introduce any issues. However, the CI job is not 
automatically triggered for new contributors, as their workflows require 
approval from a maintainer before running.

The current status of the CI job in the gocql repository appears stable, though 
the project faces some challenges. The last commit was made over a year ago, 
indicating a lack of recent development activity. The maintainers have 
acknowledged that the CI process needs improvement, particularly around the 
fragility of the CCM setup, which complicates running integration tests locally 
for contributors. To address this issue, an open pull request proposes a 
solution that uses a Go-based development environment to create Cassandra 
containers: [Pull Request 
#1780](https://github.com/apache/cassandra-gocql-driver/pull/1780).

> Setup cassandra-gocql-driver CI
> -------------------------------
>
>                 Key: CASSANDRA-19796
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-19796
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: CI, Client/gocql-driver
>            Reporter: Michael Semb Wever
>            Assignee: Dmytro Tsapko
>            Priority: Normal
>
> This may be just confirming GHA still works.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to