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

feat: enhance ci with test matrix #519

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

zhaque44
Copy link
Contributor

@zhaque44 zhaque44 commented Sep 12, 2024

Adding test matrix for different OS:

Updating to follow CI best practices:

  • Use actions/cache to cache Go build/test dependencies across OSes for faster builds.
  • Parallelize jobs to run build-test and unit-test concurrently.
  • Set fail-fast: false in the matrix strategy to continue running tests even if one environment fails.

~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: build
run: make build

unit-test:
Copy link
Collaborator

Choose a reason for hiding this comment

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

Our go-test does not depend on a working Kubernetes cluster.

So we might split this unit-test into two, unit-test and probably e2e-test:

  • unit-test should not depend on K8s, and simply setting up Go, go cache, and running go test ./... (via make) should do the job.
  • e2e-test should run the e2e tests written in shellscript, which depends on a working Kubernetes cluster.

This way, we won't need a lot of if: ${{ matrix.os == 'ubuntu-latest' }}, because:

  • unit-test should run all the steps against all the supported oses.
  • e2e-test should run all the steps against all the supported oses. (Not sure if kind is able to run on all the managed GHA runners, especially macos and windows, but that's the idea.)

WDYT?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

that sounds like an idea that can work: One question I have here is, which tests? are unit and which are e2e they are not listed from what it seems

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