Commit graph

56 commits

Author SHA1 Message Date
Ry Biesemeyer
dcf93f5a26 ci: ensure bundle installed before invoking bundle exec in cleanup
DRYs up cleanup code and prevents error that is raised when we attempt
to `bundle exec rake qa:vm:halt` when the bundle has not yet been installed.

Fixes #9803
2018-07-02 17:26:27 +00:00
Andrew Cholakian
bc8db07866 Correctly CD between dirs in ci/acceptance-tests.sh
This correctly CDs back and forth between dirs and tracks things
with variables to make it easier on the brain than relative paths like '..'

Fixes #9657
2018-05-24 19:49:30 +00:00
Andrew Cholakian
fa39243442 Fix VM halt task for acceptance tasks by CDing correctly
We were in the wrong dir before, we need to be in the qa dir to shutdown correctly

Fixes #9651
2018-05-24 14:01:31 +00:00
Andrew Cholakian
b51a000c46 Prefer gradle for installing default gems in license check
This prevents JVM segfaults, as seen in https://logstash-ci.elastic.co/job/elastic+logstash+6.3+multijob-license-check/34/console.

Invoking rake directly in docker causes these presently.

This was originally fixed in 8f03e82 and reverted in 31461b5. The revert, fixed the universal build system, but broke our jenkins / docker CI tasks.

Fixes #9648
2018-05-24 01:42:11 +00:00
Andrew Cholakian
44e2639a91 Make commands to run all acceptance VMs actually do that.
Also, take conservative approach of halting any somehow stale VMs before building

Fixes #9642
2018-05-23 19:23:39 +00:00
Andrew Cholakian
3509199e87 Always halt vagrant instances when on CI server.
We were having issues with lots of stale VMs being left around. This, hopefully, fixes it.

Fixes #9642
2018-05-23 19:23:39 +00:00
Andrew Cholakian
534eaee868 Revert commit that broke dep report
This reverts commit 8f03e82249.

That was part of a larger series of changes that shouldn't be in 6.3

Fixes #9635
2018-05-22 15:00:36 +00:00
Andrew Cholakian
4f5b703244 Enable TEST_DEBUG on CI servers
Some tests are impossible to debug since log messages are not echoed without this,
including fatal/error messages. This makes output more verbose, but actually debuggable.

We should really delete this 'functionality' from https://github.com/elastic/logstash-devutils/blob/master/lib/logstash/devutils/rspec/spec_helper.rb#L36
since it does more harm than good.

Fixes #9629
2018-05-22 14:50:34 +00:00
Andrew Cholakian
8f03e82249 Fix the license check CI task
This does a few small things:

1. Prefer invoking rake tasks via ./gradlew vs rake. This prevents Java from segfaulting on docker for unknown reasons
2. Remove use of COPYING.csv which has already been removed
2018-05-18 15:10:08 -05:00
Armin
b00163d205 BUILD: Fix the docker build script to correctly see exit code
Fixes #9567
2018-05-15 17:26:35 +00:00
Andrew Cholakian
f2e9cbe303 Back port dependency report to 6.3
Fixes #9557
2018-05-10 18:13:58 +00:00
Jenkins CI
6e049269a9 Migrate x-pack-logstash source to logstash 2018-04-24 10:45:08 -05:00
Andrew Cholakian
6b026a27f4 Docker CI Images should cleanup in the event of an unclean exit.
Fixes #9279
2018-03-22 22:12:07 +00:00
Andrew Cholakian
845be5e063 DRY docker shell scripts for use with docker CI
We'll be using ci/docker_run.sh to run our x-pack build scripts soon,
so this refactor makes sense

Fixes #9245
2018-03-15 23:50:33 +00:00
Andrew Cholakian
54ca7e95e1 Set gradle log level to info on CI
Fixes #9240
2018-03-14 22:02:27 +00:00
Andrew Cholakian
5757d8773d Never use gradle daemon on CI servers
We've had some issues with builds crashing the gradle daemon on CI servers. This can obfuscate errors.
This patch removes its usage in CI.

