Como integrar com o Jenkins

Nesta página, você aprende a configurar o 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

  1. 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.

  2. No projeto que contém o repositório, conceda o papel de Gravador do Artifact Registry à conta de serviço do Jenkins que você criou. É 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:

  1. Acesse o menu do Artifact Registry no Console do Cloud.

    Acesse o menu do Artifact Registry

  2. Clique em Criar cluster.

  3. Configure o cluster como quiser. Não clique em Criar ainda.

  4. Clique em Mais opções no pool de nós padrão.

  5. Na seção Segurança, selecione a conta de serviço do Jenkins criada.

  6. Clique em Salvar para sair da sobreposição.

  7. 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

  1. Siga o tutorial para configurar o Jenkins no GKE. Use o cluster que você criou na seção anterior.

  2. 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

  1. Bifurque o projeto Maven de amostra no repositório do GitHub da documentação do Jenkins.

  2. Clone o repositório bifurcado.

    git clone git@github.com:USER_NAME/simple-java-maven-app.git
    
  3. Configure um novo pipeline na interface do Jenkins.

    1. Clique em Novo item.
    2. Selecione Pipeline.
    3. Defina um nome para o pipeline e clique em OK.
  4. 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.

    Captura de tela das configurações do pipeline

  5. 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.

  1. 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.
  2. 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
    
  3. 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

  1. Envie as alterações feitas para o projeto do GitHub.

    git add . && git commit -m "Configure my Jenkins pipeline" && git push
    
  2. Na interface do Jenkins, inicie uma nova compilação do aplicativo no projeto Maven de amostra.

Quando a criação for concluída com êxito, os artefatos serã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