[
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]