diff --git a/_docs/images/projects/jenkins/logo.png b/_docs/images/projects/jenkins/logo.png new file mode 100644 index 0000000..5473a63 Binary files /dev/null and b/_docs/images/projects/jenkins/logo.png differ diff --git a/_docs/images/projects/librecores/logo.png b/_docs/images/projects/librecores/logo.png new file mode 100644 index 0000000..1adad9a Binary files /dev/null and b/_docs/images/projects/librecores/logo.png differ diff --git a/_docs/open-source/README.md b/_docs/open-source/README.md index b3c4f5e..b836756 100644 --- a/_docs/open-source/README.md +++ b/_docs/open-source/README.md @@ -4,7 +4,7 @@ Jenkins is the first open source community I joined. No regrets, it has been a great experience! -In [Jenkins](http://jenkins.io/) I am a community builder, core maintainer, board member, event officer, and holder of many roles. +In [Jenkins](http://jenkins.io/) I am a community builder, core maintainer, board member, event officer, and holder of many roles. I am not a mother of dragons, but I am definitely a father of bugs 😊 My goal is to make the Jenkins community the best place to participate, and to ensure long term evolution of the project and its community. @@ -43,17 +43,47 @@ I also have a PhD degree in hardware design and electronics design automation. I am a co-maintainer of [Windows Service Wrapper (WinSW)](https://github.com/winsw/winsw), not so active these days 😢 +This project was started by the Jenkins author Kohsuke Kawaguchi. +It is being used to install Jenkins and other services as Windows services. +In 2015 I took ownership of the project in order to release WinSW 2.0 +with major stability improvements. + ### FaaScinator -In June 2021 I've also started the [FaaScinator project](https://github.com/oleg-nenashev/FaaScinator) - +In June 2021 I've also started the [FaaScinator project](https://github.com/oleg-nenashev/FaaScinator) - a tool that converts Java CLI apps to FaaS containers and OpenFaaS templates, powered by Quarkus, OpenFaaS, picocli and a few other projects. +### Jenkins RU + +I am trying to consolidate the Russian-speaking community by setting up chats, +helping to users/developers and organizing Jenkins Area Meetups +in St. Petersburg, Moscow, Minsk and other cities. +30 meetups in 2015-2020, but now the effort is stopped due to the ongoing war in Ukraine. +There are plans to restart it as online community. + +[GitHub and links](https://github.com/jenkins-ru), +[Draft website](https://jenkins-ru.github.io/) + ## Former projects ### Keptn I joined Keptn in mid-2021 as a contributor. -Keptn is an event-driven orchestration server for cloud native applications. -I thought it's a very promising project, and I was happy to participate. +Keptn v1 was an event-driven orchestration and automation server for cloud native applications. +I thought it's a very promising project, and I was happy to participate as a community manager. +In June 2022 the project was promoted to the Incubating status in the CNCF. +In December 2023, Keptn v1 was EOLed and officially replaced with the +Keptn Lifecycle Toolkit. + [More about Keptn](https://keptn.sh/) + +### LibreCores + +LibreCores was a community hub for open-source digital hardware, +created under the umbrella of the [Free and Open Source Silicon Foundation](https://fossi-foundation.org/). +In this project I worked on LibreCores CI - a continuous integration SaaS solution, +powered by Jenkins. +The project was discontinued. + +[GitHub](https://github.com/librecores) diff --git a/_docs/speaking/archive/2015-06-23-jenkins-based-ci-for-hw-sw-projects.md b/_docs/speaking/archive/2015-06-23-jenkins-based-ci-for-hw-sw-projects.md new file mode 100644 index 0000000..9ddad3d --- /dev/null +++ b/_docs/speaking/archive/2015-06-23-jenkins-based-ci-for-hw-sw-projects.md @@ -0,0 +1,22 @@ +--- +title: "Jenkins-Based Continuous Integration for Heterogeneous Hardware/Software Projects" +layout: talk +category: talks +headerImage: false +date: 2015-06-23 +lastPresented: + title: Jenkins User Conference, London +tag: +- jenkins +- hardware +- embedded +author: oleg_nenashev +slideSource: speakerdeck +speakerdeckId: 0e8b573ef5d84ec1abaf664ca6d791b8 +--- + +This talk addresses Jenkins-based continuous integration (CI) in the area of embedded systems, +which include both hardware and software components. +It provides an overview of common automation cases, challenges and their solutions based on Jenkins CI services. +The specifics of Jenkins usage in the hardware area +(available plugins and workarounds, environment and desired high availability features) is also covered. diff --git a/_docs/speaking/archive/2016-09-18-jw-hackathon-external-build-logging.md b/_docs/speaking/archive/2016-09-18-jw-hackathon-external-build-logging.md new file mode 100644 index 0000000..70135e5 --- /dev/null +++ b/_docs/speaking/archive/2016-09-18-jw-hackathon-external-build-logging.md @@ -0,0 +1,27 @@ +--- +title: "External Build Logging in Jenkins. Prototype Demo" +layout: talk +category: talks +headerImage: false +date: 2016-09-18 +lastPresented: + title: Jenkins World 2016 Hackathon +tag: +- jenkins +author: oleg_nenashev +slideSource: speakerdeck +speakerdeckId: c4f9820a036c48e8b2f24e8aebe751f8 +links: +- title: Design draft + url: https://docs.google.com/document/d/1_bquSeA_lC7zJhQoWhxlSKJAg6b8duNbyQ15zCz-e4Y/edit +- title: Jenkins Core patch + url: https://github.com/oleg-nenashev/jenkins/tree/jw-hackaton-external-logging +- title: Logstash Plugin patch + url: https://github.com/oleg-nenashev/logstash-plugin/tree/jw-hackaton-remote-logging +--- + +This presentation summarizes results of our project from the Jenkins World 2016 hackaton. +The prototype implements reporting of build logs to Logstash/Elasticsearch instead of the system disk +and their further visualization within the Jenkins Web UI. + +The approach allows to reduce network and IO load on Jenkins master and thus avoid performance bottlenecks on large-scale instances. diff --git a/_docs/speaking/archive/2017-04-05-jenkins-pipeline-at-scale-building-framework.md b/_docs/speaking/archive/2017-04-05-jenkins-pipeline-at-scale-building-framework.md new file mode 100644 index 0000000..027b559 --- /dev/null +++ b/_docs/speaking/archive/2017-04-05-jenkins-pipeline-at-scale-building-framework.md @@ -0,0 +1,24 @@ +--- +title: "Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration" +layout: talk +category: talks +headerImage: false +date: 2017-04-05 +lastPresented: + title: CloudBees | Jenkins Automotive and Embedded Day 2017 + url: https://www.cloudbees.com/event/cloudbees-jenkins-automotive-and-embedded-day +tag: +- jenkins +- pipeline +- embedded +author: oleg_nenashev +slideSource: slideshare +slideshareId: 6KSnd8G1iw6eFK +slideshareName: jenkins-pipeline-scale-building-automation-frameworks-for-systems-integration +--- + +This is a follow-up presentation to my talk at +[CloudBees | Jenkins Automotive and Embedded Day 2016](https://www.cloudbees.com/event/cloudbees-jenkins-automotive-and-embedded-day), +where I was presenting Pipeline usage strategies for use-cases in the Embedded area. + +In this presentation I talk about Jenkins Pipeline features for automation frameworks and talk about lessons learned in several project. diff --git a/_docs/speaking/archive/2017-06-01-troubleshooting-remoting-issues.md b/_docs/speaking/archive/2017-06-01-troubleshooting-remoting-issues.md new file mode 100644 index 0000000..ee88b46 --- /dev/null +++ b/_docs/speaking/archive/2017-06-01-troubleshooting-remoting-issues.md @@ -0,0 +1,25 @@ +--- +title: "Jenkins Remoting. Dealing with agent connectivity issues" +layout: talk +category: talks +headerImage: false +date: 2017-06-01 +lastPresented: + title: Day of Jenkins, Oslo + url: https://www.code-conf.com/doj/doj-osl/ +tag: +- jenkins +- remoting +author: oleg_nenashev +slideSource: speakerdeck +speakerdeckId: 0e7cd3cc33ba495da83a13f02e3ed810 +--- + +Welcome to the Dark side of Jenkins... + +Almost all agent types in Jenkins use the Remoting library to communicate with the master, +including JNLP and SSH agents. +Although Jenkins’ ability to run tasks on multiple hosts is one of its success factors, +agent connection stability is known to be a major pain point in large-scale installations. +In this workshop, The talk is about remoting internals, how to diagnose issues, +how to configure Jenkins and underlying infrastructure, and the future of this layer in Jenkins. diff --git a/_docs/speaking/archive/2017-08-30-developing-jenkins-pipelines-locally.md b/_docs/speaking/archive/2017-08-30-developing-jenkins-pipelines-locally.md new file mode 100644 index 0000000..f917757 --- /dev/null +++ b/_docs/speaking/archive/2017-08-30-developing-jenkins-pipelines-locally.md @@ -0,0 +1,27 @@ +--- +title: "How to develop your Jenkins Pipeline locally?" +layout: talk +category: talks +headerImage: false +date: 2017-08-30 +tag: +- jenkins +- pipeline +- docker +author: oleg_nenashev +slideSource: speakerdeck +speakerdeckId: 55b164c3d67d407894052e1cf08750f0 +links: +- title: Jenkins Config as Code Demo + url: https://github.com/oleg-nenashev/demo-jenkins-config-as-code +- title: Jenkins Pipeline Library + url: https://github.com/jenkins-infra/pipeline-library/ +video: + source: youtube + youtubeId: aoXjHcHz1KA +--- + +If you have ever tried developing Pipeline Libraries in Jenkins, +you may have noticed how long it takes to deploy a new version to server to discover just another syntax error. +I will show how to edit and test Pipeline libraries locally before committing to the repository +(with Configuration-as-Code and Docker). diff --git a/_docs/speaking/archive/2017-09-09-state-of-librecores-ci.md b/_docs/speaking/archive/2017-09-09-state-of-librecores-ci.md new file mode 100644 index 0000000..5d57f59 --- /dev/null +++ b/_docs/speaking/archive/2017-09-09-state-of-librecores-ci.md @@ -0,0 +1,26 @@ +--- +title: "State of LibreCores CI" +layout: talk +category: talks +headerImage: false +date: 2017-09-09 +lastPresented: + title: ORCONF 2017 + url: https://orconf.org/2017/ +tag: +- librecores +author: oleg_nenashev +slideSource: speakerdeck +speakerdeckId: e1df677be54245e4ad610fed240e9c2d +video: + source: youtube + youtubeId: FX7_6d5yAg4 +--- + +At [ORCONF 2016](https://orconf.org/2017/) we announced the work on [LibreCores CI](https://www.librecores.org/static/librecores-ci) - +a continuous integration service for open-source Hardware projects. +During the last year we made some progress on this front, +and this presentation reflects the current progress on infrastructure and development tools. + +This talk has been conducted together with [Stefan Wallentowitz](https://github.com/wallento) +who is one of LibreCores contributors. diff --git a/_docs/speaking/archive/2017-11-06-managing-test-infrastructures-with-docker-and-jenkins.md b/_docs/speaking/archive/2017-11-06-managing-test-infrastructures-with-docker-and-jenkins.md new file mode 100644 index 0000000..f146fd4 --- /dev/null +++ b/_docs/speaking/archive/2017-11-06-managing-test-infrastructures-with-docker-and-jenkins.md @@ -0,0 +1,29 @@ +--- +title: "Managing Embedded Systems test infrastructures with Docker and Jenkins" +layout: talk +category: talks +headerImage: false +date: 2017-11-06 +lastPresented: + title: Embedded Conference Scandinavia 2017 + url: http://www.embeddedconference.se/app/attendee/default.asp?PageId=57726&MenuItemId=54357&parent=54348&ProjectId=9774 +tag: +- jenkins +- docker +author: oleg_nenashev +slideSource: external +slidesUrl: https://pages.cloudbees.com/ECS2017/Oleg_Nenashev +--- + +Virtualization and Containerization are one of the hottest areas in the test automation of software systems. +Such approaches simplify management of test environments, reduce costs and improve reproducibility of tests. +Docker is one of the popular container platforms in the area. + +Are such approaches applicable to the Embedded Systems area? +Container technologies have limitations, especially when it comes to tests involving hardware-in-the-loop (HWIL) in the loop or drivers. +In test automation flows it is important to know Docker limitations to properly combine it with other approaches. + +This talk focuses on Docker usage specifics in simulation-based and HWIL test automation with Docker and automation servers like Jenkins. +The talk includes overview of Docker advantages and disadvantages, and provides examples from real-world projects. +Main takeaways from the talk are the recommendations when and how to use Docker in Embedded Systems testing. +And how to migrate the automation flows to such new approaches. diff --git a/_docs/speaking/archive/2017-11-28-managing_jenkins_security.md b/_docs/speaking/archive/2017-11-28-managing_jenkins_security.md new file mode 100644 index 0000000..5ea8570 --- /dev/null +++ b/_docs/speaking/archive/2017-11-28-managing_jenkins_security.md @@ -0,0 +1,20 @@ +--- +title: "Managing Jenkins Security" +layout: talk +category: talks +headerImage: false +date: 2017-11-28 +tag: +- jenkins +- security +author: oleg_nenashev +slideSource: speakerdeck +speakerdeckId: 1d49a2ab201f46dfb09dd495358580c2 +--- + +In this presentation you can find introduction to Jenkins security and overview of best practices +of administering Jenkins instances at scale. + + +There is also a short overview of the [Ownership-based Security engine](https://github.com/jenkinsci/ownership-plugin/blob/master/doc/OwnershipBasedSecurity.md) +which has been developed by me in order to manage Jenkins instances with hundreds of active users. diff --git a/_docs/speaking/archive/2018-03-07-jep-200.md b/_docs/speaking/archive/2018-03-07-jep-200.md new file mode 100644 index 0000000..4d4d8ae --- /dev/null +++ b/_docs/speaking/archive/2018-03-07-jep-200.md @@ -0,0 +1,24 @@ +--- +title: "Jenkins JEP-200: Enforcing class deserialization whitelists" +layout: talk +category: talks +headerImage: false +date: 2018-03-07 +tag: +- jenkins +- security +author: oleg_nenashev +slideSource: speakerdeck +speakerdeckId: f2b7e049ec46424b98ec4f0b58fd33bf +video: + source: youtube + youtubeId: Vfnc9t1RuYA +--- + +This presentation provides heads-up about the incoming release of +[Jenkins JEP-200](https://github.com/jenkinsci/jep/blob/master/jep/200/README.adoc) +"Switch Remoting/XStream blacklist to whitelist". +The change has landed in Jenkins LTS 2.107.1. + +Target audience: Jenkins administrators and plugin maintainers. +What to expect from JEP-200? How to upgrade? How to test changes? And how to verify your plugins?