Screenshot Automation for Jenkins Docs

Project goal: To automate screenshot capture process for Jenkins docs

Skills to study/improve: Web Browser Automation, Image Comparison

NOTE: This idea is published as a draft under active discussion, but it is confirmed in principle. It is FINE to apply to it. The scope and the suggested implementation may change significantly before the final version is published. Sections like quickstart guide and newbie-friendly issues may be also missing. As a student, you are welcome to request additional information and to join the discussions using channels linked on this page.

Details

Background

  • Browser automation is a known thing and is an interesting idea to explore for the Jenkins project

  • Basic idea is to convert the steps from a human-readable format to a set of computer operations

  • This idea is relatively light-weight and is expected to require no more than a few months' time to complete

  • Could be in almost any language, it is a separate dev tool

Project details

  • May be extended to render a series of screenshots assembled as gif or mp4

  • How would we define the steps needed?

    • A YAML format to describe the steps

    • Capybara in Ruby expresses UI automation in English phrasing

  • How to reduce images to the relevant portion could also be considered

    • Focusing on an element is a known Javascript technique

    • Reducing image size is a more complicated procedure, but feasible

Newbie-friendly issues

Any relevant issue to acquire the GSoC contributor with the way documentation is handled in the Jenkins ecosystem, especially the ones in the jenkins.io repo.

Tools available in this space

  • Selenium (for web browser automation)

  • Capybara (for web browser automation)

  • Puppeteer (for webdriver web browser automation)

  • Cypress (for webdriver web browser automation)

  • Zika (for image comparison)

Skills to improve/study

  • Web browser automation

  • Automatic image comparison

Project Difficulty Level

Beginner to Intermediate

Project Size

175 hours

Expected outcomes

New tool to maintain documentation screenshots

Documentation screenshots will be updated automatically based on steps defined as code. The steps will be a small domain-specific language that describe common Jenkins UI operations in a way that documentation writers understand.

Potential Mentors

Project Links

Organization Links

> Go back to other GSoC 2022 project ideas