-
Notifications
You must be signed in to change notification settings - Fork 97
Conversation
@marcellanz @sleipnir could you try out the docker image locally, to see how it will be to use this in language support builds? |
@srikanthops @jroper You'll probably want to have a look at this |
@pvlugter very nice! |
Hi @pvlugter awesome work!
|
@pvlugter @viktorklang @marcellanz Now to be perfect I thing we only have to make this image of the tck available on Dockerhub, so we don't need sbt to publish the local image and anyone can run the tck directly from the Dockerhub image |
Publishing a Cloudstate release should include pushing the TCK Docker image
to Dockerhub. And we should probably push a nightly or similar as ”latest”.
Thoughts?
--
Cheers,
√
|
I welcome a nightly build. If needed I would build locally a new tck image, but having a nightly build would help to just run the tck without beeing in the loop of potential current development where one needs something like node/npm on the correct version. Currently the main cloudstate repository runs the TCK against all language support implementations supported and we get a quick feedback about the health of the proxy in combination with all language support libraries. When the support libraries runs the TCK by their own, we loose this information. So, do we like to somehow re-establish that? |
@viktorklang I agree |
@sleipnir that would be for master-master combinations, right? lib-master : proxy-master and vice-versa. Is this needed? How would we tag this? It seems that needs tag for every nightly build? (I'm just asking because I don'tunderstand yet how that works yet, not because I think it would not work.) |
@marcellanz is just an idea, but I have no idea if it is feasible, we would have to include it in the travis pipeline or a customized github workflow |
👍 I like the idea a lot, having the build status reported to the main repository. this way I could imagine having a branch or master built and tested against the TCK and if that fails, the badge gets red or the like and this can be used by the main project to track the support libraries health. |
this this this this :D |
I've added the TCK docker publish to the travis build. That should be all we need to get release and latest snapshot images published. |
Nice work, @pvlugter! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Excellent work, @pvlugter!
@pvlugter @srikanthops @edwardcallahan Can you check what needs to be done in order to make sure that CircleCI works with this? |
The CircleCI native-image integration tests should work same as before (not that they're currently running here). I've pushed this branch to https://circleci.com/gh/lightbend/cloudstate-ci/74 So this should be good to go. I'll merge and tag, so that there are versioned docker images to start using. |
I've tagged
Note that the travis build will also publish for any pushes to master under the I've also manually published native image build for proxy dev mode:
which can also be used when running the TCK. |
@pvlugter nice 👍 |
@pvlugter I use these docker images now to verify the Go implementation against the TCK in various combinations like:
I have not yet found a good way to visualize this matrix on a projects README.md or the like. https://travis-ci.com/github/marcellanz/go-support: WIP branch for this: |
For #216. Some minimal changes on the TCK so that it can be run independently, using docker, to be part of language support builds.
The parts of the TCK tests that manage processes have been moved under the integration testing. These should still work and run the same as before.
Package the base TCK as a docker image. Publish locally with:
Example of running all from docker, with port binding and using
host.docker.internal
:docker run -d --name cloudstate-function -p 8080:8080 cloudstateio/samples-js-shopping-cart docker run -d --name cloudstate-proxy -p 9000:9000 -e USER_FUNCTION_HOST=host.docker.internal -e USER_FUNCTION_PORT=8090 cloudstateio/cloudstate-proxy-dev-mode # can check exit status; this will fail if the TCK fails: docker run --rm --name cloudstate-tck -p 8090:8090 -e TCK_HOST=0.0.0.0 -e TCK_PROXY_HOST=host.docker.internal -e TCK_FRONTEND_HOST=host.docker.internal cloudstateio/cloudstate-tck docker rm -f cloudstate-proxy docker rm -f cloudstate-function
Or using host network to simplify port binding:
Example run: