gpt4 book ai didi

jenkins - Pylint 与作为代理在动态 kubernetes pod 上运行的 Jenkins 构建的集成

转载 作者:行者123 更新时间:2023-12-04 13:24:06 24 4
gpt4 key购买 nike

我们在 Google Kubernetes Engine 上有一个 Jenkins 设置,使用动态 kubernetes pod 作为构建代理。我想将 Pylint 集成为构建步骤。在 kubernetes pod 上运行的 Python 版本是 2.7.16。知道如何安装 Pylint 并将其集成到 Jenkins 构建中吗?
编辑:
Jenkins 在 Google Kubernetes Engine 集群上运行。
enter image description here
Kubernetes Cloud 在 Jenkins 中配置如下:
enter image description here
安装的插件列表如下:

Analysis Model API Plugin
Ant Plugin
Apache HttpComponents Client 4.x API Plugin
Bundles Apache HttpComponents Client 4.x and allows it to be used by Jenkins plugins.
Authentication Tokens API Plugin
Bootstrap 4 API Plugin
Bootstrap 5 API Plugin
bouncycastle API Plugin
Branch API Plugin
Caffeine API Plugin
Checks API plugin
Command Agent Launcher Plugin
Credentials Binding Plugin
Credentials Plugin
DataTables.net API Plugin
Display URL API
Docker API Plugin
Docker Commons Plugin
Docker Pipeline
Docker plugin
Durable Task Plugin
ECharts API Plugin
Provides ECharts for Jenkins plugins.
Folders Plugin
Font Awesome API Plugin
Forensics API Plugin
Git
Git client plugin
GIT server Plugin
GitHub API Plugin
GitHub plugin
Google Authenticated Source plugin
Google Cloud Storage plugin
Google Compute Engine Plugin
Google Kubernetes Engine Plugin
Google Metadata plugin
Google OAuth Credentials plugin
Jackson 2 API Plugin
JavaScript GUI Lib: ACE Editor bundle plugin
JavaScript GUI Lib: Handlebars bundle plugin
JavaScript GUI Lib: jQuery bundles (jQuery and jQuery UI) plugin
JavaScript GUI Lib: Moment.js bundle plugin
JQuery3 API Plugin
JSch dependency plugin
JUnit Plugin
Kubernetes Client API Plugin
Kubernetes Credentials Plugin
Kubernetes plugin
LDAP Plugin
Lockable Resources plugin
Mailer Plugin
Matrix Project Plugin
Metrics Plugin
Monitoring
OAuth Credentials plugin
OkHttp
Oracle Java SE Development Kit Installer Plugin
OWASP Markup Formatter Plugin
Pipeline
Pipeline Graph Analysis Plugin
Pipeline: API
Pipeline: Basic Steps
Pipeline: Build Step
Pipeline: Declarative
Pipeline: Declarative Extension Points API
Pipeline: Groovy
Pipeline: Input Step
Pipeline: Job
Pipeline: Milestone Step
Pipeline: Model API
Pipeline: Multibranch
Pipeline: Nodes and Processes
Pipeline: REST API Plugin
Pipeline: SCM Step
Pipeline: Shared Groovy Libraries
Pipeline: Stage Step
Pipeline: Stage Tags Metadata
Pipeline: Stage View Plugin
Pipeline: Step API
Pipeline: Supporting APIs
Plain Credentials Plugin
Plugin Utilities API Plugin
Popper.js 2 API Plugin
Popper.js API Plugin
SCM API Plugin
Script Security Plugin
Snakeyaml API Plugin
SSH Agent Plugin
SSH Build Agents plugin
SSH Credentials Plugin
SSH plugin
SSH server
Structs Plugin
Token Macro Plugin
Trilead API Plugin
Variant Plugin
Warnings Next Generation Plugin
Jankins 版本为 Jenkins 2.303.2,所有插件均为最新版本。

最佳答案

我认为您可能可以通过向 pod 模板添加一个方便的容器来实现所需的行为:此容器将包含必要的 Pylint 依赖项,并且将与 pod 中的默认 Jenkins 代理镜像一起使用。
正如您在屏幕截图中看到的,您可以在 Jenkins Web 控制台中配置 pod 模板和 Kubernetes 时添加此容器。
此外,您可以在定义管道时提供必要的信息。例如,考虑 Jenkins Kubernetes plugin documentation 中提供的示例。 :

podTemplate(containers: [
containerTemplate(name: 'maven', image: 'maven:3.8.1-jdk-8', command: 'sleep', args: '99d'),
containerTemplate(name: 'golang', image: 'golang:1.16.5', command: 'sleep', args: '99d')
]) {

node(POD_LABEL) {
stage('Get a Maven project') {
git 'https://github.com/jenkinsci/kubernetes-plugin.git'
container('maven') {
stage('Build a Maven project') {
sh 'mvn -B -ntp clean install'
}
}
}

stage('Get a Golang project') {
git url: 'https://github.com/hashicorp/terraform.git', branch: 'main'
container('golang') {
stage('Build a Go project') {
sh '''
mkdir -p /go/src/github.com/hashicorp
ln -s `pwd` /go/src/github.com/hashicorp/terraform
cd /go/src/github.com/hashicorp/terraform && make
'''
}
}
}

}
}
请注意所需容器的定义以及每个容器在管道中的使用方式。
您可以查看 additional examples在插件 Github 存储库中。
This Jenkins blog post , 也是关于如何使用这些自定义容器的大量信息。
对于您的 Pylint 容器模板,您可以提供自己的图像,尽管有 different ones already available in Docker hub , 例如。
我不是 Pylint 使用方面的专家,但我遇到了以下相关资源:
  • Declarative Jenkins pipeline syntax for pylint or flake8
  • Jenkins pipeline - skip next stage on conditional failure of pylint
  • Use PyLint on Jenkins with Warnings Plugin and Pipeline
  • Is there any Jenkins plugin for pylint results?
  • Jenkins and Python
  • Jenkins Python template

  • 我希望其中一些对您的管道定义有所帮助。

    关于jenkins - Pylint 与作为代理在动态 kubernetes pod 上运行的 Jenkins 构建的集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69736793/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com