On Wed, Mar 21, 2018 at 9:52 AM, Stian Thorgersen <sthorger(a)redhat.com> wrote:
On 20 March 2018 at 22:29, Bill Burke <bburke(a)redhat.com> wrote:
>
> I have a golang client utility (kcinit) that I need to integrate with
> tests in our testsuite. Its possible to integrate golang with maven
> using this maven plugin:
>
>
https://github.com/raydac/mvn-golang
>
> To integrate my tool into the arquillian testsuite, I've pulled in
> this plugin to pull down and build my golang tool so that it can be
> executed within a test. The way it works is that the maven plugin
> will first download the Golang SDK and store it within ~/.mvnGolang.
> It will also store any source code it pulls down and builds there. It
> will build a binary that is specific to the platform it is running on
> so this is perfect for our testsuite.
>
> Sound ok?
That works. Would it be best to have a profile for it though? Rather than
having it run every time developers build and test we can add a CI job for
it that would be ran on PRs. That way it's always tested on PRs, but you
don't have to pay the price locally if you haven't touched kinit at all.
its not that bad (an extra 10 secs on my network). If somebody
complains I'll change it?
>
>
> Next question is distribution. "kcinit" is a command line utility.
> Should I add this to our current client tools directory in the disto
> or create a separate dis zipt? Ok to include binaries for linux, osx,
> and windows? This will require the maven plugin to individually
> cross-compile for each platform. Its not superfast and our distro
> build will be slower, but we will have one place to pull this stuff
> together. I will need to eventually create an RPM for this tool so
> that it can be automatically installed in Fedora/RHEL.
I'd go with a separate dist. It's a client tool and having to download and
extract it from the large server zip would be annoying.
Don't really need a dist, per se, just need to build the binaries for
common platforms (osx x86, linux x86, and windows x86).
Is publishing downloads to community website automated? Will want a
separate download for each platform binary.
Maybe it would be best to have a separate profile here as well?
Something
like distribution-cli. It can be disabled by default, but enabled when we do
releases. I know quite a lot of folks regularly builds the server dist while
doing development, myself included.
Yes, should definitely do this. cross-platform builds take awhile.
For Keycloak we can definitively include binaries for all. Can the
Maven
plugin build all binaries on Linux? Or do you need to build it on the
individual platforms? If the latter then we have a biggish problem to figure
out when releasing Keycloak.
Golang and the maven plugin can build all platform targets on any OS.
--
Bill Burke
Red Hat