本页面将指导您配置 Jenkins 以存储构建的 Maven 在 Artifact Registry 代码库中创建软件包
准备工作
如果目标代码库不存在,请创建新代码库。
配置代码库的访问权限
为 Jenkins 创建一个专用服务账号,以便与 Artifact Registry 配合使用。
运行以下命令以创建一个名为
jenkins-sa
的服务账号:gcloud iam service-accounts create jenkins-sa
上述命令将创建一个名为 jenkins-sa@PROJECT.iam.gserviceaccount.com的服务账号,其中 PROJECT 是您的项目 ID。
在包含代码库的项目中,将 Artifact Registry Writer 角色授予您创建的 Jenkins 服务账号。您可以为项目中的所有代码库授予该角色,也可以为服务账号需要访问的特定代码库授予该角色。
如需详细了解权限以及如何按角色授予访问权限,请参阅配置访问权限控制。
设置 GKE 集群
设置新的 Google Kubernetes Engine 集群或节点池时,请使用您为 Jenkins 创建的服务账号。
控制台
如需使用 Google Cloud 控制台创建集群,请执行以下步骤:
访问 Google Cloud 控制台中的 Artifact Registry 菜单。
点击创建集群。
根据需要配置集群。先不要点击创建。
在默认节点池中点击更多选项。
在安全性部分中,选择您创建的 Jenkins 服务账号。
点击保存以退出叠加。
点击创建。
gcloud
使用以下任一命令使用 Jenkins 服务账号创建集群。在这些命令中,PROJECT 是您的项目 ID。
如需使用服务账号创建集群,请运行以下命令。
gcloud container clusters create example-cluster --service-account=jenkins-sa@PROJECT.iam.gserviceaccount.com
要在现有集群中创建节点池,请运行以下命令:
gcloud container node-pools create example-pool --service-account=jenkins-sa@PROJECT.iam.gserviceaccount.com
如需详细了解该命令,请参阅 gcloud container clusters create 文档。
在 GKE 上设置 Jenkins
按照教程操作以在 GKE 上设置 Jenkins。使用您在上一部分中创建的集群。
在 Jenkins 中,将 GKE 插件更新到最新版本。点击管理 Jenkins > 管理插件 > 更新。
设置 Maven 项目
为 Jenkins 文档 GitHub 代码库中的示例 Maven 项目创建分支。
克隆分支代码库。
git clone git@github.com:USER_NAME/simple-java-maven-app.git
在 Jenkins 界面中设置新的流水线。
- 点击新建内容。
- 选择流水线。
- 设置流水线名称,然后点击确定。
在常规标签页的“流水线”部分中配置以下选项:
- 选择 SCM 中的流水线脚本。
- 在 SCM 下拉列表中,选择 Git,然后指定用于连接到 GitHub 代码库的网址和凭据。
点击保存。
配置与代码库的连接
将 Jenkins 配置为使用代码库和凭据连接到代码库。
将您的代码库添加到 Maven
pom.xml
。使用以下命令输出要添加的代码段。gcloud artifacts print-settings mvn [--project=PROJECT] \ [--repository=REPOSITORY] [--location=LOCATION]
其中
创建一个 YAML 文件作为 Jenkins 代理的 Pod 模板。
mkdir jenkins cat > jenkins/maven-pod.yaml << EOF apiVersion: v1 kind: Pod spec: containers: - name: maven image: maven:3.3.9-jdk-8-alpine command: ['cat'] tty: true EOF
修改文件
Jenkinsfile
。pipeline { agent none stages { stage('Deploy') { steps { agent { kubernetes { label 'mavenpod' yamlFile 'jenkins/maven-pod.yaml' } } container('maven') { sh "mvn -B clean deploy" } } } } }
启动构建
推送您对 GitHub 项目所做的更改。
git add . && git commit -m "Configure my Jenkins pipeline" && git push
在 Jenkins 界面中,为示例 Maven 项目中的应用启动新构建。
构建成功完成后,工件会添加到 您创建的 Artifact Registry Java 软件包代码库。
运行以下命令可列出代码库中的软件包:
gcloud artifacts packages list --repository=mvn-jenkins --location=LOCATION
输出类似于以下示例:
Listing items under project {YOUR_PROJECT}, repository mvn-jenkins.
PACKAGE CREATE_TIME UPDATE_TIME
com.mycompany.app:my-app 2019-06-25T17:09:44 2019-06-25T17:09:44