Jenkinsfile Runner Action for GitHub Actions

Goal: Implement a (near) feature-complete version of Jenkinsfile Runner Action for GitHub Actions

Status: Selected

Team

Details

Abstract

Jenkinsfile Runner Action for GitHub Actions provides the customized containerized environment and useful GitHub Actions for users to run the Jenkins pipeline inside GitHub Actions. It aims at applying Jenkins in the GitHub Actions which is a Function-as-a-Service context. This feature is based on the Jenkinsfile Runner, which is a command line tool for the Jenkins pipeline execution engine. The user can define the Jenkins pipeline environment by extending several Vanilla images and configuring the Jenkins Configuration-as-Code plugin.

Rationale

The Jenkins pipeline environment includes the Jenkins core war package and the Jenkinsfile Runner. All the dependencies are incorporated into the containers. As the GitHub Actions support using the predefined containers and building custom images, the containers - which include the Jenkins runtime - are able to start inside the GitHub Actions.

Implementation

Jenkinsfile Runner Action for GitHub Actions defines the dependencies in the prebuilt container and wraps the entrypoint in one GitHub Action so that the users can call the running environment and the related GitHub Action in their workflow definitions. The decoupling of environment declaration and Jenkinsfile Runner Action enables the users to utilize other useful GitHub Actions. This project will provide several vanilla images including necessary dependencies to run the Jenkins pipeline. Users can extend these images to set up their customized environment. What’s more, the user can install the plugins, which is enabled by Plugin Installation Manager Tool, and then configure Jenkins, which is enabled by Configuration-as-Code plugin.

Chat

We use the #gsoc-jenkinsfile-runner channel in the CDF Slack workspace.

Explanations about the CDF Slack (the invitation link is at the end of the paragraph).

Office hours

Links