Xline icon indicating copy to clipboard operation
Xline copied to clipboard

Refactor: Test Framework and Update Docker Compose Configuration

Open rohansx opened this issue 11 months ago • 14 comments

Key Changes:

  • Created a new docker-compose.yml file to manage the Xline cluster configuration, ensuring all services are correctly networked and equipped with the necessary volumes, ports, and environment settings.
  • Refactored the validation.sh script to utilize Docker Compose for starting and stopping services, aligning it with the new docker-compose.yml configuration. This update simplifies the validation process and ensures compatibility with the Docker Compose setup.
  • Updated the benchmark.sh and quick_start.sh documentation to reflect the new Docker Compose-based approach. This includes instructions on how to use the docker-compose file for setting up a development or testing environment and guidelines for executing validation and benchmark tests.

These changes aim to streamline the project's testing framework, reduce redundancy, and improve the overall developer experience when testing and validating the Xline cluster's functionality.

Resolves: #692

rohansx avatar Mar 17 '24 16:03 rohansx

@Phoenix500526 Pleaase review this PR and let me know the changes and then I'll proceed with the documentation

rohansx avatar Mar 17 '24 16:03 rohansx

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 75.16%. Comparing base (eadf2d9) to head (eaea991).

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #701      +/-   ##
==========================================
- Coverage   75.17%   75.16%   -0.02%     
==========================================
  Files         176      176              
  Lines       26852    26852              
  Branches    26852    26852              
==========================================
- Hits        20187    20183       -4     
- Misses       5452     5454       +2     
- Partials     1213     1215       +2     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

codecov[bot] avatar Mar 18 '24 01:03 codecov[bot]

@liangyuanpeng adjusted port configurations for xLine nodes and added client container for enhanced interaction. @Phoenix500526 updated node2 and node3 ports to avoid special port conflicts and included --client-listen-urls and --peer-listen-urls for clearer networking. Also added a client service for testing and interaction purposes.

rohansx avatar Mar 21 '24 04:03 rohansx

@Phoenix500526 I have done the necessary modification as you mentioned above. I updated client container image for CI validation process to ghcr.io/xline-kv/etcdctl:v3.5.9

rohansx avatar Mar 21 '24 13:03 rohansx

There are still some problems with the validation CI. Please fix them so that this pr can pass the CI. You can run the validation on your local via executing scripts/validation_test.sh.

Phoenix500526 avatar Mar 22 '24 01:03 Phoenix500526

There are still some problems with the validation CI. Please fix them so that this pr can pass the CI. You can run the validation on your local via executing scripts/validation_test.sh.

working on this.

rohansx avatar Mar 22 '24 14:03 rohansx

There are several issues in this pr:

  1. please add a signed-off-by information in your commits.
  2. please format the commit message. The commit message "[200~Refactor Test Framework and Update..." is invalid.
  3. The validation CI is still not pass. It seems the relevant container created by docker-compose named "ci-client-1", not client.

Phoenix500526 avatar Mar 25 '24 01:03 Phoenix500526

@Phoenix500526 @liangyuanpeng , I am encountering a validation check error, and I have tried to resolve it without success. Could you please explain why this validation check is failing and provide guidance on how I can address the issue?

rohansx avatar Mar 30 '24 18:03 rohansx

@Phoenix500526 @liangyuanpeng , I am encountering a validation check error, and I have tried to resolve it without success. Could you please explain why this validation check is failing and provide guidance on how I can address the issue?

I think there are several reasons behind this validation failure:

  1. The docker-compose will generate a default name for those containers without specifying their container_name. In this case, the name of the client container is ci-client-1, not client. Hence, the validation test will get an error like "No such container named client"
  2. In this pr, you changed the subnet from 172.20.0.0/16 to 172.22.0.0/16, but you forgot to update the ip address in the validation_test.sh.
  3. The original quick_start.sh mounts ./scripts to /mnt and the validation_test.sh uses the ./scripts/validation_lock_client to do some test stuff.

Finally, please modify our quick start doc to make it unify with the code change in this pr. Thanks 😄

Phoenix500526 avatar Mar 31 '24 13:03 Phoenix500526

Hi, @rohansx ! This pr has been stalled for 3 weeks. Would you like to update it? 😄

Phoenix500526 avatar Apr 24 '24 01:04 Phoenix500526

Hi, @rohansx ! This pr has been stalled for 3 weeks. Would you like to update it? 😄

@Phoenix500526 yes I'll update in the next week.. sorry for the delay.. actually kind of looking for a job and got stuck in the interview process and therefore i couldn't look into it..

rohansx avatar Apr 24 '24 17:04 rohansx

@Mergifyio rebase

Phoenix500526 avatar May 16 '24 12:05 Phoenix500526

rebase

❌ Base branch update has failed

Git reported the following error:

Rebasing (1/14)
Auto-merging scripts/quick_start.sh
CONFLICT (content): Merge conflict in scripts/quick_start.sh
Auto-merging scripts/validation_test.sh
CONFLICT (content): Merge conflict in scripts/validation_test.sh
error: could not apply ffc737c... ?[200~Refactor Test Framework and Update Docker Compose Configuration
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply ffc737c... [200~Refactor Test Framework and Update Docker Compose Configuration

mergify[bot] avatar May 16 '24 12:05 mergify[bot]

@rohansx Your PR is in conflict and cannot be merged.

mergify[bot] avatar May 20 '24 01:05 mergify[bot]