Recentemente, estive trabalhando em um projeto interessante, um provedor de recursos do wasmCloud para o Couchbase. Estamos construindo isso de forma aberta com o pessoal da Cosmônico. Você pode verificar o código em nosso repositório.

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

Para criar uma ação, você pode clicar na guia Ação do seu repositório ou adicionar um arquivo em .github/workflows. Há muitas 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. Portanto, aqui escolherei apenas 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 tal. Felizmente, o GitHub pensou em tudo e nos oferece uma maneira de configurar segredos ou variáveis de ambiente por repositório ou organização. Se você acessar Settings/Secrets and variables/actions (Configurações/Segredos e variáveis/ações), 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 quero usar
    • COUCHBASE_CONNECTION_STRING - A string de conexão completa do Couchbase, conforme fornecido no conectar Guia Capella, por exemplo
    • NOME DE USUÁRIO DO COUCHBASE - O nome de usuário usado para se conectar ao cluster
    • COUCHBASE_PASSWORD - A senha usada para se conectar ao cluster

Agora chegou a hora de escrever o teste. Tudo o que quero fazer é ter certeza de que tenho uma conexão funcional com um cluster, para mostrar aos meus colaboradores como as variáveis de segredos/env podem ser usadas. Uma maneira simples de testar uma conexão é usar a função Shell do Couchbase também conhecido como cbsh. Ele pode ser instalado facilmente no Ubuntu. Tudo o que você precisa é fazer o download e descompactá-lo. Isso pode ser feito em algumas etapas:

A partir daí, o shell está disponível simplesmente executando ./cbsh. Observe aqui que o em execução nos dá o contêiner a ser usado para executar a ação, casca é definido como bash e env torna os segredos disponíveis como variáveis de ambiente.

Como esse shell é baseado em nushell e uma senha será solicitada, mas não pude canalizá-la diretamente após a invocação dessa forma:

Como isso não funciona, tive que usar um cbsh em vez disso. E, infelizmente, a sintaxe é um pouco complicada para a formatação de texto com várias linhas e tubulações. Aqui, estou criando uma nova variável chamada CONFIGque contém os valores das variáveis de ambiente, colocando o resultado em $GITHUB_ENVo que me permite passá-lo para a próxima etapa, que o repete no arquivo de configuração:

Quando o arquivo de configuração estiver pronto, cbsh pode ser invocado dessa forma:

O exemplo completo está disponível em nosso repositório como um arquivo YML. E é assim que uma corrida bem-sucedida se parece:

Pronto, agora você já sabe como se conectar ao Couchbase em um GitHub Action. E você também se familiarizou com o Couchbase Shell - experimente fazer  mais coisas divertidas como migrar todas as coleções, exceto a Padrão coleção:

E temos mais recursos compatíveis com IA chegando ao Couchbase Shell, fique ligado!

Referências

Autor

Postado por Laurent Doguin

Laurent é um nerd metaleiro que mora em Paris. Em sua maior parte, ele escreve código em Java e texto estruturado em AsciiDoc, e frequentemente fala sobre dados, programação reativa e outras coisas que estão na moda. Ele também foi Developer Advocate do Clever Cloud e do Nuxeo, onde dedicou seu tempo e experiência para ajudar essas comunidades a crescerem e se fortalecerem. Atualmente, ele dirige as Relações com Desenvolvedores na Couchbase.

Deixar uma resposta