我想通过 python 脚本在 jenkins 中构建一个作业。我对 python 完全陌生。我正在使用 python-jenkins 中的以下方法。我的 jenkins url 是 https。
server = jenkins.Jenkins(ci_jenkins_url, username=username, password=token)
Run Code Online (Sandbox Code Playgroud)
我得到了
SSLError: HTTPSConnectionPool(host='{myjenkinsur}', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])")))
Run Code Online (Sandbox Code Playgroud)
如何通过 SSL 进行连接?
我需要在我的詹金斯管道之一中使用昨天的日期。
有没有办法在詹金斯管道脚本中打印昨天的日期。
def date = new date()
println date // this is printing the current date
def date1 = date - 1 or date.minus(1)
println date 1 // This is also printing the current date.
Run Code Online (Sandbox Code Playgroud)
有没有办法在詹金斯管道脚本中获取昨天的日期。
我正在从 Jenkins 管道向通道发送松弛通知,我已经安装了 Jenkins 松弛插件https://plugins.jenkins.io/slack并配置了 Jenkins 松弛应用程序以在构建失败或成功时向通道发送通知。我不想只向 slack 通道发送失败消息,而是想通知用户构建失败。例如:@user error in deploying following project
我从 jenkins slack 插件中引用了这个步骤
def userIds = slackUserIdsFromCommitters()
def userIdsString = userIds.collect { "<@$it>" }.join(' ')
post {
// Send the build result to slack channel
success {
slackSend (color:'good', message: "<@$userIds>Successfully deployed")
}
failure {
slackSend (color:'danger', message: "<@$userIds>Error in build ${env.JOB_NAME}")
}
}
Run Code Online (Sandbox Code Playgroud)
我得到$userIds变量的空值。
在 Jenkinsfile 中,我尝试通过设置 shell 脚本的 stdOut 来设置环境变量。该脚本包含一个返回 InstanceID 的 AWS 命令:
stage('Set InstanceID') {
steps {
script {
env.IID = sh (script: 'scripts/get-node-id.sh "${params.ENVIRONMENT}" "${params.NODE}"', returnStdout: true).trim()
}
}
}
Run Code Online (Sandbox Code Playgroud)
无论我做什么或使用多少个反斜杠来转义引号,都不起作用。我收到严重的替换错误。我也尝试过不加双引号。
如果我在 shell 脚本参数中进行硬编码,它就可以正常运行。
如果我想使用此处的参数值,如何使其工作?
我有以下 dockerfile:
FROM jenkins/jenkins:lts-alpine
USER root
RUN apk update
RUN apk add bash icu-libs krb5-libs libgcc libintl libssl1.1 libstdc++ zlib wget
RUN apk add libgdiplus --repository https://dl-3.alpinelinux.org/alpine/edge/testing/
USER jenkins
RUN wget https://dot.net/v1/dotnet-install.sh -O $HOME/dotnet-install.sh
RUN chmod +x $HOME/dotnet-install.sh
RUN $HOME/dotnet-install.sh -c 5.0
RUN dotnet --info
EXPOSE 2376 23676
Run Code Online (Sandbox Code Playgroud)
但是当我运行 docker-compose 时,它给了我:
Building jenkins
failed to get console mode for stdout: Invalid identifier.
[+] Building 64.6s (10/11)
[+] Building 64.7s (11/11) FINISHED
=> [internal] load build definition from jenkins.dockerfile 0.0s
=> …Run Code Online (Sandbox Code Playgroud) 这是我的 Jenkins EC2 配置:
我的 Jenkins 管道脚本中有并行阶段设置,它在不同的节点(AWS EC2 实例)上执行测试
例如
stage('E2E-PR') {
parallel {
stage('Cypress Tests 1') {
agent { label 'aws_slave_cypress' }
steps {
runE2eTests()
}
}
stage('Cypress Tests 2') {
agent { label 'aws_slave_cypress' }
steps {
runE2eTests()
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想重新使用从管道开始时使用的父节点生成的签出的存储库\生成的工作空间,而不是每个并行阶段都签出它自己的副本。
我遇到了一种使用顺序阶段和阶段内嵌套阶段来跨多个阶段共享工作空间的方法,我尝试如下
parallel {
stage('Cypress Tests') {
agent { label 'aws_slave_cypress' }
stages {
stage('Cypress 1') {
steps {
runE2eTests()
}
}
stage('Cypress 2') {
steps {
runE2eTests()
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我可以从 Jenkins 构建输出中看到,只有一个 aws 实例启动并用于我的两个嵌套阶段,这并没有给我带来并行性的好处。
我也遇到过 stash\unstash …
我有两个 Jenkinsfile 作为示例: A_Jenkinsfile 的内容是:
pipeline {
agent any
stages {
stage("first") {
steps {
script {
foo = "bar"
}
sh "echo ${foo}"
}
}
stage("two") {
steps {
sh "echo ${foo}"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
另外一个是B_Jenkinsfile,其内容是:
pipeline {
agent any
stages {
stage("first") {
steps {
script {
def foo = "bar"
}
sh "echo ${foo}"
}
}
stage("two") {
steps {
sh "echo ${foo}"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我构建它们时,B_Jenkinsfile 失败,A_Jenkinsfile 成功。
在脚本块的 Jenkinsfile 中使用 def 和不使用 def …
我想每天午夜 1 点配置 poll scm,除了周六和周日在詹金斯。有没有其他方法可以进行夜间构建
构建成功后如何向团队发送构建报告。
如何将单元测试用例集成到 jenkins 中
有没有人有使用身份验证和 Java Script 参数化开始 jenkins 工作的示例?
它就像一个 curl 帖子,但我不确定如何准确地做到这一点,而且我找不到任何传递用户名和令牌以及参数的示例。
jenkins ×10
.net-core ×1
amazon-ec2 ×1
docker ×1
dockerfile ×1
groovy ×1
javascript ×1
jenkins-api ×1
pipeline ×1
python ×1
ssl ×1