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.
|
1 2 3 4 |
nome: teste Couchbase Credencial ligado: agendar: – cron: ‘0 0 * * 1’ |
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:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
empregos: credencial_de_teste: executa–ligado: Ubuntu–mais recente nome: Teste aquele dado ambiente variável funciona etapas: concha: bash ambiente: COUCHBASE_CONNECTION_STRING: ${{ segredos.CONEXÃO_COUCHBASE_STRING }} COUCHBASE_USERNAME: ${{ segredos.COUCHBASE_NOME DE USUÁRIO }} COUCHBASE_PASSWORD: ${{ segredos.COUCHBASE_SENHA }} – correr: wget https://github.com/couchbaselabs/couchbase-shell/releases/download/v0.75.1/cbsh-x86_64-unknown-linux-gnu.tar.gz – correr: alcatrão –xvzf cbsh–x86_64–desconhecido–Linux–gnu.alcatrão.parabéns |
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:
|
1 |
eco $COUCHBASE_PASSWORD | ./cbsh —nome de usuário $COUCHBASE_USERNAME—string de conexão $COUCHBASE_CONNECTION_STRING |
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:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
– correr: | CONFIGURAÇÃO=$(gato << Fim do arquivo versão = 1 [[aglomerado]] identificador = “local” string de conexão = “$COUCHBASE_CONNECTION_STRING” nome de usuário = “$COUCHBASE_USERNAME” senha = “$COUCHBASE_PASSWORD” Fim do arquivo ) eco “CONFIG<<EOF” >> $GITHUB_AMBIENTE eco “$CONFIG” >> $GITHUB_AMBIENTE eco “EOF” >> $GITHUB_AMBIENTE – correr: eco “$CONFIG” >> configuração |
Once the config file is all set, cbsh can be invoked like so:
|
1 |
– correr: ./cbsh —configuração–dir . –c cb–ambiente |
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:
|
1 |
coleções —clusters “On-Prem-Cluster” —balde “travel-sample” | selecionar escopo coleção | onde $ele.escopo != “_default” | onde $ele.coleção != “_default” | each { |ele| coleções criar $ele.coleção —clusters “Capella-Cluster” —balde “travel-sample-import” —escopo $ele.escopo |
And we have more AI-friendly features coming to Couchbase Shell, stay tuned!

Deixe um comentário
Você precisa fazer o login para publicar um comentário.