This is considered a gradle best practice: https://docs.gradle.org/current/userguide/gradle_daemon.html#sec:stopping_an_existing_daemon

Fixes #9240
2018-03-14 22:02:27 +00:00
Armin
aa377cd98f BUILD: Run rake tasks in Gradle JVM
Fixes #8941
2018-01-17 11:57:16 +00:00
Armin
877020e930 BUILD: Prevent zombie Docker Runs
Fixes #8953
2018-01-16 16:28:06 +00:00
Jake Landis
f8cb6237f5 windows ci: remove rake in favor of gradle
fixes #8732

Fixes #8743
2017-11-28 14:34:45 +00:00
Armin
86cbb275b3 #8672 adjust gradle to use plain output on CI
Fixes #8678
2017-11-15 09:44:43 +00:00
Armin
28dea84ce1 CR comments
Fixes #8599
2017-11-14 15:25:37 +00:00
Armin
26aae4f403 #7135 add Gradle task for bootstrapping and running all integration tests
Fixes #8599
2017-11-14 15:25:37 +00:00
Armin
8b8d5ec9ca TESTS: Improve Gradle Test Configuration
* `clean` actually cleans all dynamically created files, in particular it now properly cleans the generated Gemfile so
that changes to the Gemfile.template reflect in a rerun of `bundler`
* `rubyTests` and `test` are now one-off and will automatically bootstrap JRuby and Gems required by the tests if necessary
* Fixed Readme to document the now much simpler test targets
* All rake tasks remain unchanged and still work exactly as they did before

Fixes #8583
2017-11-06 18:34:47 +00:00
Armin
59d783dd47 Java Pipeline Compiler
Fixes #8569
2017-11-02 17:43:51 +00:00
Armin
cd3b91dc5c #8216 Use standard name for Gemfile.lock
Fixes #8525
2017-10-26 08:33:03 +00:00
Colin Surprenant
d64049f2b5 dynamically assign drive letter to WORKSPACE env var
fix underfined env var check

check for defined JRUBYSRCDIR env var

check for errorlevel after launching rake tasks

cosmetics

call rake

keep original path

cosmetic

cosmetic
2017-09-29 15:26:39 -04:00
Jake Landis
53fe0cd350 Instruct Jenkins to not abort other Vagrant hosts
See: https://stackoverflow.com/questions/19736862/vagrant-aborted-at-end-of-jenkins-job
and: https://wiki.jenkins.io/display/JENKINS/ProcessTreeKiller

Note - the existing vagrant lifecycle instructs a `destroy` before bootstrapping that will ensure a clean start if last process did not die properly.

Fixes #8380
2017-09-24 01:13:11 +00:00
Jake Landis
038e8e9d5c Remove Travis builds (they have been replaced by Jenkins) Fixes: #8079
Fixes #8362
2017-09-21 23:17:51 +00:00
Pier-Hugues Pellerin
9184e360d2 remove vendor plugin
Fixes #8281
2017-09-18 18:57:50 +00:00
Pier-Hugues Pellerin
0468a07082 remove all trace of install all plugins in the code and in the build scripts
Fixes #8281
2017-09-18 18:57:49 +00:00
Jake Landis
1340f2eee0 Introduce docker for CI builds.
This commit includes:
* A base Dockerfile and script to push to a Docker repo
* A per-build Dockerfile (derived from the base)
* Updates to the test scripts to allow for more parallel builds
* Docker wrappers for the tests scripts
* Update for the integration test readme to manually run the tests
* Clean up the output of the Java tests
* Remove offline tag for tests (no longer needed that we don't use docker dependent services)

This commit does NOT include:
* Changes needed for the CI system to use Docker

Fixes #8223
2017-09-14 18:55:41 +00:00
Armin
32b162c168 #8177 break cyclic dependency on old Logstash core in ITs and properly load it before service setup
Fixes #8181
2017-09-12 21:24:25 +00:00
Jake Landis
e87f810c76 Fix gradle tests on Windows
Addresses #7637

Fixes #7716
2017-07-17 22:49:05 +00:00
Jake Landis
c009cb8529 Ignore windows tests temporarily while addressing https://github.com/elastic/logstash/issues/7634 (#7637) 2017-07-11 08:43:38 +01:00
João Duarte
a797bf3721 add ci_test.bat file for windows testing (#7557)
this relies on jruby being installed locally with the same version as
the one contained in the .ruby-version file at the root of the project

The jruby must be installed in %JRUBYSRCDIR%\%JRUBYVERSION%
2017-07-10 13:50:34 +01:00
Pier-Hugues Pellerin
b3b9e605ac Check if the file exist before deleting them
When running the `ci_acceptance` test we need to make sure we don't have
any Gemfile or *.lock laying around. Deleting a non existant file would
make the test fails.

Fixes #7515
2017-06-27 00:41:08 +00:00
Pier-Hugues Pellerin
0f648858ef Remove *.lock and Gemfile before running any acceptance test
The acceptance test in our CI infrastructure doesn't clear the workspace between run
this mean the lock of the Gemfile can be sticky from a previous run, before generating any package
we will clear them out to make sure we use the latest version of theses files from the template.
If we don't do this we will run into gem Conflict error.

Fixes #7435
2017-06-16 14:28:39 +00:00
Pier-Hugues Pellerin
42e9c0d758 Extraction of the document from ruby to actual asciidoc file
This PR is based on the proposal from #6846, it does the following

- Change the format of the plugin help page
- Create an external file for each plugin type that will get included by the plugin
- Add a script to generate the PR on each plugin repo with the static doc
- Add a script `ci/ci_docs.sh` that will be used to generate the list of plugins that can be installed in logstash from all the available plugins from the community organization

This PR is the building block for change in https://github.com/elastic/docs-tools/issues/3

Fixes #6941
2017-06-08 20:14:36 +00:00
Andrew Cholakian
bb60eb8f47 Run offline specs separately from online ones.
The internet disabling C hack can break other tests, so, we now run
those tests separately.

Fixes https://github.com/elastic/logstash/issues/7178

Fixes #7179
2017-05-22 15:28:27 +00:00
Wainer dos Santos Moschetta
4636dd8dca Make ci_integration.sh use bash
The ci_integration.sh script uses double brackets ('[[') test
which is not portable. For instance, running it with dash you
get the error:

./ci/ci_integration.sh: 10: ./ci/ci_integration.sh: [[: not found

This change makes the script use bash, that supports this kind
of test.

Fixes #6939
2017-04-20 17:40:24 +00:00
Pier-Hugues Pellerin
4344e4b613 Allow Logstash to accept a PROXY configuration
Logstash's plugin manager will now follow proxy configuration from the environment.
If you configure `http_proxy` and `https_proxy`, the manager will now use theses information for all the ruby http
connection and will also pass that information down to maven.

Fixes: #6619, #6528

Fixes #6825
2017-03-31 14:20:38 -04:00
Josh Soref
a06dc211ff Spelling fixes (#6806)
Spelling fixes across the board.
2017-03-29 19:33:26 -07:00
Suyog Rao
7ebb928834 Support params to specify output dir
Fixes #6682
2017-02-09 15:03:46 -05:00
Pier-Hugues Pellerin
fdda39964d Add bin/logstash-plugin prepare-offline-pack command
This new command replace the old workflow of `pack`, `unpack` and the `install --local`, and wrap all the logic into one uniform way of installing plugins.
The work is based on the flow developed for installing an x-pack inside Logstash, when you call prepare-offline-pack, the specified plugins and their dependencies will be packaged in a zip.
And this zip can be installed with the same flow as the pack.

Definition:

Source Logstash: Where you run the prepare-offline-pack.
Target Logstash: Where you install the offline package.

PROS:
- If you install a .gem in the source logstash, the .gem and his dependencies will be bundled.
- The install flow doesn't need to have access to the internet.
- Nothing special need to be setup in the target logstash environment.

CONS:
- The is one minor drawback, the plugins need to have their JARS bundled with them for this flow to work, this is currently the case for all the official plugins.
- The source Logstash need to have access to the internet when you install plugins before packaging them.

Usage examples:
bin/logstash-plugin prepare-offline-pack logstash-input-beats
bin/logstash-plugin prepare-offline-pack logstash-filter-jdbc logstash-input-beats
bin/logstash-plugin prepare-offline-pack logstash-filter-*
bin/logstash-plugin prepare-offline-pack logstash-filter-* logstash-input-beats

How to install:
bin/logstash-plugin install file:///tmp/logstash-offline-plugins-XXXX.zip

Fixes #6404
2017-01-03 13:59:49 -05:00
Pier-Hugues Pellerin
bf2d670d2a Logstash-docgen tool v2
**Motivation**: We have decided to rewrite the documentation generator to add more features
to our documentation and to fix some outstanding bugs.

This PR addresses the following problem:
- Hard to add new features to the code base.
- The code was tied with Logstash.
- No easy way to publish the doc for a single plugin
- The plugin author was not able to test their documentation changes
- The reported errors were hard to understand.
- No easy way to automate it.
- the minimal requirement on base classes.

Fixes #5720
2016-11-30 19:57:40 -05:00
Suyog Rao
65435ba41c Enable RATS integration tests on travis
Fixes #5963
2016-09-23 12:00:14 -04:00
Suyog Rao
dfd6164edd changes after review
Fixes #5917
2016-09-22 13:43:48 -04:00
Pere Urbon-Bayes
21777bae40 Collection of small bootstrap related fixes like
* make sure downloaded logstashes use the new (arch independant files name)
* add specific privileged bootstrap script for debian 8 that is able to install java8 for this distro
* wrap the bootstrap scripts within the platform class, like this logic is in one specific place to select platform specific components
* add platform specific bootstrap file for sles-12 and also scripts to download latest logstash rpm version
* add custom bootstrap script for ubuntu-1404 to be sure it loads all ca certificates into the system
* make the necessary changes to compile with the new package system
* correct logstash path usage
* remove unnecessary dependancy to rake inside the acceptance test framework
* fix script execution under ubuntu environments, making sure it runs on bash

Fixes #5350
2016-06-02 14:37:15 +00:00
Pere Urbon-Bayes
1be0d271d3 Introduce the concept of a single spec for the tests, we removed the platform depant test as they where mostly similar, but only used with small platform dependant metadata, this all has been moved to factory methods. make sure platforms uses canonicals "former" names, so no "ubuntu" platfrom as is debian based, and no "centos" as is redhat based.
Also:

* Refactored the specs organization to make the resoning behind simplier,
introducing the idea of an artifact subject that it wraps the
interactions with the platform.

* Add methods to destroy, bootstrap and halt a list of machines either all of them or the ones listed under a given platform name.

* Introduced more clear namespacing in the rakefile.

* Updated the list of available platforms for acceptance testing, including latest ubuntu, oel, fedora, debian and suse versions

Fixes #5350
2016-06-02 14:37:15 +00:00
Pier-Hugues Pellerin
f74e339e77 Allow to run acceptance test with the local logstash
This change introduce a new command ci/ci_acceptance which is
responsable of building the packages, bootstraping the acceptance test
environment, launching the VMs and running the tests.

You can use the following command to target specific platform.

```
ci/ci_acceptance.sh all
ci/ci_acceptance.sh centos
ci/ci_acceptance.sh debian
```

This PR also add a new rake task to build all the artifacts in a single
run called rake artifact:all it make sure we only install the plugin
only once and make the build process faster.

Fixes #5350
2016-06-02 14:37:15 +00:00