Nesta página, orientamos você na configuração do Jenkins para armazenar pacotes Maven criados em um repositório do Artifact Registry.
Antes de começar
Se não existir um repositório de destino, crie um novo repositório.
Como configurar o acesso ao seu repositório
Crie uma conta de serviço dedicada para que o Jenkins use com o Artifact Registry.
Execute o seguinte comando para criar uma conta de serviço chamada
jenkins-sa
:gcloud iam service-accounts create jenkins-sa
Isso cria uma conta de serviço chamada jenkins-sa@PROJECT.iam.gserviceaccount.com, em que PROJECT é o ID do seu projeto.
No projeto que contém o repositório, conceda o papel Gravador do Artifact Registry à conta de serviço do Jenkins criada. É possível conceder o papel para todos os repositórios no projeto ou conceder o papel para os repositórios específicos que a conta de serviço precisa acessar.
Para detalhes sobre permissões e concessão de acesso por papel, consulte Como configurar o controle de acesso.
Como configurar um cluster do GKE
Ao configurar um novo cluster ou pool de nós do Google Kubernetes Engine, use a conta de serviço criada para o Jenkins usar.
Console
Para criar um cluster usando o Console do Google Cloud, siga estas etapas:
Acesse o menu do Artifact Registry no console do Google Cloud.
Clique em Criar cluster.
Configure o cluster como quiser. Não clique em Criar ainda.
Clique em Mais opções no pool de nós padrão.
Na seção Segurança, selecione a conta de serviço do Jenkins criada.
Clique em Salvar para sair da sobreposição.
Clique em Criar.
gcloud
Use um dos seguintes comandos para criar o cluster com a conta de serviço do Jenkins. Nos comandos, PROJECT é o ID do projeto.
Para criar um cluster com a conta de serviço, execute o comando.
gcloud container clusters create example-cluster --service-account=jenkins-sa@PROJECT.iam.gserviceaccount.com
Para criar um pool de nós em um cluster atual:
gcloud container node-pools create example-pool --service-account=jenkins-sa@PROJECT.iam.gserviceaccount.com
Consulte a documentação gcloud container clusters create para detalhes sobre o comando.
Como instalar o Jenkins no GKE
Siga o tutorial para configurar o Jenkins no GKE. Use o cluster que você criou na seção anterior.
No Jenkins, atualize o plug-in do GKE para a versão mais recente. Clique em Gerenciar o Jenkins > Gerenciar Plug-ins > Atualizações.
Como configurar um projeto Maven
Bifurque o projeto Maven de amostra no repositório do GitHub da documentação do Jenkins.
Clone o repositório bifurcado.
git clone git@github.com:USER_NAME/simple-java-maven-app.git
Configure um novo pipeline na interface do Jenkins.
- Clique em Novo item.
- Selecione Pipeline.
- Defina um nome para o pipeline e clique em OK.
Na guia Geral, configure as seguintes opções na seção Pipeline:
- Selecione Script de pipeline no SCM.
- Na lista suspensa do SCM, selecione Git e especifique o URL e as credenciais para se conectar ao seu repositório GitHub.
Clique em Save.
Como configurar a conexão ao repositório
Configure o Jenkins com o repositório e as credenciais para se conectar ao repositório.
Adicione seu repositório ao Maven
pom.xml
. Use o seguinte comando para imprimir um snippet a ser adicionado.gcloud artifacts print-settings mvn [--project=PROJECT] \ [--repository=REPOSITORY] [--location=LOCATION]
Onde
- PROJECT é o ID do projeto; Se essa sinalização for omitida, o projeto atual ou padrão será usado.
- REPOSITORY é o ID do repositório. Se você tiver configurado um repositório do Artifact Registry padrão, ele será usado quando essa sinalização for omitida no comando.
- LOCATION é o local regional ou multirregional do repositório.
Crie um arquivo YAML como o modelo de pod para os agentes do Jenkins.
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
Modifique o arquivo
Jenkinsfile
.pipeline { agent none stages { stage('Deploy') { steps { agent { kubernetes { label 'mavenpod' yamlFile 'jenkins/maven-pod.yaml' } } container('maven') { sh "mvn -B clean deploy" } } } } }
Como iniciar uma compilação
Envie as alterações feitas para o projeto do GitHub.
git add . && git commit -m "Configure my Jenkins pipeline" && git push
Na interface do Jenkins, inicie uma nova compilação do aplicativo no projeto Maven de amostra.
Quando a compilação é concluída, os artefatos são adicionados ao repositório de pacotes Java do Artifact Registry que você criou.
Execute o comando a seguir para listar os pacotes no repositório:
gcloud artifacts packages list --repository=mvn-jenkins --location=LOCATION
A saída será assim:
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