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

Introduce ci workflow for kubernetes/openshift end to end testing #17674

Merged
merged 12 commits into from
Jul 25, 2022

Conversation

iocanel
Copy link
Contributor

@iocanel iocanel commented Jun 3, 2021

This pull request introduces a new workflow for running end to end tests using minikube and oc cluster up (this limits us to v3.11 but its better than nothing).

In detail:

The workflow is meant to be triggered only for pull requests labelled with the kubernetes label.
When the workflow is triggered it will run two new jobs: kubernetes and openshift.

The kubernetes job will spin up minikube and then trigger the maven invoker intgration tests for kubernetes.
The openshift job will spin up oc cluster up and then trigger the maven invoker intgration tests for openshift.

The integration tests have been also modified so that can be selected using profiles.

@quarkus-bot
Copy link

quarkus-bot bot commented Jun 3, 2021

Thanks for your pull request!

The title of your pull request does not follow our editorial rules. Could you have a look?

  • title should preferably start with an uppercase character (if it makes sense!)

This message is automatically generated by a bot.

@quarkus-bot quarkus-bot bot added the area/infra-automation anything related to CI, bots, etc. that are used to automated our infrastructure label Jun 3, 2021
@quarkus-bot
Copy link

quarkus-bot bot commented Jun 3, 2021

This workflow status is outdated as a new workflow run has been triggered.

Failing Jobs - Building 6ece4ee

Status Name Step Test failures Logs Raw logs
Kubernetes Integration Tests (v1.20.1) Download Maven Repo ⚠️ Check → Logs Raw logs
Openshift Integration Tests (v3.11.0) Download Maven Repo ⚠️ Check → Logs Raw logs

@quarkus-bot
Copy link

quarkus-bot bot commented Jun 3, 2021

This workflow status is outdated as a new workflow run has been triggered.

🚫 This workflow run has been cancelled.

Failing Jobs - Building 716c247

⚠️ Artifacts of the workflow run were not available thus the report misses some details.

Status Name Step Test failures Logs Raw logs
Openshift Integration Tests (v3.11.0) Run Openshift Invoker Tests ⚠️ Check → Logs Raw logs

@quarkus-bot
Copy link

quarkus-bot bot commented Jun 3, 2021

This workflow status is outdated as a new workflow run has been triggered.

Failing Jobs - Building 81cb75c

Status Name Step Test failures Logs Raw logs
Kubernetes Integration Tests (v1.20.1) Run Kubernetes Invoker Tests ⚠️ Check → Logs Raw logs
Openshift Integration Tests (v3.11.0) Run Openshift Invoker Tests ⚠️ Check → Logs Raw logs

@quarkus-bot
Copy link

quarkus-bot bot commented Jun 3, 2021

This workflow status is outdated as a new workflow run has been triggered.

Failing Jobs - Building 81cb75c

Status Name Step Test failures Logs Raw logs
Kubernetes Integration Tests (v1.20.1) Run Kubernetes Invoker Tests ⚠️ Check → Logs Raw logs
Openshift Integration Tests (v3.11.0) Run Openshift Invoker Tests ⚠️ Check → Logs Raw logs

@quarkus-bot
Copy link

quarkus-bot bot commented Jun 3, 2021

This workflow status is outdated as a new workflow run has been triggered.

Failing Jobs - Building 81cb75c

Status Name Step Test failures Logs Raw logs
Kubernetes Integration Tests (v1.20.1) Run Kubernetes Invoker Tests ⚠️ Check → Logs Raw logs
Openshift Integration Tests (v3.11.0) Run Openshift Invoker Tests ⚠️ Check → Logs Raw logs

@quarkus-bot
Copy link

quarkus-bot bot commented Jun 3, 2021

This workflow status is outdated as a new workflow run has been triggered.

Failing Jobs - Building 13a967b

Status Name Step Test failures Logs Raw logs
Kubernetes Integration Tests (v1.20.1) Run Kubernetes Invoker Tests ⚠️ Check → Logs Raw logs
Openshift Integration Tests (v3.11.0) Run Openshift Invoker Tests ⚠️ Check → Logs Raw logs

