Nesta página, orientamos você na configuração do Jenkins para armazenar pacotes Maven criados em um repositório do Artifact Registry.
O gerenciamento de pacotes está em Alfa. Ele só está disponível para usuários Alfa e pode não incluir todos os recursos disponíveis para o gerenciamento de contêineres. Para se inscrever no Alfa, preencha o formulário de inscrição.
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 de artefatos do Cloud Build à 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 Cloud, siga estas etapas:
Acesse o menu do Artifact Registry no Console do 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 com sucesso, os artefatos são adicionados ao repositório Maven 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