-
Notifications
You must be signed in to change notification settings - Fork 33
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
Regression testing against typical web applications #8
Comments
A few simple apps to start out with could be pulled from GoogleCloudPlatform/getting-started-java. |
@gregw This is a high priority for us. Can someone on your side help us with this? Running these tests locally would be sufficient for now. We can later integrate them into the CI server, when that's ready. |
What do you mean by "running these tests locally"? Due to the nature of how gcloud operates, we cannot run locally any of these images, they have to be deployed to gcloud to test against. The issue Greg filed was about regression testing, in an automated fashion, several known webapps. |
Webapps present on
Do you want all of these presented as dockerized + gcloud deployables for flex only? (leaving out the Which repo would you like to see these in? |
What I meant by "running locally" is that instead of having a CI server run the test script, we will invoke it from our personal machines. The tests themselves would involve running the images on GCP. We can then utilize the same tests for regression testing by adding them to a CI server. See https://github.com/aslo/java-runtimes-test for the kind of thing I have in mind. |
Let's start out with hello-world-servlet (exclude compat). We can add the more complex apps later when the testing pattern is established. |
Looks like the various
This will affect the dockerized + gcloud images for:
|
Are the war files from |
I don't thinks so. Can we just build from source as part of the test script? |
Just working out if a separate git repo is doable. or if this build / dockerize / deploy is best done within the |
if we do the CI, then separate repos are possible again, as you would just have downstream builds with a local (to the CI) maven repository managing the behavior between the git repositories. |
I'm not sure I'm following what you mean by "separate repos". Can we just keep the test orchestration code in the this jetty-runtime repo? |
sure, but where does that test orchestration code get its webapps? the webapps live/exist on the we could copy the source over to the we could copy the webapps themselves to |
The reason the example project https://github.com/aslo/java-runtimes-test works, is that everything is in one place. the webapp, the dockerfile, the deploy routines, the gcloud command line tests, the scripts, etc ... |
I was thinking of just doing |
With the current split repositories, that wont work (yet). as you cannot build the build, using what we have currently, with no CI, looks like this.
With each update to To do this right, you need the coordination between the git repositories and the artifacts that they produce. Currently, there's the gcr.io for the docker images (which is a bad idea!!) and the maven local repository on the users machine. To correct this, we proposed a durable CI handle this using Jenkins (something that travis and circle-ci cannot do btw). First: the docker images produced by the build have to be isolated for that build-chain (with the current setup/structure, if 2 people happen to build the same chain, then there's a collision at gcr.io with different images on the same names and tags). This would be accomplished by using a build system local docker repository, with build-id based tagging (either the jenkins default of a combination of repo + branch + commit + job id, or the use of the maven expanded SNAPSHOT ids), which is handed off to the downstream builds to use. Next, The CI would also then use a build-chain contextualized maven local repository, utilizing the SNAPSHOTS from the upstream builds as artifact references in its own build. |
Note: the use of the maven local repository is now mandatory. You cannot use the simple form You will have to use |
Yes, I think using the local maven repository is fine, and building the openjdk-runtime first from source is ok too. |
So the priority is to develop:
Note that as I think we need CI sooner rather than later for #7 this should be setup in parallel to the development of the test deploy "script" Also note that I'm saying "script" as it may not necessarily be a shell script, whatever technology choice is most appropriate. |
+ Deploys jetty9:testing (tagged) image in /jetty9/ module during integration-test phase + Adds /tests/ + Adds /tests/webapps/ + Adds /tests/gcloud-testing-core/ for common testing lib
regular builds should be tested against deployments of several common webapps such as spring pet clinic, to both demonstrate how to deploy those webapplication into gcloud flex and to test for regressions
The text was updated successfully, but these errors were encountered: