You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Dmytro Tsapko (Jira)" <ji...@apache.org> on 2024/09/04 09:25:00 UTC
[jira] [Commented] (CASSANDRA-19796) Setup cassandra-gocql-driver CI
[ 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: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org