[TEST] portable packaging test project + windows#27623
[TEST] portable packaging test project + windows#27623andyb-elastic wants to merge 1 commit intoelastic:masterfrom
Conversation
This creates projects for new packaging tests written in groovy that can run on linux and windows, and adds awareness of windows boxes to the gradle build and Vagrantfile. No tests have been ported here, the groovy tests just exit immediately. Also creates the project :qa:packaging-common for code that should be shared between tests, e.g. the kind of content that lives in the utils/ portion of the bats tests. This is a separate project so that extra plugins' projects may depend on it without conflicting with the tests' project. The default is to not test on any windows boxes unless explicitly specified (we can't provide windows boxes) to gradle via project properties or to vagrant via environment variables. Once the bats tests in :qa:vagrant have all been migrated, that project can be deleted and the vagrant test plugin applied to :qa:packaging directly, making it serve as both the groovy build for the tests, and the tasks that setup the VMs the tests run on. For elastic#26741
| @@ -0,0 +1,462 @@ | |||
| # -*- mode: ruby -*- | |||
There was a problem hiding this comment.
I rewrote the Vagrantfile this way at first because it seemed like it made it more readable if you're trying to figure out "what's in all these images" like I was. However it seems like it makes it much less readable if you're trying to figure out "what's in this specific image", so I went with the way it was previously written.
It's not complete here but I figured I'd include it in case others do find it more readable in general - I'll remove if not
| Copy-Long-Path C:\\elasticsearch-extra C:\\Users\\vagrant\\elasticsearch-extra | ||
| } | ||
| """)] | ||
| } |
There was a problem hiding this comment.
It's worth noting that this task is very slow, on the order of minutes. It seems like it's necessary on windows because the project is mounted in such a way that gradle has trouble running in it - I wasn't able to figure out a workaround. On linux, we can probably avoid it if that's too time consuming
tlrx
left a comment
There was a problem hiding this comment.
@andyb-elastic This is a really great pull request, but I have to admit that it contains too many changes for me to review it correctly. It introduces the new windows boxes but renames tasks, adds new gradle projects, refactors the Vagrantfile and handle specific things like long paths at the same time... Do you think that we could proceed with a feature branch and many small pull requests?
Of course if I'm the only reviewer to have trouble with so many changes at once it does not worth it to proceed as I'm suggesting to do.
|
I agree, let’s break this one down @andyb-elastic. |
|
Sure thing, I'll break it up into a few. Now that I'm sure this setup works it'll be easier to separate |
|
Thanks @andyb-elastic |
This creates projects for new packaging tests
written in groovy that can run on linux and
windows, and adds awareness of windows boxes
to the gradle build and Vagrantfile. No tests
have been ported here, the groovy tests just
exit immediately.
Also creates the project :qa:packaging-common
for code that should be shared between tests,
e.g. the kind of content that lives in the
utils/ portion of the bats tests. This is a
separate project so that extra plugins'
projects may depend on it without conflicting
with the tests' project.
The default is to not test on any windows boxes
unless explicitly specified (we can't provide
windows boxes) to gradle via project properties
or to vagrant via environment variables.
Once the bats tests in :qa:vagrant have all
been migrated, that project can be deleted
and the vagrant test plugin applied to
:qa:packaging directly, making it serve as both
the groovy build for the tests, and the tasks
that setup the VMs the tests run on.
For #26741