Giter VIP home page Giter VIP logo

jenkins-agent's Introduction

Zebrunner CE Jenkins slave

Overview

This is official Zebrunner CE slave image.

Example

It might be integrated into the environment in different ways: docker-composer, AWS ECS cluster, Kubernetes etc. Example might be found in jenkins-master repository.

jenkins-agent's People

Contributors

vdelendik avatar ilya-varchenya avatar azarouski avatar hursevich avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar  avatar Nikolai Krasnik avatar

jenkins-agent's Issues

[ERROR] error reading * zip file is empty

during mass jobs start each thread could corrupt downloading dependencies.
As result we see that tests could fail later due to the class not found exception.
also during compilation maven shows below error in spite of the fact that "-U" arg is provided:
[ERROR] error reading /root/.m2/repository/com/itextpdf/itextpdf/5.0.6/itextpdf-5.0.6.jar; zip file is empty

use infinite pause for the case when master jenkins url is not available

we've found that during provisioning of the jenkins it might starts pretty slow (5m+). and even in starting state it can't return swarm plugin jar (503 error as I remember).

so let's use SWARM_RESPONSE_TIMEOUT=60 delay only when connection to jenkins master is established.

when connection is not available we have to try to connect forever without any limitations, i.e. even if jenkins master is available tomorrow agent should be able to reconnect

inspect jenkins-slave image and minimize it's size as much as possible

I already commented installation of some tooling but size of the alpine image is still around 1Gb which is pretty huge.
In scope of this research I'd like to get answers onto the below questions about toolset and sizing because original alpine image is about 6Mb only :)

alpine                                              3.11.3                         e7d92cdc71fe        9 months ago        5.59MB
  1. What tools are installed by this command? their size and necessity for slave:
    https://github.com/zebrunner/jenkins-slave/blob/83bc0d60e911c09f0f728b57d89d7f09c5f9cf64/Dockerfile#L15

  2. size of docker components:
    https://github.com/zebrunner/jenkins-slave/blob/83bc0d60e911c09f0f728b57d89d7f09c5f9cf64/Dockerfile#L39

  3. Find commit and maybe person who requested to install kubectl, size of the image without it:
    https://github.com/zebrunner/jenkins-slave/blob/83bc0d60e911c09f0f728b57d89d7f09c5f9cf64/Dockerfile#L45

  4. size of the preinstalled 3.6.3 maven
    https://github.com/zebrunner/jenkins-slave/blob/83bc0d60e911c09f0f728b57d89d7f09c5f9cf64/Dockerfile#L103

  5. size of the java, inspect maybe other java version already installed...
    https://github.com/zebrunner/jenkins-slave/blob/83bc0d60e911c09f0f728b57d89d7f09c5f9cf64/Dockerfile#L113

  6. We already use M3 maven installed by jenkins from internet. So installing 3.6.3 maven again in the slave seems overhelming. But to main a decision we have to measure execution time for web-demo-test job as is and with removed maven&carina-demo dependencies. If time the same, please do 3 attempts with maven + carina-demo and without and collect statistic.

provide image with mkdocs inside

steps to deploy documentation need mkdocs inside the alpine container:
apk add --update py-pip
apk add --update python3
apk add --update gcc
apk add --update python3-dev
apk add --update musl-dev
pip install mkdocs
pip install mkdocs-material

let's examine the size of the new slave and include into the default jenkins-slave if possible

investigate an option to make smarm-plugin dynamically compatible

let's investigate an option to download sarm-plugin.jar from jenkins-master before start.
it should guarantee that our slaves can automatically reconnect to upgraded swarm on master.

make sure to validate the sate of the downloaded jar (via curl or wget?) and only if everything is ok - replace default one we provide with image.

unable to reuse mkdocs on alpine slave

INFO - Documentation built in 0.53 seconds
WARNING - Version check skipped: No version specified in previous deployment.
INFO - Copying '/opt/jenkins/workspace/qps-infra/deploy-docs-qps-infra/site' to 'gh-pages' branch and pushing to GitHub.
git: 'fast-import' is not a git command. See 'git --help'.

provide jenkins-jnpl based container to integrate scaling executors (ecs/kubernetes)

Jenkins-jnpl is already available with swarm client and jdk 8 and 11.
Their size is optiomized and around 200-300Mb.
It should satisfy most of our needs. All the rest like adb from android sdk should be added to specific slave images.
Investigate if we can jump onto the default jenkins-jnpl images at all and collect requirements for custom android adb slaves

make jdk17 default one

decomission jdk11 and produce by default with jdk17 on board. make sure jenkins master also uses jdk17 (?!)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.