Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: redo cicd #159

Merged
merged 1 commit into from
Sep 10, 2024
Merged

ci: redo cicd #159

merged 1 commit into from
Sep 10, 2024

Conversation

dkropachev
Copy link
Collaborator

@dkropachev dkropachev commented Sep 5, 2024

Goal of the PR

  1. Speed up CICD
  2. Make every step to be easily reproducible locally
  3. Separate build files from the code
  4. Run integration tests on different versions of scylla and cassandra.

Pre-review checklist

  • I have split my patch into logically separate commits.
  • All commit messages clearly explain what they change and why.
  • PR description sums up the changes and reasons why they should be introduced.
  • I have enabled appropriate tests in .github/workflows/build.yml in gtest_filter.

@dkropachev dkropachev force-pushed the dk/redo-cicd branch 13 times, most recently from 7f7742c to 01715fb Compare September 8, 2024 01:06
@dkropachev dkropachev marked this pull request as ready for review September 8, 2024 01:07
@dkropachev
Copy link
Collaborator Author

CICD Speedup results:
Build + Scylla IT: takes 5 minutes instead of 18.
Build + Cassandra IT: takes 6 minutes instead of 18.

@dkropachev dkropachev self-assigned this Sep 8, 2024
@muzarski
Copy link
Collaborator

muzarski commented Sep 9, 2024

I see two main issues here:

  1. The test binary cache is not working as intended - the binary is not found in the cache in Scylla ITs job, and then, it is built again.
  2. Something is messed up with the test filter. Notice that we only ran 9 test cases - This is probably the reason why CI sped up so much. When it comes to the filter, I see some unnecessary whitespaces that probably mess things up:
    Note: Google Test filter = ClusterTests.* :BasicsTests.* :PreparedTests.* :CassandraTypes/CassandraTypesTests/*.Integration_Cassandra_* :BatchSingleNodeClusterTests*:BatchCounterSingleNodeClusterTests*:BatchCounterThreeNodeClusterTests* :ErrorTests.* :SslNoClusterTests*:SslNoSslOnClusterTests* :SchemaMetadataTest.*KeyspaceMetadata:SchemaMetadataTest.*MetadataIterator:SchemaMetadataTest.*View* :TracingTests.* :ByNameTests.* :CompressionTests.* :LoggingTests.* :PreparedMetadataTests.* :UseKeyspaceCaseSensitiveTests.* :-PreparedTests.Integration_Cassandra_PreparedIDUnchangedDuringReprepare :ExecutionProfileTest.InvalidName :*NoCompactEnabledConnection :PreparedMetadataTests.Integration_Cassandra_AlterDoesntUpdateColumnCount :UseKeyspaceCaseSensitiveTests.Integration_Cassandra_ConnectWithKeyspace:*_DSE_*

@dkropachev dkropachev force-pushed the dk/redo-cicd branch 9 times, most recently from 6f1dc4a to bc47037 Compare September 9, 2024 16:59
@dkropachev
Copy link
Collaborator Author

I see two main issues here:

  1. The test binary cache is not working as intended - the binary is not found in the cache in Scylla ITs job, and then, it is built again.
  2. Something is messed up with the test filter. Notice that we only ran 9 test cases - This is probably the reason why CI sped up so much. When it comes to the filter, I see some unnecessary whitespaces that probably mess things up:
    Note: Google Test filter = ClusterTests.* :BasicsTests.* :PreparedTests.* :CassandraTypes/CassandraTypesTests/*.Integration_Cassandra_* :BatchSingleNodeClusterTests*:BatchCounterSingleNodeClusterTests*:BatchCounterThreeNodeClusterTests* :ErrorTests.* :SslNoClusterTests*:SslNoSslOnClusterTests* :SchemaMetadataTest.*KeyspaceMetadata:SchemaMetadataTest.*MetadataIterator:SchemaMetadataTest.*View* :TracingTests.* :ByNameTests.* :CompressionTests.* :LoggingTests.* :PreparedMetadataTests.* :UseKeyspaceCaseSensitiveTests.* :-PreparedTests.Integration_Cassandra_PreparedIDUnchangedDuringReprepare :ExecutionProfileTest.InvalidName :*NoCompactEnabledConnection :PreparedMetadataTests.Integration_Cassandra_AlterDoesntUpdateColumnCount :UseKeyspaceCaseSensitiveTests.Integration_Cassandra_ConnectWithKeyspace:*_DSE_*

Thanks, now it looks good, please take a look.

@dkropachev
Copy link
Collaborator Author

CICD Speedup results:
Build + Scylla IT: takes 15 minutes instead of 19.
Build + Cassandra IT: takes 15 minutes instead of 19.

Copy link
Collaborator

@muzarski muzarski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mostly some nits. Other than that, really nice job!

.github/workflows/build-lint-and-test.yml Show resolved Hide resolved
.github/workflows/build-lint-and-test.yml Show resolved Hide resolved
.github/workflows/build-lint-and-test.yml Outdated Show resolved Hide resolved
.github/workflows/build-lint-and-test.yml Outdated Show resolved Hide resolved
Makefile Show resolved Hide resolved
Makefile Outdated Show resolved Hide resolved
.github/workflows/build-lint-and-test.yml Outdated Show resolved Hide resolved
ci/version_fetch.py Show resolved Hide resolved
Move all logic to a `Makefile`
Use `Makefile` in github actions to make it easily reproducible locally
@dkropachev dkropachev merged commit 1a17e38 into master Sep 10, 2024
6 checks passed
@muzarski muzarski mentioned this pull request Oct 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants