Skip to content

Conversation

@EnricoMi
Copy link
Contributor

@EnricoMi EnricoMi commented Mar 18, 2025

Description

This adds an integration test workflow to the CI running make kind-all and submitting an example job..

This should help to flag issues like #354 early.

Type of change

CI

How Has This Been Tested?

CI

Checklist:

  • My code follows the style guidelines of this project.
  • I have performed a self-review of my code.
  • I have commented on my code, particularly in hard-to-understand areas.
  • I have made corresponding changes to the documentation.
  • My changes generate no new warnings.
  • I have added tests that prove my fix is effective or that my feature works.
  • New and existing unit tests pass locally with my changes.
  • Any dependent changes have been merged and published in downstream modules.

@EnricoMi EnricoMi changed the title Add kind integration test CI: Add kind integration test Mar 18, 2025
@EnricoMi EnricoMi changed the title CI: Add kind integration test ci: Add kind integration test Mar 18, 2025
@EnricoMi EnricoMi marked this pull request as draft March 18, 2025 13:17
@EnricoMi EnricoMi force-pushed the ci-add-integration branch 5 times, most recently from a463a9a to cbd116e Compare March 18, 2025 14:20
@EnricoMi EnricoMi marked this pull request as ready for review March 18, 2025 14:34
Signed-off-by: Enrico Minack <github@enrico.minack.dev>
Signed-off-by: Enrico Minack <github@enrico.minack.dev>
@EnricoMi EnricoMi force-pushed the ci-add-integration branch from cbd116e to 4bbced9 Compare March 18, 2025 20:51
Copy link

@GeorgeJahad GeorgeJahad left a comment

Choose a reason for hiding this comment

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

lgtm

@@ -0,0 +1,95 @@
name: Integration
Copy link
Member

Choose a reason for hiding this comment

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

I think this is more of an e2e test than an integration one.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

renamed

- name: Starting Armada cluster
run: make kind-all

- name: Create queue
Copy link
Member

Choose a reason for hiding this comment

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

I am more in favour of an approach where the test is defined in a bash script, as we can also execute it locally.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I agree, but all this boils down to:

./bin/app/armadactl create queue example
./bin/app/armadactl submit dev/quickstart/example-job.yaml

which is taken from the README.md.

The boilerplate code is hopefully only temporary until #321 is fixed.

Copy link
Member

Choose a reason for hiding this comment

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

I don't think #321 will be fixed, as Armada is eventually consistent by design, and clients should handle retries.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

would be nice if the armadactl would have an option to wait for the consistency, then users wouldn't need to implement that individually

Copy link
Member

Choose a reason for hiding this comment

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

Might be worthwhile opening an Issue in the https://github.com/armadaproject/armada repository.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have found scripts/e2e-test.sh, moving code there and invoking this from CI.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The existing scripts/e2e-test.sh does not work for me locally and on Github c04d991:
https://github.com/armadaproject/armada-operator/actions/runs/13973241267/job/39120298108?pr=355#step:4:608

Problem is that

make docker-build

produces a docker image that does not work:

$ docker run --rm -it gresearch/armada-operator:v0.5.0-8-g4da5900
exec /armada-operator: no such file or directory

@dejanzele any suggestions?

Signed-off-by: Enrico Minack <github@enrico.minack.dev>
@EnricoMi EnricoMi force-pushed the ci-add-integration branch from 23d7c0f to 7c7abca Compare March 19, 2025 06:34
@codecov
Copy link

codecov bot commented Mar 19, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 81.37%. Comparing base (6731eb6) to head (7c7abca).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #355   +/-   ##
=======================================
  Coverage   81.37%   81.37%           
=======================================
  Files          16       16           
  Lines        3474     3474           
=======================================
  Hits         2827     2827           
  Misses        452      452           
  Partials      195      195           

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

🚀 New features to boost your workflow:
  • Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@EnricoMi EnricoMi changed the title ci: Add kind integration test ci: Add kind e2e test Mar 19, 2025
cache-prefix: go-integration-kind

- name: Starting Armada cluster
run: make kind-all
Copy link
Member

Choose a reason for hiding this comment

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

make kind-all installs the latest released Armada Operator Helm chart - https://github.com/armadaproject/armada-operator/blob/main/Makefile#L214
This way we run e2e tests for the latest released Operator, and in case of a change to Operator code or Helm chart, the e2e test won't cover that scenario.

I think it might be better to create a make kind-all-local or edit the make kind-all-dev to build the code and install from the local Helm chart.
That way we would cover the scenario to do an e2e test on current Operator code and on current Helm chart.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Signed-off-by: Enrico Minack <github@enrico.minack.dev>
@EnricoMi EnricoMi force-pushed the ci-add-integration branch from 7ad4c52 to 561dced Compare March 20, 2025 14:26
Signed-off-by: Enrico Minack <github@enrico.minack.dev>
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.

3 participants