@quarkus-bot
Copy link

quarkus-bot bot commented Jun 3, 2021

This workflow status is outdated as a new workflow run has been triggered.

Failing Jobs - Building 87c4f91

Status Name Step Test failures Logs Raw logs
Kubernetes Integration Tests (v1.20.1) Run Kubernetes Invoker Tests ⚠️ Check → Logs Raw logs
Openshift Integration Tests (v3.11.0) Run Openshift Invoker Tests ⚠️ Check → Logs Raw logs

@quarkus-bot
Copy link

quarkus-bot bot commented Jun 4, 2021

This workflow status is outdated as a new workflow run has been triggered.

Failing Jobs - Building 562b23a

Status Name Step Test failures Logs Raw logs
Kubernetes Integration Tests (v1.20.1) Run Kubernetes Invoker Tests ⚠️ Check → Logs Raw logs
Openshift Integration Tests (v3.11.0) Run Openshift Invoker Tests ⚠️ Check → Logs Raw logs

@quarkus-bot
Copy link

quarkus-bot bot commented Jun 4, 2021

This workflow status is outdated as a new workflow run has been triggered.

Failing Jobs - Building d886021

Status Name Step Test failures Logs Raw logs
Kubernetes Integration Tests (v1.20.1) Run Kubernetes Invoker Tests ⚠️ Check → Logs Raw logs
Openshift Integration Tests (v3.11.0) Run Openshift Invoker Tests ⚠️ Check → Logs Raw logs

@quarkus-bot
Copy link

quarkus-bot bot commented Jun 4, 2021

This workflow status is outdated as a new workflow run has been triggered.

Failing Jobs - Building 28d8ba5

Status Name Step Test failures Logs Raw logs
Kubernetes Integration Tests (v1.20.1) Run Kubernetes Invoker Tests ⚠️ Check → Logs Raw logs
Openshift Integration Tests (v3.11.0) Run Openshift Invoker Tests ⚠️ Check → Logs Raw logs

branches:
- main
pull_request:
types: [ opened, edited, labeled, reopened, synchronize ]
Copy link
Member

Choose a reason for hiding this comment

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

a bit concerned abuot enabling this kinda run on all prs...wont we run out of resources quite quickly that way ? :)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Agree, this is why the workflow is limited only to prs labelled with area/kubernetes (see condition below)

- name: Run Openshift Invoker Tests
run: |
echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
export QUARKUS_CONTAINER_IMAGE_GROUP=${{ github.actor }}
Copy link
Member

Choose a reason for hiding this comment

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

wont you need a way to make the published image unique - i.e. based on which pr/branch its running againts to avoid collisions?

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's a very good point. Maybe, we should set the version to something that includes the pr number, timestamp etc.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

let's try with the sha

@iocanel iocanel changed the title [wip] Introduce ci workflow for kubernetes/openshift end to end testing Introduce ci workflow for kubernetes/openshift end to end testing Jun 9, 2021
@iocanel
Copy link
Contributor Author

iocanel commented Jun 10, 2021

@maxandersen @gsmet: I have nothing more to add! Can you please review?

@iocanel
Copy link
Contributor Author

iocanel commented Jun 22, 2021

@maxandersen @gsmet: ping

@maxandersen
Copy link
Member

Looks good to me. @gsmet any concerns we enable this now or wait after 2.0 build ?

@iocanel
Copy link
Contributor Author

iocanel commented Jul 12, 2021

@gsmet: ping

@quarkus-bot
Copy link

quarkus-bot bot commented Jul 12, 2021

This workflow status is outdated as a new workflow run has been triggered.

Failing Jobs - Building e17f07c

Status Name Step Test failures Logs Raw logs
JVM Tests - JDK 11 Build ⚠️ Check → Logs Raw logs
JVM Tests - JDK 16 Build ⚠️ Check → Logs Raw logs
Native Tests - Misc4 Build ⚠️ Check → Logs Raw logs

Copy link
Member

@gsmet gsmet left a comment

Choose a reason for hiding this comment

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

Thanks, very promising! It needs a bit more work though.

@quarkus-bot
Copy link

quarkus-bot bot commented Jul 13, 2021

This workflow status is outdated as a new workflow run has been triggered.

🚫 This workflow run has been cancelled.

Failing Jobs - Building 5b41d8a

⚠️ Artifacts of the workflow run were not available thus the report misses some details.

Status Name Step Test failures Logs Raw logs
Initial JDK 11 Build ⚠️ Check → Logs Raw logs
Attach pull request number ⚠️ Check → Logs Raw logs
CI Sanity Check ⚠️ Check → Logs Raw logs

@quarkus-bot

This comment has been minimized.

@iocanel
Copy link
Contributor Author

iocanel commented Jul 14, 2021

@gsmet: I think that all requested changes have been applied and related ci failures have been addressed. Still see some jobs failing, but they do seem irrelevant with the pr.

@iocanel
Copy link
Contributor Author

iocanel commented Sep 3, 2021

@gsmet: howdy! is there anything else you need me to add?

@gsmet
Copy link
Member

gsmet commented Jan 12, 2022

Sorry, my time was very limited until now and I never prioritized this one. I'm going to assign it to me and have a look in the next few days.

Thanks for the patience.

@quarkus-bot

This comment has been minimized.

@gsmet
Copy link
Member

gsmet commented Jul 6, 2022

Just a heads up that I'm actively working on this one and making significant changes (also setting up the appropriate Quay infrastructure for testing). I'll ping you when I have a state that requires your attention.

@quarkus-bot

This comment has been minimized.

@rsvoboda
Copy link
Member

oc cluster up (OpenShift 3.11) is used because CRC (OpenShift 4.x) has too high memory requirements to be a good fit for GH Actions runner?

@gsmet
Copy link
Member

gsmet commented Jul 19, 2022

@iocanel I can see the version is fixed but I have a new failure in the Kubernetes tests:

Error: [ERROR] Failed to execute goal io.quarkus:quarkus-maven-plugin:999-SNAPSHOT:build (default) on project kubernetes-docker-build-and-deploy-statefulset: Failed to build quarkus application: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
Error: [error]: Build step io.quarkus.container.image.docker.deployment.DockerProcessor#dockerBuildFromJar threw an exception: java.lang.RuntimeException: Execution of 'docker build -f /home/runner/work/quarkus/quarkus/integration-tests/kubernetes/maven-invoker-way/target/it/kubernetes-docker-build-and-deploy-statefulset/src/main/docker/Dockerfile.jvm -t quay.io/quarkustesting/kubernetes-docker-build-and-deploy-statefulset:83ceab46cbdcff846dccb9e72bda431f75406baa /home/runner/work/quarkus/quarkus/integration-tests/kubernetes/maven-invoker-way/target/it/kubernetes-docker-build-and-deploy-statefulset' failed. See docker output for more details

Caused by:

[INFO] [INFO] [io.quarkus.container.image.docker.deployment.DockerProcessor] COPY failed: no source files were specified

And we still have the deployment issue I reported earlier in the OpenShift test:

Error: [error]: Build step io.quarkus.container.image.docker.deployment.DockerProcessor#dockerBuildFromJar threw an exception: java.lang.RuntimeException: Execution of 'docker push image-registry.openshift-image-registry.svc:5000/quarkustesting/openshift-docker-build-and-deploy:83ceab46cbdcff846dccb9e72bda431f75406baa' failed. See docker output for more details

Copy link
Member

@gsmet gsmet left a comment

Choose a reason for hiding this comment

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

And now it's all good! Woot!

@quarkus-bot
Copy link

quarkus-bot bot commented Jul 21, 2022

Failing Jobs - Building 432ae34

Status Name Step Failures Logs Raw logs
Gradle Tests - JDK 11 Build Failures Logs Raw logs
✔️ Gradle Tests - JDK 11 Windows
JVM Tests - JDK 11 Build Failures Logs Raw logs
JVM Tests - JDK 17 Build Failures Logs Raw logs
JVM Tests - JDK 18 Build Failures Logs Raw logs

Full information is available in the Build summary check run.

Failures

⚙️ Gradle Tests - JDK 11 #

