{"id":16448,"date":"2024-10-15T09:21:41","date_gmt":"2024-10-15T16:21:41","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=16448"},"modified":"2024-10-18T12:14:47","modified_gmt":"2024-10-18T19:14:47","slug":"automate-couchbase-tests-github-actions","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/automate-couchbase-tests-github-actions\/","title":{"rendered":"Testar o Couchbase com o GitHub Actions e o CBSH"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">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<\/span>\u00a0<a href=\"https:\/\/cosmonic.com\/\"><span style=\"font-weight: 400;\">Cosm\u00f4nico<\/span><\/a><span style=\"font-weight: 400;\">. Voc\u00ea pode verificar o c\u00f3digo <a href=\"https:\/\/github.com\/couchbaselabs\/wasmcloud-provider-couchbase\">em nosso reposit\u00f3rio<\/a>.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">E no in\u00edcio de cada projeto surge o t\u00f3pico 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 href=\"https:\/\/docs.github.com\/en\/actions\">A\u00e7\u00f5es<\/a> que nos permite executar o c\u00f3digo em v\u00e1rios momentos.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Para criar uma a\u00e7\u00e3o, voc\u00ea pode clicar na guia A\u00e7\u00e3o do seu reposit\u00f3rio ou adicionar um arquivo em <\/span><i><span style=\"font-weight: 400;\"><code>.github\/workflows<\/code><\/span><\/i><span style=\"font-weight: 400;\">. H\u00e1 muitas maneiras diferentes de acionar a execu\u00e7\u00e3o da a\u00e7\u00e3o. Como em cada <\/span><i><span style=\"font-weight: 400;\"><code>git push<\/code><\/span><\/i><span style=\"font-weight: 400;\">. Eu s\u00f3 quero algo simples que garanta que meu cluster do Couchbase ainda esteja aqui e acess\u00edvel por meio de segredos espec\u00edficos ou vari\u00e1veis de ambiente. Portanto, aqui escolherei apenas uma express\u00e3o cron b\u00e1sica. A a\u00e7\u00e3o ser\u00e1 executada toda segunda-feira \u00e0 meia-noite.<\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">name: testar a credencial do Couchbase\r\non:\r\n  schedule:\r\n    - cron: '0 0 * * 1'<\/pre>\n<p><span style=\"font-weight: 400;\">Agora, sobre segredos e vari\u00e1veis de ambiente. \u00c9 claro que alguns deles s\u00e3o, bem, segredos. E devem ser gerenciados como tal. Felizmente, o GitHub pensou em tudo e nos oferece uma maneira de configurar segredos ou vari\u00e1veis de ambiente por reposit\u00f3rio ou organiza\u00e7\u00e3o. Se voc\u00ea acessar Settings\/Secrets and variables\/actions (Configura\u00e7\u00f5es\/Segredos e vari\u00e1veis\/a\u00e7\u00f5es), ver\u00e1 a seguinte p\u00e1gina:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16449\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/image1-5-1024x1008.png\" alt=\"\" width=\"900\" height=\"886\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/image1-5-1024x1008.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/image1-5-300x295.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/image1-5-768x756.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/image1-5-65x65.png 65w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/image1-5-50x50.png 50w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/image1-5.png 1245w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Isso permite que voc\u00ea defina qualquer segredo ou vari\u00e1vel de ambiente que possa precisar para suas a\u00e7\u00f5es e muito mais. Aqui voc\u00ea pode ver que eu configurei:<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>COUCHBASE_BUCKET<\/strong> - O nome do Bucket que quero usar<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>COUCHBASE_CONNECTION_STRING<\/strong> - A string de conex\u00e3o completa do Couchbase, conforme fornecido no <\/span><i><span style=\"font-weight: 400;\">conectar<\/span><\/i><span style=\"font-weight: 400;\"> Guia Capella, por exemplo<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>NOME DE USU\u00c1RIO DO COUCHBASE<\/strong> - O nome de usu\u00e1rio usado para se conectar ao cluster<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>COUCHBASE_PASSWORD<\/strong> - A senha usada para se conectar ao cluster<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Agora chegou a hora de escrever o teste. Tudo o que quero fazer \u00e9 ter certeza de que tenho uma conex\u00e3o funcional com um cluster, para mostrar aos meus colaboradores como as vari\u00e1veis de segredos\/env podem ser usadas. Uma maneira simples de testar uma conex\u00e3o \u00e9 usar a fun\u00e7\u00e3o<\/span>\u00a0<a href=\"https:\/\/couchbase.sh\/\"><span style=\"font-weight: 400;\">Shell do Couchbase<\/span><\/a><span style=\"font-weight: 400;\"> tamb\u00e9m conhecido como cbsh. Ele pode ser instalado facilmente no Ubuntu. Tudo o que voc\u00ea precisa \u00e9 fazer o download e descompact\u00e1-lo. Isso pode ser feito em algumas etapas:<\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">trabalhos:\r\n  test_credential:\r\n    runs-on: ubuntu-latest\r\n    nome: Testar se uma determinada vari\u00e1vel de ambiente funciona\r\n    etapas:\r\n        shell: bash\r\n        env:\r\n          COUCHBASE_CONNECTION_STRING: ${{ secrets.COUCHBASE_CONNECTION_STRING }}\r\n          COUCHBASE_USERNAME: ${{ segredos.COUCHBASE_USERNAME }}\r\n          COUCHBASE_PASSWORD: ${{ secrets.COUCHBASE_PASSWORD }}\r\n      - executar: wget https:\/\/github.com\/couchbaselabs\/couchbase-shell\/releases\/download\/v0.75.1\/cbsh-x86_64-unknown-linux-gnu.tar.gz\r\n      - executar: tar -xvzf cbsh-x86_64-unknown-linux-gnu.tar.gz\r\n<\/pre>\n<p>A partir da\u00ed, o shell est\u00e1 dispon\u00edvel simplesmente executando <i><code>.\/cbsh<\/code><\/i>. Observe aqui que o <i><code>em execu\u00e7\u00e3o<\/code><\/i> nos d\u00e1 o cont\u00eainer a ser usado para executar a a\u00e7\u00e3o, <i><code>casca<\/code><\/i> \u00e9 definido como bash e <i><code>env<\/code><\/i> torna os segredos dispon\u00edveis como vari\u00e1veis de ambiente.<\/p>\n<p><span style=\"font-weight: 400;\">Como esse shell \u00e9 baseado em <a href=\"https:\/\/www.nushell.sh\/\">nushell<\/a>\u00a0e uma senha ser\u00e1 solicitada, mas n\u00e3o pude canaliz\u00e1-la diretamente ap\u00f3s a invoca\u00e7\u00e3o dessa forma:<\/span><\/p>\n<pre class=\"nums:false wrap:true lang:default decode:true\">echo $COUCHBASE_PASSWORD | .\/cbsh --username $COUCHBASE_USERNAME--connstr $COUCHASE_CONNECTION_STRING<\/pre>\n<p><span style=\"font-weight: 400;\">Como isso n\u00e3o funciona, tive que usar um <\/span><i><span style=\"font-weight: 400;\">cbsh<\/span><\/i><span style=\"font-weight: 400;\"> em vez disso. E, infelizmente, a sintaxe \u00e9 um pouco complicada para a formata\u00e7\u00e3o de texto com v\u00e1rias linhas e tubula\u00e7\u00f5es. Aqui, estou criando uma nova vari\u00e1vel chamada <em>CONFIG<\/em>que cont\u00e9m os valores das vari\u00e1veis de ambiente, colocando o resultado em <em>$GITHUB_ENV<\/em>o que me permite pass\u00e1-lo para a pr\u00f3xima etapa, que o repete no arquivo de configura\u00e7\u00e3o:<\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">- executar: |\r\n          CONFIG=$(cat &lt;&lt; EOF\r\n            vers\u00e3o = 1\r\n            \r\n            [[cluster]]\r\n            identificador = &quot;local&quot;\r\n            connstr = &quot;$COUCHBASE_CONNECTION_STRING&quot;\r\n            nome de usu\u00e1rio = &quot;$COUCHBASE_USERNAME&quot;\r\n            senha = &quot;$COUCHBASE_PASSWORD&quot;\r\n          EOF\r\n          )\r\n          echo &quot;CONFIG&lt;&gt; $GITHUB_ENV\r\n          echo \"$CONFIG\" &gt;&gt; $GITHUB_ENV\r\n          echo \"EOF\" &gt;&gt; $GITHUB_ENV\r\n      - run: echo \"$CONFIG\" &gt;&gt; config\r\n<\/pre>\n<p>Quando o arquivo de configura\u00e7\u00e3o estiver pronto, <i>cbsh<\/i> pode ser invocado dessa forma:<\/p>\n<pre class=\"nums:false lang:default decode:true\">\u00a0 \u00a0 \u00a0 - executar: .\/cbsh --config-dir . -c cb-env<\/pre>\n<p><span style=\"font-weight: 400;\">O exemplo completo est\u00e1 dispon\u00edvel em <a href=\"https:\/\/github.com\/couchbaselabs\/wasmcloud-provider-couchbase\/blob\/main\/.github\/workflows\/capella_connection_test.yml\">nosso reposit\u00f3rio como um arquivo YML<\/a>.<\/span><span style=\"font-weight: 400;\">\u00a0E \u00e9 assim que uma corrida bem-sucedida se parece:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16450\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/image2-3-1024x821.png\" alt=\"\" width=\"900\" height=\"722\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/image2-3-1024x821.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/image2-3-300x240.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/image2-3-768x615.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/image2-3-1536x1231.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/image2-3-1320x1058.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/image2-3.png 1556w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Pronto, agora voc\u00ea j\u00e1 sabe como se conectar ao Couchbase em um GitHub Action. E voc\u00ea tamb\u00e9m se familiarizou com o Couchbase Shell - experimente fazer \u00a0<a href=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-shell-data-manipulation\/\">mais coisas divertidas<\/a> como migrar todas as cole\u00e7\u00f5es, exceto a <\/span><em><span style=\"font-weight: 400;\">Padr\u00e3o<\/span><\/em><span style=\"font-weight: 400;\"> cole\u00e7\u00e3o:<\/span><\/p>\n<pre class=\"nums:false wrap:true lang:default decode:true\">collections --clusters \"On-Prem-Cluster\" --bucket \"travel-sample\" | select scope collection | where $it.scope != \"_default\" | where $it.collection != \"_default\" | each { |it| collections create $it.collection --clusters \"Capella-Cluster\" --bucket \"travel-sample-import\" --scope $it.scope<\/pre>\n<p><span style=\"font-weight: 400;\">E temos mais recursos compat\u00edveis com IA chegando ao Couchbase Shell, fique ligado!<\/span><\/p>\n<h2>Refer\u00eancias<\/h2>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><a href=\"https:\/\/github.com\/couchbaselabs\/wasmcloud-provider-couchbase\">Provedor wasmCloud para Couchbase (GitHub)<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-shell-data-manipulation\/\">Usando o Couchbase Shell para transformar e gravar dados (Blog)<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>I have recently been working on an exciting project, a wasmCloud capability provider for Couchbase. We are building this in the open with the fine folks at\u00a0Cosmonic. You can checkout the code in our repository. And early in every project [&hellip;]<\/p>","protected":false},"author":49,"featured_media":16451,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[2242,2225,1816,2334],"tags":[2134,10020,10024,1413,10038],"ppma_author":[9023],"class_list":["post-16448","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-connectors","category-cloud","category-couchbase-server","category-monitoring","tag-actions","tag-cbshell","tag-couchbase-shell","tag-github","tag-nushell"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Testing Couchbase with GitHub Actions and CBSH - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Automate Couchbase connection tests in GitHub Actions using environment variables, secrets and Couchbase Shell, including set up steps.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/automate-couchbase-tests-github-actions\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Testing Couchbase with GitHub Actions and CBSH\" \/>\n<meta property=\"og:description\" content=\"Automate Couchbase connection tests in GitHub Actions using environment variables, secrets and Couchbase Shell, including set up steps.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/automate-couchbase-tests-github-actions\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-10-15T16:21:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-18T19:14:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/blog-github-actions-couchbase-1024x536.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"536\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Laurent Doguin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ldoguin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"unstructured.io\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/\"},\"author\":{\"name\":\"Laurent Doguin\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c0aa9b8f1ed51b7a9e2f7cb755994a5e\"},\"headline\":\"Testing Couchbase with GitHub Actions and CBSH\",\"datePublished\":\"2024-10-15T16:21:41+00:00\",\"dateModified\":\"2024-10-18T19:14:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/\"},\"wordCount\":602,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/blog-github-actions-couchbase.png\",\"keywords\":[\"actions\",\"cbshell\",\"couchbase shell\",\"GitHub\",\"nushell\"],\"articleSection\":[\"Connectors\",\"Couchbase Capella\",\"Couchbase Server\",\"Monitoring\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/\",\"name\":\"Testing Couchbase with GitHub Actions and CBSH - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/blog-github-actions-couchbase.png\",\"datePublished\":\"2024-10-15T16:21:41+00:00\",\"dateModified\":\"2024-10-18T19:14:47+00:00\",\"description\":\"Automate Couchbase connection tests in GitHub Actions using environment variables, secrets and Couchbase Shell, including set up steps.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/blog-github-actions-couchbase.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/blog-github-actions-couchbase.png\",\"width\":2400,\"height\":1256},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Testing Couchbase with GitHub Actions and CBSH\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c0aa9b8f1ed51b7a9e2f7cb755994a5e\",\"name\":\"Laurent Doguin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/12929ce99397769f362b7a90d6b85071\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g\",\"caption\":\"Laurent Doguin\"},\"description\":\"Laurent is a nerdy metal head who lives in Paris. He mostly writes code in Java and structured text in AsciiDoc, and often talks about data, reactive programming and other buzzwordy stuff. He is also a former Developer Advocate for Clever Cloud and Nuxeo where he devoted his time and expertise to helping those communities grow bigger and stronger. He now runs Developer Relations at Couchbase.\",\"sameAs\":[\"https:\/\/x.com\/ldoguin\"],\"honorificPrefix\":\"Mr\",\"birthDate\":\"1985-06-07\",\"gender\":\"male\",\"award\":[\"Devoxx Champion\",\"Couchbase Legend\"],\"knowsAbout\":[\"Java\"],\"knowsLanguage\":[\"English\",\"French\"],\"jobTitle\":\"Director Developer Relation & Strategy\",\"worksFor\":\"Couchbase\",\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/laurent-doguin\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Testing Couchbase with GitHub Actions and CBSH - The Couchbase Blog","description":"Automatize os testes de conex\u00e3o do Couchbase no GitHub Actions usando vari\u00e1veis de ambiente, segredos e o Shell do Couchbase, incluindo as etapas de configura\u00e7\u00e3o.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/automate-couchbase-tests-github-actions\/","og_locale":"pt_BR","og_type":"article","og_title":"Testing Couchbase with GitHub Actions and CBSH","og_description":"Automate Couchbase connection tests in GitHub Actions using environment variables, secrets and Couchbase Shell, including set up steps.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/automate-couchbase-tests-github-actions\/","og_site_name":"The Couchbase Blog","article_published_time":"2024-10-15T16:21:41+00:00","article_modified_time":"2024-10-18T19:14:47+00:00","og_image":[{"width":1024,"height":536,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/blog-github-actions-couchbase-1024x536.png","type":"image\/png"}],"author":"Laurent Doguin","twitter_card":"summary_large_image","twitter_creator":"@ldoguin","twitter_misc":{"Written by":"unstructured.io","Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/"},"author":{"name":"Laurent Doguin","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c0aa9b8f1ed51b7a9e2f7cb755994a5e"},"headline":"Testing Couchbase with GitHub Actions and CBSH","datePublished":"2024-10-15T16:21:41+00:00","dateModified":"2024-10-18T19:14:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/"},"wordCount":602,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/blog-github-actions-couchbase.png","keywords":["actions","cbshell","couchbase shell","GitHub","nushell"],"articleSection":["Connectors","Couchbase Capella","Couchbase Server","Monitoring"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/","url":"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/","name":"Testing Couchbase with GitHub Actions and CBSH - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/blog-github-actions-couchbase.png","datePublished":"2024-10-15T16:21:41+00:00","dateModified":"2024-10-18T19:14:47+00:00","description":"Automatize os testes de conex\u00e3o do Couchbase no GitHub Actions usando vari\u00e1veis de ambiente, segredos e o Shell do Couchbase, incluindo as etapas de configura\u00e7\u00e3o.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/blog-github-actions-couchbase.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/10\/blog-github-actions-couchbase.png","width":2400,"height":1256},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/automate-couchbase-tests-github-actions\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Testing Couchbase with GitHub Actions and CBSH"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c0aa9b8f1ed51b7a9e2f7cb755994a5e","name":"Laurent Doguin","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/12929ce99397769f362b7a90d6b85071","url":"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g","caption":"Laurent Doguin"},"description":"Laurent \u00e9 um nerd metaleiro que mora em Paris. Em sua maior parte, ele escreve c\u00f3digo em Java e texto estruturado em AsciiDoc, e frequentemente fala sobre dados, programa\u00e7\u00e3o reativa e outras coisas que est\u00e3o na moda. Ele tamb\u00e9m foi Developer Advocate do Clever Cloud e do Nuxeo, onde dedicou seu tempo e experi\u00eancia para ajudar essas comunidades a crescerem e se fortalecerem. Atualmente, ele dirige as Rela\u00e7\u00f5es com Desenvolvedores na Couchbase.","sameAs":["https:\/\/x.com\/ldoguin"],"honorificPrefix":"Mr","birthDate":"1985-06-07","gender":"male","award":["Devoxx Champion","Couchbase Legend"],"knowsAbout":["Java"],"knowsLanguage":["English","French"],"jobTitle":"Director Developer Relation & Strategy","worksFor":"Couchbase","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/laurent-doguin\/"}]}},"authors":[{"term_id":9023,"user_id":49,"is_guest":0,"slug":"laurent-doguin","display_name":"Laurent Doguin","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g","author_category":"","last_name":"Doguin","first_name":"Laurent","job_title":"","user_url":"","description":"Laurent \u00e9 um nerd metaleiro que mora em Paris. Em sua maior parte, ele escreve c\u00f3digo em Java e texto estruturado em AsciiDoc, e frequentemente fala sobre dados, programa\u00e7\u00e3o reativa e outras coisas que est\u00e3o na moda. Ele tamb\u00e9m foi Developer Advocate do Clever Cloud e do Nuxeo, onde dedicou seu tempo e experi\u00eancia para ajudar essas comunidades a crescerem e se fortalecerem. Atualmente, ele dirige as Rela\u00e7\u00f5es com Desenvolvedores na Couchbase."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/16448","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/49"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=16448"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/16448\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/16451"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=16448"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=16448"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=16448"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=16448"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}