From ca6c7bf08db772d997656a23c001a82320a0f040 Mon Sep 17 00:00:00 2001 From: Mihir Soni Date: Wed, 3 Feb 2021 21:32:18 +0000 Subject: [PATCH 1/2] [CI] Update Jenkis file with basic setup --- Jenkinsfile | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3b68cde20657..6e1e55eb1ca2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,21 +1,18 @@ -#!/bin/groovy - -library 'kibana-pipeline-library' -kibanaLibrary.load() - -kibanaPipeline(timeoutMinutes: 155, checkPrChanges: true, setCommitStatus: true) { - slackNotifications.onFailure(disabled: !params.NOTIFY_ON_FAILURE) { - githubPr.withDefaultPrComments { - ciStats.trackBuild { - catchError { - retryable.enable() - kibanaPipeline.allCiTasks() - } - } +node { + label 'website' + sh "env" + echo "BRANCH: ${scmVars.GIT_BRANCH}, COMMIT: ${scmVars.GIT_COMMIT}" + stage('bootstrap') { + sh 'yarn kbn bootstrap' + } + stage('unit tests') { + sh 'yarn test:jest' + } + stage('integration tests') { + sh 'yarn test:jest_integration' + sh 'yarn test:mocha' + } + stage('build'){ + sh 'yarn build --oss --skip-os-packages' } - } - - if (params.NOTIFY_ON_FAILURE) { - kibanaPipeline.sendMail() - } } From 9fc8daef9fa40bc3fdd53397d0bde505a02f5ccc Mon Sep 17 00:00:00 2001 From: Mihir Soni Date: Thu, 4 Feb 2021 00:26:07 +0000 Subject: [PATCH 2/2] [CI] Enable Dockerfile with Jenkins --- Dockerfile | 33 +++++++++++++++++++++++++++++++++ Jenkinsfile | 37 +++++++++++++++++++++++++------------ 2 files changed, 58 insertions(+), 12 deletions(-) create mode 100755 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100755 index 000000000000..534b98ef7de4 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,33 @@ +ARG NODE_VERSION=10.23.1 +FROM node:${NODE_VERSION} AS base + +ENV HOME '.' +RUN apt-get update && \ + apt-get -y install xvfb gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 \ + libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 \ + libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 \ + libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 \ + libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget openjdk-8-jre && \ + rm -rf /var/lib/apt/lists/* + +RUN curl -sSL https://dl.google.com/linux/linux_signing_key.pub | apt-key add - \ + && sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' \ + && apt-get update \ + && apt-get install -y rsync jq bsdtar google-chrome-stable \ + --no-install-recommends \ + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +RUN LATEST_VAULT_RELEASE=$(curl -s https://api.github.com/repos/hashicorp/vault/tags | jq --raw-output .[0].name[1:]) \ + && curl -L https://releases.hashicorp.com/vault/${LATEST_VAULT_RELEASE}/vault_${LATEST_VAULT_RELEASE}_linux_amd64.zip -o vault.zip \ + && unzip vault.zip \ + && rm vault.zip \ + && chmod +x vault \ + && mv vault /usr/local/bin/vault + +RUN apt-get update && apt-get install -y \ + python-pip +RUN pip install awscli + +RUN groupadd -r kibana && useradd -r -g kibana kibana && mkdir /home/kibana && chown kibana:kibana /home/kibana + +USER kibana diff --git a/Jenkinsfile b/Jenkinsfile index 6e1e55eb1ca2..5dff2eb8ef6c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,18 +1,31 @@ node { label 'website' + def scmVars = checkout scm sh "env" - echo "BRANCH: ${scmVars.GIT_BRANCH}, COMMIT: ${scmVars.GIT_COMMIT}" - stage('bootstrap') { - sh 'yarn kbn bootstrap' + def imageName = "test-image:${env.BUILD_ID}" + def testImage + stage('Build container image') { + sh 'ls -l' + testImage = docker.build imageName } - stage('unit tests') { - sh 'yarn test:jest' - } - stage('integration tests') { - sh 'yarn test:jest_integration' - sh 'yarn test:mocha' - } - stage('build'){ - sh 'yarn build --oss --skip-os-packages' + testImage.inside { + try { + stage('bootstrap') { + sh 'yarn kbn bootstrap' + } + stage('unit tests') { + sh 'yarn test:jest -u --ci --verbose --maxWorkers=5' + } + stage('integration tests') { + sh 'yarn test:jest_integration -u --ci' + sh 'yarn test:mocha' + } + } catch (e) { + echo 'This will run only if failed' + currentBuild.result = 'FAILURE' + // Since we're catching the exception in order to report on it, + // we need to re-throw it, to ensure that the build is marked as failed + throw e + } } }