- Failing: integration-tests/gradle 

📦 integration-tests/gradle

io.quarkus.gradle.devmode.CompositeBuildWithDependenciesDevModeTest.main line 24 - More details - Source on GitHub

org.awaitility.core.ConditionTimeoutException: Condition with lambda expression in io.quarkus.test.devmode.util.DevModeTestUtils that uses java.util.function.Supplier, java.util.function.Supplierjava.util.concurrent.atomic.AtomicReference, java.util.concurrent.atomic.AtomicReferencejava.lang.String, java.lang.Stringboolean was not fulfilled within 1 minutes.
	at org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:167)
	at org.awaitility.core.CallableCondition.await(CallableCondition.java:78)

io.quarkus.gradle.devmode.MultiModuleNamedInjectionDevModeTest.main line 21 - More details - Source on GitHub

org.awaitility.core.ConditionTimeoutException: Condition with lambda expression in io.quarkus.test.devmode.util.DevModeTestUtils that uses java.util.function.Supplier, java.util.function.Supplierjava.util.concurrent.atomic.AtomicReference, java.util.concurrent.atomic.AtomicReferencejava.lang.String, java.lang.Stringboolean was not fulfilled within 1 minutes.
	at org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:167)
	at org.awaitility.core.CallableCondition.await(CallableCondition.java:78)

io.quarkus.gradle.devmode.MultiSourceProjectDevModeTest.main line 22 - More details - Source on GitHub

org.awaitility.core.ConditionTimeoutException: Condition with lambda expression in io.quarkus.test.devmode.util.DevModeTestUtils that uses java.util.function.Supplier, java.util.function.Supplierjava.util.concurrent.atomic.AtomicReference, java.util.concurrent.atomic.AtomicReferencejava.lang.String, java.lang.Stringboolean was not fulfilled within 1 minutes.
	at org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:167)
	at org.awaitility.core.CallableCondition.await(CallableCondition.java:78)

⚙️ JVM Tests - JDK 11 #

- Failing: extensions/resteasy-reactive/quarkus-resteasy-reactive/deployment 
! Skipped: extensions/avro/deployment extensions/grpc/deployment extensions/hibernate-reactive/deployment and 106 more

📦 extensions/resteasy-reactive/quarkus-resteasy-reactive/deployment

io.quarkus.resteasy.reactive.server.test.multipart.TooLargeFormAttributeMultipartFormInputTest.test - More details - Source on GitHub

java.util.concurrent.RejectedExecutionException
	at org.jboss.threads.RejectingExecutor.execute(RejectingExecutor.java:38)
	at org.jboss.threads.EnhancedQueueExecutor.rejectShutdown(EnhancedQueueExecutor.java:2076)

⚙️ JVM Tests - JDK 17 #

- Failing: integration-tests/elasticsearch-rest-client 

📦 integration-tests/elasticsearch-rest-client

Failed to execute goal io.fabric8:docker-maven-plugin:0.40.1:start (docker-start) on project quarkus-integration-test-elasticsearch-rest-client: I/O Error


⚙️ JVM Tests - JDK 18 #

- Failing: extensions/resteasy-reactive/quarkus-resteasy-reactive/deployment 
! Skipped: extensions/avro/deployment extensions/grpc/deployment extensions/hibernate-reactive/deployment and 106 more

📦 extensions/resteasy-reactive/quarkus-resteasy-reactive/deployment

io.quarkus.resteasy.reactive.server.test.multipart.TooLargeFormAttributeMultipartFormInputTest.test - More details - Source on GitHub

java.util.concurrent.RejectedExecutionException
	at org.jboss.threads.RejectingExecutor.execute(RejectingExecutor.java:38)
	at org.jboss.threads.EnhancedQueueExecutor.rejectShutdown(EnhancedQueueExecutor.java:2076)

@gsmet gsmet merged commit 70fd234 into quarkusio:main Jul 25, 2022
@quarkus-bot quarkus-bot bot added this to the 2.12 - main milestone Jul 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/infra-automation anything related to CI, bots, etc. that are used to automated our infrastructure area/kubernetes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants