本頁面將逐步說明如何設定 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 寫入者角色授予您建立的 Jenkins 服務帳戶。 您可以為專案中的所有存放區授予角色,也可以為服務帳戶需要存取的特定存放區授予角色。
如要進一步瞭解權限,以及如何依角色授予存取權,請參閱「設定存取權控管」。
設定 GKE 叢集
設定新的 Google Kubernetes Engine 叢集或節點集區時,請使用您為 Jenkins 建立的服務帳戶。
控制台
如要使用 Google Cloud 控制台建立叢集,請執行下列步驟:
前往 Google Cloud 控制台的 GKE 選單。
點選「建立叢集」。
視需要設定叢集。請先不要點選 [Create] (建立)。
按一下預設節點集區的「更多選項」。
在「Security」(安全性) 區段中,選取您建立的 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 外掛程式更新至最新版本。 依序點選「Manage Jenkins」 >「Manage Plugins」 >「Updates」。
設定 Maven 專案
在 Jenkins 說明文件 GitHub 存放區中,建立範例 Maven 專案的分支。
複製已分支的存放區。
git clone git@github.com:USER_NAME/simple-java-maven-app.git
在 Jenkins 介面中設定新管道。
- 按一下「新增項目」。
- 選取「Pipeline」。
- 設定管道名稱,然後按一下「確定」。
在「General」(一般) 分頁中,設定「Pipeline」(管道) 區段中的下列選項:
- 選取「Pipeline script from SCM」(來自 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