[keycloak-dev] need feedback on integrating golang with testsuite and distro

Stian Thorgersen sthorger at redhat.com
Tue Mar 27 02:08:31 EDT 2018


On 26 March 2018 at 15:51, Bill Burke <bburke at redhat.com> wrote:

> On Wed, Mar 21, 2018 at 9:52 AM, Stian Thorgersen <sthorger at redhat.com>
> wrote:
> >
> >
> > On 20 March 2018 at 22:29, Bill Burke <bburke at 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?
>

Ok, let's just leave 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.
>

Yes, the whole build and release of Keycloak is automated with Jenkins
jobs. The binaries are just a single file right? So no need to use a ZIP or
anything and users can just download kcinit directly for their platform?


>
> > 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.
>

Makes me think that it may just be simpler to build the dist in the main
Keycloak repo. We already have some modules that are already only built as
part of jboss-release profile in distribution/pom.xml, so probably just do
that.

I can update the jobs that upload to downloads.jboss.org and the website if
you want. Then you don't have to spend time figuring out that stuff as well.


>
>
> --
> Bill Burke
> Red Hat
>


More information about the keycloak-dev mailing list