Skip to content
This repository has been archived by the owner on Apr 29, 2024. It is now read-only.

ci: refactor test workflow #43

Merged
merged 3 commits into from
Jan 8, 2024
Merged

ci: refactor test workflow #43

merged 3 commits into from
Jan 8, 2024

Conversation

tuxcanfly
Copy link
Collaborator

@tuxcanfly tuxcanfly commented Jan 8, 2024

Overview

The current CI pipeline runs integration tests on all commits, this requires coordination between the dependencies go-da and local-celestia-devnet. The fact that the integration test depends on local-celestia-devnet which itself depends on working tree celestia-da complicates this process.

This PR separates unit tests and integration tests so that the CI pipeline can only run unit tests and all tests, including integration tests can be run on releases.

Checklist

  • New and updated code has appropriate documentation
  • New and updated code has new and/or updated testing
  • Required CI checks are passing
  • Visual proof for any user facing features like CLI or documentation updates
  • Linked issues closed with keywords

Summary by CodeRabbit

  • New Features

    • Introduced separate targets for running all tests and unit tests in the build configuration.
    • Added a new unit test for the Celestia Data Availability feature.
  • Refactor

    • Reorganized the package structure for improved clarity and maintenance.
  • Chores

    • Updated CI workflow to execute the new unit test target.

Copy link

coderabbitai bot commented Jan 8, 2024

Walkthrough

The project's build process and testing suite have been updated. Variable definitions in the Makefile were refined to distinguish between all packages and unit test packages. The test commands were split to allow separate execution for all tests and unit tests. The coverage tool has been adjusted accordingly. Code organization seems to have shifted, with changes to import paths reflecting a new directory structure. The GitHub Actions workflow was updated to align with these changes, now specifically running unit tests.

Changes

File(s) Summary
Makefile Refactored variable declarations; added test-unit target; updated cover target.
celestia/.../celestia_test.go, .../celestia-da/server.go, .../celestia_test.go Updated import paths to reflect new package structure under .../celestia-da/celestia.
.github/workflows/test.yml Changed the test command from make test to make test-unit; added conditional check for event name.

🐇✨
In the warren of code, a change takes its shape,
Tests hop to new burrows, with no route to escape.
Makefiles and workflows, now spry and spruce,
A rabbit's keen eye, for clean code on the loose.
🌟🐾

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share

Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit-tests for this file.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit tests for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository from git and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit tests.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • The JSON schema for the configuration file is available here.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/coderabbit-overrides.v2.json

CodeRabbit Discord Community

Join our Discord Community to get help, request features, and share feedback.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Review Status

Actionable comments generated: 1

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between 339de43 and 2e05c57.
Files selected for processing (5)
  • .github/workflows/test.yml (1 hunks)
  • Makefile (3 hunks)
  • celestia/celestia_test.go (1 hunks)
  • celestia_test.go (1 hunks)
  • cmd/celestia-da/server.go (1 hunks)
Files skipped from review due to trivial changes (1)
  • cmd/celestia-da/server.go
Additional comments: 6
.github/workflows/test.yml (1)
  • 35-35: The change from make test to make test-unit in the GitHub Actions workflow is consistent with the PR's objective to run only unit tests on commits.
Makefile (4)
  • 5-8: The introduction of all_pkgs and unit_pkgs variables in the Makefile is a good practice for distinguishing between all packages and those for unit testing.

  • 34-34: The update of the go-acc command in the cover target to use unit_pkgs aligns with the new testing strategy.

  • 70-73: The test target has been correctly updated to run all tests.

  • 76-79: The addition of the test-unit target for running unit tests is consistent with the PR's objective to separate unit tests from integration tests.

celestia_test.go (1)
  • 21-21: The update to the import path in celestia_test.go is consistent with the reorganization of the package structure.

celestia/celestia_test.go Show resolved Hide resolved
Copy link

codecov bot commented Jan 8, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (339de43) 76.23% compared to head (bd25c14) 0.00%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #43       +/-   ##
==========================================
- Coverage   76.23%   0.00%   -76.24%     
==========================================
  Files           1       1               
  Lines         101     101               
==========================================
- Hits           77       0       -77     
- Misses         17     101       +84     
+ Partials        7       0        -7     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Review Status

Actionable comments generated: 0

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between 2e05c57 and bd25c14.
Files selected for processing (1)
  • .github/workflows/test.yml (2 hunks)
Additional comments: 2
.github/workflows/test.yml (2)
  • 35-35: The change from make test to make test-unit correctly reflects the PR's objective to separate unit tests from integration tests.

  • 52-53: The conditional check to run integration tests only on workflow_dispatch events is a good approach to ensure that integration tests are reserved for releases, as intended by the PR.

@tuxcanfly tuxcanfly merged commit 5069c00 into main Jan 8, 2024
15 of 16 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

3 participants