Conectores

Testando o Couchbase com GitHub Actions e CBSH

5 MIN DE LEITURA

Recentemente, tenho trabalhado em um projeto empolgante, um provedor de capacidade wasmCloud para o Couchbase. Estamos construindo isso de forma aberta com o pessoal incrível da Cosmonic. Você pode conferir o código em nosso repositório.

E logo no início de cada projeto surge o tópico do ciclo de vida de desenvolvimento e sua infraestrutura. Como executamos automaticamente os testes do nosso projeto envolvendo um Servidor Couchbase? O GitHub fornece Ações que nos permite executar código em vários momentos.

Para criar uma ação, você pode clicar na guia Action do seu repositório ou adicionar um arquivo em .github/workflows. Há várias maneiras diferentes de acionar a execução da ação. Como em cada git push. Eu só quero algo simples que garanta que meu cluster do Couchbase ainda esteja aqui e acessível por meio de segredos específicos ou variáveis de ambiente. Então aqui vou apenas escolher uma expressão cron básica. A ação será executada toda segunda-feira à meia-noite.

Agora, sobre segredos e variáveis de ambiente. É claro que alguns deles são, bem, segredos. E devem ser gerenciados como tais. Felizmente, o GitHub pensou em tudo e nos dá uma maneira de configurar segredos ou variáveis de ambiente por repositório ou organização. Se você for em Settings/Secrets and variables/actions, deverá ver a seguinte página:

Isso permite que você defina qualquer segredo ou variável de ambiente que possa precisar para suas ações, e muito mais. Aqui você pode ver que eu configurei:

  • COUCHBASE_BUCKET – O nome do Bucket que eu quero usar
  • COUCHBASE_CONNECTION_STRING – A string de conexão completa do Couchbase, conforme fornecida no conectar Aba Capella, por exemplo
  • COUCHBASE_USERNAME – O nome de usuário usado para conectar ao cluster
  • COUCHBASE_PASSWORD – A senha usada para conectar ao cluster

Agora chega o momento de escrever o teste. Tudo o que quero fazer é garantir que tenho uma conexão funcionando com um cluster, para mostrar aos meus colaboradores como os segredos/variáveis de ambiente podem ser usados. Uma maneira simples de testar uma conexão é usar o Shell do Couchbase também conhecido como cbsh. Ele pode ser instalado facilmente no Ubuntu. Tudo o que você precisa fazer é baixá-lo e descompactá-lo. Isso pode ser feito em poucas etapas:

A partir daí, o shell fica disponível simplesmente executando ./cbsh. Note aqui que o executa-em a opção nos indica qual container usar para executar a ação, concha está definido como bash e ambiente torna os segredos disponíveis como variáveis de ambiente.

Como este shell é baseado em nushell e uma senha será solicitada, eu não consegui passá-la diretamente após a invocação assim:

Como isso não funciona, eu tive que usar um cbsh em vez disso, o arquivo de configuração. E, infelizmente, a sintaxe é um pouco complicada para a formatação de texto multilinha e redirecionamento. Aqui, estou criando uma nova variável chamada CONFIGURAÇÃO, que contém os valores das variáveis de ambiente, colocando o resultado em $GITHUB_ENV, o que me permite passá-lo para a próxima etapa, que o ecoa no arquivo de configuração:

Once the config file is all set, cbsh can be invoked like so:

The complete example is available in our repository as a YML file. And this is what a successful run looks like:

So there you go, you now know how to connect to Couchbase in a GitHub Action. And you also got acquainted with Couchbase Shell – give it a try to do  more fun things like migrating all collections, except the _default collection:

And we have more AI-friendly features coming to Couchbase Shell, stay tuned!

References

Compartilhe este artigo

Autor

Laurent é um metaleiro CDF que mora em Paris. Ele escreve código principalmente em Java e texto estruturado em AsciiDoc, e frequentemente fala sobre dados, programação reativa e outras coisas cheias de jargões. Ele também é um ex-Developer Advocate da Clever Cloud e da Nuxeo, onde dedicou seu tempo e sua expertise para ajudar essas comunidades a crescerem maiores e mais fortes. Agora, ele lidera a área de Developer Relations na Couchbase.

Deixe um comentário

Leave database sprawl in the past

Every stack addition means another bill, and more to manage. Estimate how you could save in 2 minutes.