<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Rubens Lyra</title>
    <description>The latest articles on Forem by Rubens Lyra (@rvlyra).</description>
    <link>https://forem.com/rvlyra</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F620183%2F75be9c1b-181d-4007-98f9-83631e00c7a4.jpeg</url>
      <title>Forem: Rubens Lyra</title>
      <link>https://forem.com/rvlyra</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/rvlyra"/>
    <language>en</language>
    <item>
      <title>Integração Contínua e Deploy Automatizado para Aplicações em Angular, Laravel e MySQL na Hostinger</title>
      <dc:creator>Rubens Lyra</dc:creator>
      <pubDate>Wed, 29 Mar 2023 15:45:01 +0000</pubDate>
      <link>https://forem.com/rvlyra/integracao-continua-e-deploy-automatizado-para-aplicacoes-em-angular-laravel-e-mysql-na-hostinger-3pd8</link>
      <guid>https://forem.com/rvlyra/integracao-continua-e-deploy-automatizado-para-aplicacoes-em-angular-laravel-e-mysql-na-hostinger-3pd8</guid>
      <description>&lt;p&gt;Neste artigo, vamos explorar como criar um arquivo ci.yml para integração contínua de uma aplicação construída com Angular 14 no front-end, Laravel 9 e PHP 8.1 no back-end, banco de dados MySQL 8.30, arquivo de log em texto e um arquivo cd.yml para deploy automatizado em hospedagem compartilhada Hostinger. Com essas configurações, você pode automatizar o processo de construção, teste e implantação de sua aplicação e garantir a qualidade de sua entrega contínua.&lt;/p&gt;

&lt;p&gt;Você quer automatizar a integração contínua e o deploy da sua aplicação em Angular, Laravel e MySQL na Hostinger? Então você está no lugar certo! Neste artigo, vou mostrar como criar um arquivo ci.yml para integração contínua e um arquivo cd.yml para deploy automatizado na Hostinger.&lt;/p&gt;

&lt;p&gt;Começando pela integração contínua, o arquivo ci.yml abaixo irá ajudá-lo a configurar um ambiente de build e testes para sua aplicação:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Definição do ambiente&lt;/span&gt;
&lt;span class="na"&gt;os&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
&lt;span class="na"&gt;language&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;node_js&lt;/span&gt;
&lt;span class="na"&gt;node_js&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;14&lt;/span&gt;

&lt;span class="c1"&gt;# Instalação de dependências&lt;/span&gt;
&lt;span class="na"&gt;cache&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;npm&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="no"&gt;true&lt;/span&gt;
  &lt;span class="na"&gt;directories&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;node_modules&lt;/span&gt;

&lt;span class="c1"&gt;# Script de build e testes&lt;/span&gt;
&lt;span class="na"&gt;script&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;npm install&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;ng build --prod&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;npm test&lt;/span&gt;

&lt;span class="c1"&gt;# Deploy após sucesso do build e testes&lt;/span&gt;
&lt;span class="na"&gt;deploy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;provider&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;heroku&lt;/span&gt;
  &lt;span class="na"&gt;api_key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;$HEROKU_API_KEY&lt;/span&gt;
  &lt;span class="na"&gt;app&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;minha-aplicacao-heroku&lt;/span&gt;
  &lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;branch&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;main&lt;/span&gt;

&lt;span class="c1"&gt;# Configuração do banco de dados&lt;/span&gt;
&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;mysql&lt;/span&gt;

&lt;span class="na"&gt;before_install&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;mysql -e 'CREATE DATABASE IF NOT EXISTS minha_base_de_dados;'&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;mysql -e 'USE minha_base_de_dados;'&lt;/span&gt;

&lt;span class="c1"&gt;# Configuração de logs&lt;/span&gt;
&lt;span class="na"&gt;after_failure&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;cat /home/travis/build/minha-conta/minha-aplicacao/logs/test.log&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Este arquivo ci.yml assume que você já configurou sua aplicação no Heroku e que tem uma conta na Hostinger com acesso SSH. Lembre-se de substituir minha-aplicacao-heroku com o nome da sua aplicação no Heroku e minha_base_de_dados com o nome da sua base de dados MySQL na Hostinger.&lt;/p&gt;

&lt;p&gt;Agora, vamos para o arquivo cd.yml para deploy automatizado. Este arquivo irá automatizar o processo de build, testes e deploy da sua aplicação na Hostinger:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Definição do ambiente&lt;/span&gt;
&lt;span class="na"&gt;os&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
&lt;span class="na"&gt;language&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;node_js&lt;/span&gt;
&lt;span class="na"&gt;node_js&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;14&lt;/span&gt;

&lt;span class="c1"&gt;# Instalação de dependências&lt;/span&gt;
&lt;span class="na"&gt;cache&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;npm&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="no"&gt;true&lt;/span&gt;
  &lt;span class="na"&gt;directories&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;node_modules&lt;/span&gt;

&lt;span class="c1"&gt;# Script de build e testes&lt;/span&gt;
&lt;span class="na"&gt;script&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;npm install&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;ng build --prod&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;npm test&lt;/span&gt;

&lt;span class="c1"&gt;# Deploy após sucesso do build e testes&lt;/span&gt;
&lt;span class="na"&gt;deploy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;provider&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;script&lt;/span&gt;
  &lt;span class="na"&gt;skip_cleanup&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="no"&gt;true&lt;/span&gt;
  &lt;span class="na"&gt;script&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;ssh myuser@myhost "cd /home/myuser/myapp &amp;amp;&amp;amp; git pull origin main &amp;amp;&amp;amp; composer install &amp;amp;&amp;amp; php artisan migrate &amp;amp;&amp;amp; npm install &amp;amp;&amp;amp; ng build --prod"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Este arquivo cd.yml assume que você já tem sua aplicação no Git e que você configurou a autenticação SSH para permitir que o deploy seja feito sem digitar uma senha. Lembre-se de substituir &lt;code&gt;myuser&lt;/code&gt;, &lt;code&gt;myhost&lt;/code&gt; e &lt;code&gt;/home/myuser/myapp&lt;/code&gt; com as suas informações de conta e caminho de diretório corretos.&lt;/p&gt;

&lt;p&gt;Com esses arquivos ci.yml e cd.yml em mãos, você pode automatizar a integração contínua e o deploy da sua aplicação em Angular, Laravel e MySQL na Hostinger. É uma ótima maneira de garantir a qualidade da sua entrega contínua e economizar tempo em processos manuais.&lt;/p&gt;

&lt;p&gt;Espero que este artigo tenha sido útil para você e que você possa aplicar essas configurações em suas próprias aplicações. Se você tiver alguma dúvida ou comentário, sinta-se à vontade para deixar um comentário abaixo.&lt;/p&gt;

&lt;p&gt;Além disso, é importante lembrar que as configurações apresentadas neste artigo são apenas um exemplo e podem ser adaptadas para suas próprias necessidades. Por exemplo, você pode querer incluir mais etapas no script de build e testes ou configurar uma plataforma de hospedagem diferente.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusão&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Por fim, se você está interessado em aprender mais sobre DevOps e entrega contínua, recomendo explorar outras ferramentas e técnicas disponíveis, como Docker, Kubernetes, Jenkins, Travis CI, CircleCI e muito mais. Com essas ferramentas em mãos, você pode automatizar ainda mais processos em seu fluxo de trabalho e tornar sua equipe mais eficiente e produtiva.&lt;/p&gt;

</description>
      <category>integraçãocontínua</category>
      <category>deployautomatizado</category>
      <category>angular</category>
      <category>laravel</category>
    </item>
  </channel>
</rss>
