jenkins 自定义描述信息

2023-10-22 09:11:02 浏览数 (3)

我们在使用 Jenkins 构建的时候,有时候需要提供一个构建好的文件包的下载地址给协作者下载使用。而不是每次都点击进去 workspace 的指定位置下载。

那么,配合 Jenkinsfile,我们需要怎么做呢?

我们的 Demo 环境:

  • MacBook Air (M1, 2020)
  • dist: 一份构建好的 dist 包(这个可以随便什么都行)
  • Jenkins: 会频繁使用到其构建项目中的 Replay 功能进行调试
  • 测试服务: 一个测试服务进行 SCP 的文件传输

自定义描述信息

我们可以通过使用 currentBuild.description 进行自定义描述。比如下面的简单使用:

代码语言:javascript复制
# jenkinsfile
stage("Custom Description") {
  agent any;
  steps {
    script {
      currentBuild.description = "My custom build description"
    }
  }
}

构建成功后,我们可以看到构建的描述信息展示:

文件下载

既然,我们可以自定了文件的描述信息,那么我们可以参考 前端文件下载(一) 文章,通过 a 标签进行文件的下载。

  1. 生成压缩文件

我们将 dist 文件进行压缩。

代码语言:javascript复制
# jenkinsfile
stage("Zip Dist File") {
  agent any;
  steps {
    script {
       # 压缩
       sh 'tar -czf worksapce.tar.gz dist/*'
       # 将 tar 文件缓存起来
       stash includes: 'workspace.tar.gz', name: 'workspace'
    }
  }
}

tar -czf worksapce.tar.gz dist/* 用于创建一个名称为 worksapce.tar.gz 的归档文件,其中包含了 dist 目录下的所有文件和子目录。

  • c 表示创建新的归档文件
  • z 表示使 gzip 进行压缩
  • f 表示指定文件名
  • 指定下载的地址

上面我们生成了压缩的文件,但是该压缩文件是在文件系统中的工作空间的绝对路径上(即 env.WORKSPACE),比如 /var/jenkins_home/workspace/demo_project/worksapce.tar.gz。如果我们直接引用该地址,肯定是行不通的。

那么,我们需要怎么获取到压缩包的地址呢?

下面有有两种方案的思考

1 人点赞