我們在 Google Kubernetes Engine 上有一個 Jenkins 設定,使用動態 kubernetes pod 作為構建代理。我想將 Pylint 集成為構建步驟。在 kubernetes pod 上運行的 Python 版本是 2.7.16。知道如何安裝 Pylint 并將其集成到 Jenkins 構建中嗎?
編輯:
Jenkins 在 Google Kubernetes Engine 集群上運行。

Kubernetes Cloud 在 Jenkins 中配置如下:

安裝的插件串列如下:
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,所有插件均為最新版本。
uj5u.com熱心網友回復:
我認為您可能可以通過向 pod 模板添加一個方便的容器來實作所需的行為:此容器將包含必要的 Pylint 依賴項,并且將與 pod 中的默認 Jenkins 代理映像一起使用。
正如您在螢屏截圖中看到的,您可以在 Jenkins Web 控制臺中配置 pod 模板和 Kubernetes 時添加此容器。
此外,您可以在定義管道時提供必要的資訊。例如,考慮Jenkins Kubernetes 插件檔案中提供的示例:
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
'''
}
}
}
}
}
請注意所需容器的定義以及每個容器在管道中的使用方式。
您可以在插件 Github 存盤庫中查看其他示例。
這篇 Jenkins 博客文章也提供了大量有關如何使用這些自定義容器的資訊。
例如,對于您的 Pylint 容器模板,您可以提供自己的影像,盡管Docker hub 中已經有不同的影像可用。
我不是 Pylint 使用方面的專家,但我遇到了以下相關資源:
- pylint 或 flake8 的宣告性 Jenkins 管道語法
- Jenkins 管道 - 在 pylint 有條件失敗時跳過下一階段
- 在帶有警告插件和管道的 Jenkins 上使用 PyLint
- 是否有用于 pylint 結果的 Jenkins 插件?
- 詹金斯和 Python
- 詹金斯 Python 模板
我希望其中一些對您的管道定義有所幫助。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/348764.html
標籤:詹金斯 谷歌云平台 google-kubernetes-engine 派林特
下一篇:javaScript陣列和元素
