From 5d5b33186674d4b1382bd22de7a3131ce776d31b Mon Sep 17 00:00:00 2001 From: parrera Date: Thu, 24 Aug 2023 17:43:15 -0300 Subject: [PATCH 01/21] Atualializando README --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 6211a28..36dd2fe 100644 --- a/README.md +++ b/README.md @@ -168,5 +168,4 @@ $idf.py build $idf.py -p /dev/ttyUSB0 flash monitor ``` -*Passo-a-passo de configuração e instalação do ambiente ESP-IDF em uma distribuição GNU/Linux*: `https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/linux-macos-setup.html` - +*Passo-a-passo de configuração e instalação do ambiente ESP-IDF em uma distribuição GNU/Linux*: `https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/linux-macos-setup.html` \ No newline at end of file From b504cfa257938d25d2f7bf5b61b6587b405e59d6 Mon Sep 17 00:00:00 2001 From: parrera Date: Thu, 24 Aug 2023 17:52:58 -0300 Subject: [PATCH 02/21] README updated --- README.md | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 36dd2fe..caba6ac 100644 --- a/README.md +++ b/README.md @@ -139,7 +139,7 @@ git push origin bug #### Passo 3 -Em seguida, crie um Pull Request (PR) com sua modificação. Para isso, basta acessar a seguinte URL em seu navegador: `https://github.com//experiment-ci-cd/compare/main...bug`, onde `` deve ser substituído pelo seu usuário no GitHub. Nessa janela, você pode conferir as modificações feitas e incluir uma pequena descrição no PR. +Em seguida, crie um Pull Request (PR) com sua modificação. Para isso, basta acessar a seguinte URL em seu navegador: `https://github.com//experiment-ci-cd/compare/main...bug`, onde `` deve ser substituído pelo seu usuário no GitHub. Nessa janela, você pode conferir as modificações feitas. Então, clique no botão "Create pull request" e na janela que se abrirá, você poderá colocar uma pequena descrição sobre o PR, confirme a criação do PR clicando no botão "Create pull request" no canto inferior esquerdo da janela. Após finalizar a criação do PR, será iniciada a pipeline, ou seja, o GHA iniciará automaticamente o fluxo de tarefas configurado no arquivo `experiment-ci-cd.yml`. Porém, dessa vez os testes não vão passar, como você poderá ver na tela que aparecerá. Você pode acompanhar o status dessa execução clicando na aba Actions do seu repositório. @@ -147,20 +147,32 @@ Em suma, o Servidor CI/CD conseguiu alertar, de forma automática, tanto o autor #### Passo 4 -Retorne com um valor aceitável para o código do teste. Para isso, coloque novamente o valor 25.0 na função `Test` do arquivo [experiment-ci-cd/blob/main/test/test.c](https://github.com/parrera/experiment-ci-cd/blob/main/test/test.c). Por exemplo, basta alterar a linha 12, retornando com o valor para 25.0, como apresentado abaixo. +Retorne com um valor aceitável para o código do teste. Para isso, coloque novamente o valor 26.0 na função `Test` do arquivo [experiment-ci-cd/blob/main/test/test.c](https://github.com/parrera/experiment-ci-cd/blob/main/test/test.c). Por exemplo, basta alterar a linha 12, retornando com o valor para 26.0, como apresentado abaixo. ```diff Test(suite_name, test_name){ - cr_assert(reasonable_values(25.0) == 1); + cr_assert(reasonable_values(26.0) == 1); } ``` -Em seguida, crie novamente um Pull Request (PR) com sua correção. Para isso, basta acessar a seguinte URL em seu navegador: `https://github.com//experiment-ci-cd/compare/main...bug`, onde `` deve ser substituído pelo seu usuário no GitHub. Nessa janela, você pode conferir as modificações feitas e incluir uma pequena descrição no PR. +Após modificar o código, você deve criar um novo branch de consertar o bug, realizar um `commit` e um`push`: -Após finalizar a criação do PR, será iniciada novamente a pipeline, ou seja, o próprio GHA vai fazer o build do sistema, rodar o teste e realizará a entrega do artefato criando uma Release do seu projeto. Você conseguirá ver o andamento detalhado deste seu pipeline clicando na aba Actions. Após criada, sua Release está disponível na página inicial deste seu projeto no canto direito da sua tela. +```bash +git checkout -b fixture +git add --all +git commit -m "Consertando a função Test" +git push origin fixture +``` +Insira seu nome de usuário e senha (Token) do GH. + +Em seguida, crie novamente um Pull Request (PR) com sua correção. Para isso, basta acessar a seguinte URL em seu navegador: `https://github.com//experiment-ci-cd/compare/main...fixture`, onde `` deve ser substituído pelo seu usuário no GitHub. Nessa janela, você pode conferir as modificações feitas. Então, clique no botão "Create pull request" no canto superior direito da tela e na janela que se abrirá, você poderá colocar uma pequena descrição sobre o PR, confirme a criação do PR clicando no botão "Create pull request" no canto inferior direito da janela. Você pode acompanhar o andamento do seu pipeline clicando na aba Actions e em seguida, no nome do PR criado que estará em execução. + + +E novamente, após finalizar a criação deste novo PR, será iniciada novamente uma pipeline, ou seja, o próprio GHA vai fazer o build do sistema, rodar o teste e realizará a entrega do artefato criando uma Release do seu projeto. Após criada, sua Release está disponível na página inicial deste seu projeto no canto direito da sua tela. #### Esquemático do protótipo: [prototype.pdf](https://github.com/parrera/experiment-ci-cd/files/12381438/prototype.pdf) -*Para deploy no protótipo*: + +####Para deploy no protótipo: ```bashBa $get_idf @@ -168,4 +180,4 @@ $idf.py build $idf.py -p /dev/ttyUSB0 flash monitor ``` -*Passo-a-passo de configuração e instalação do ambiente ESP-IDF em uma distribuição GNU/Linux*: `https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/linux-macos-setup.html` \ No newline at end of file +####Passo-a-passo de configuração e instalação do ambiente ESP-IDF em uma distribuição GNU/Linux: `https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/linux-macos-setup.html` \ No newline at end of file From 99f42d2b876619cb120bb01a6410e0cb106a03c5 Mon Sep 17 00:00:00 2001 From: parrera Date: Thu, 24 Aug 2023 17:54:16 -0300 Subject: [PATCH 03/21] README updated --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index caba6ac..4e9b28a 100644 --- a/README.md +++ b/README.md @@ -172,7 +172,7 @@ E novamente, após finalizar a criação deste novo PR, será iniciada novamente #### Esquemático do protótipo: [prototype.pdf](https://github.com/parrera/experiment-ci-cd/files/12381438/prototype.pdf) -####Para deploy no protótipo: +#### Para deploy no protótipo: ```bashBa $get_idf @@ -180,4 +180,4 @@ $idf.py build $idf.py -p /dev/ttyUSB0 flash monitor ``` -####Passo-a-passo de configuração e instalação do ambiente ESP-IDF em uma distribuição GNU/Linux: `https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/linux-macos-setup.html` \ No newline at end of file +#### Passo-a-passo de configuração e instalação do ambiente ESP-IDF em uma distribuição GNU/Linux: `https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/linux-macos-setup.html` \ No newline at end of file From 1175da7ef47ab6c17cfc957bca1f12719bee0332 Mon Sep 17 00:00:00 2001 From: parrera Date: Thu, 24 Aug 2023 19:25:45 -0300 Subject: [PATCH 04/21] Atualizando o readme.md --- README.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 4e9b28a..f259617 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,7 @@ Test(suite_name, test_name){ #### Passo 2 -Após modificar o código, você deve criar um novo branch, realizar um `commit` e `push`: +Após modificar o código, você deve criar um novo branch, realizar um `commit` e um `push`: ```bash git checkout -b bug @@ -145,7 +145,7 @@ Após finalizar a criação do PR, será iniciada a pipeline, ou seja, o GHA ini Em suma, o Servidor CI/CD conseguiu alertar, de forma automática, tanto o autor do PR como o integrador de que existe um problema no código submetido, o que impede que ele seja integrado no branch principal do repositório. -#### Passo 4 +## Tarefa #3: Criando um Pull Request (PR) com a correção Retorne com um valor aceitável para o código do teste. Para isso, coloque novamente o valor 26.0 na função `Test` do arquivo [experiment-ci-cd/blob/main/test/test.c](https://github.com/parrera/experiment-ci-cd/blob/main/test/test.c). Por exemplo, basta alterar a linha 12, retornando com o valor para 26.0, como apresentado abaixo. @@ -154,7 +154,7 @@ Test(suite_name, test_name){ cr_assert(reasonable_values(26.0) == 1); } ``` -Após modificar o código, você deve criar um novo branch de consertar o bug, realizar um `commit` e um`push`: +Após modificar o código, você deve criar um novo branch para consertar o bug, realizar um `commit` e um `push`: ```bash git checkout -b fixture @@ -169,6 +169,10 @@ Em seguida, crie novamente um Pull Request (PR) com sua correção. Para isso, b E novamente, após finalizar a criação deste novo PR, será iniciada novamente uma pipeline, ou seja, o próprio GHA vai fazer o build do sistema, rodar o teste e realizará a entrega do artefato criando uma Release do seu projeto. Após criada, sua Release está disponível na página inicial deste seu projeto no canto direito da sua tela. + +#### Passo-a-passo de configuração e instalação do ambiente ESP-IDF em uma distribuição GNU/Linux: + + #### Esquemático do protótipo: [prototype.pdf](https://github.com/parrera/experiment-ci-cd/files/12381438/prototype.pdf) @@ -178,6 +182,4 @@ E novamente, após finalizar a criação deste novo PR, será iniciada novamente $get_idf $idf.py build $idf.py -p /dev/ttyUSB0 flash monitor -``` - -#### Passo-a-passo de configuração e instalação do ambiente ESP-IDF em uma distribuição GNU/Linux: `https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/linux-macos-setup.html` \ No newline at end of file +``` \ No newline at end of file From bde053b47190cf3ea3184f7f66b4ded80f9a0005 Mon Sep 17 00:00:00 2001 From: parrera Date: Thu, 24 Aug 2023 19:31:19 -0300 Subject: [PATCH 05/21] readme.md final --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f259617..a2ca152 100644 --- a/README.md +++ b/README.md @@ -169,14 +169,15 @@ Em seguida, crie novamente um Pull Request (PR) com sua correção. Para isso, b E novamente, após finalizar a criação deste novo PR, será iniciada novamente uma pipeline, ou seja, o próprio GHA vai fazer o build do sistema, rodar o teste e realizará a entrega do artefato criando uma Release do seu projeto. Após criada, sua Release está disponível na página inicial deste seu projeto no canto direito da sua tela. +# FIM -#### Passo-a-passo de configuração e instalação do ambiente ESP-IDF em uma distribuição GNU/Linux: +## Passo-a-passo de configuração e instalação do ambiente ESP-IDF em uma distribuição GNU/Linux: -#### Esquemático do protótipo: [prototype.pdf](https://github.com/parrera/experiment-ci-cd/files/12381438/prototype.pdf) +## Esquemático do protótipo: [prototype.pdf](https://github.com/parrera/experiment-ci-cd/files/12381438/prototype.pdf) -#### Para deploy no protótipo: +## Para deploy no protótipo: ```bashBa $get_idf From 3033eeea7ce6d5418827d3a4b8b2b0dbcaff6c5e Mon Sep 17 00:00:00 2001 From: parrera Date: Thu, 24 Aug 2023 19:32:34 -0300 Subject: [PATCH 06/21] Atualizando o readme.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a2ca152..44e820b 100644 --- a/README.md +++ b/README.md @@ -171,13 +171,13 @@ E novamente, após finalizar a criação deste novo PR, será iniciada novamente # FIM -## Passo-a-passo de configuração e instalação do ambiente ESP-IDF em uma distribuição GNU/Linux: +### Passo-a-passo de configuração e instalação do ambiente ESP-IDF em uma distribuição GNU/Linux: -## Esquemático do protótipo: [prototype.pdf](https://github.com/parrera/experiment-ci-cd/files/12381438/prototype.pdf) +### Esquemático do protótipo: [prototype.pdf](https://github.com/parrera/experiment-ci-cd/files/12381438/prototype.pdf) -## Para deploy no protótipo: +### Para deploy no protótipo: ```bashBa $get_idf From 2b6244b566995e6a53ae7c567f502236cf9e4c9f Mon Sep 17 00:00:00 2001 From: parrera Date: Thu, 24 Aug 2023 19:33:07 -0300 Subject: [PATCH 07/21] readme.md final --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 44e820b..705b0a4 100644 --- a/README.md +++ b/README.md @@ -171,13 +171,13 @@ E novamente, após finalizar a criação deste novo PR, será iniciada novamente # FIM -### Passo-a-passo de configuração e instalação do ambiente ESP-IDF em uma distribuição GNU/Linux: +#### Passo-a-passo de configuração e instalação do ambiente ESP-IDF em uma distribuição GNU/Linux: -### Esquemático do protótipo: [prototype.pdf](https://github.com/parrera/experiment-ci-cd/files/12381438/prototype.pdf) +#### Esquemático do protótipo: [prototype.pdf](https://github.com/parrera/experiment-ci-cd/files/12381438/prototype.pdf) -### Para deploy no protótipo: +#### Para deploy no protótipo: ```bashBa $get_idf From 7757c64493781006f8cb47601159174629d1b2ae Mon Sep 17 00:00:00 2001 From: parrera Date: Mon, 28 Aug 2023 13:42:14 -0300 Subject: [PATCH 08/21] readme updated --- README.md | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 705b0a4..7977f43 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ -# Quasi-experimento: Roteiro sobre configuração e uso de um pipeline CI/CD +# Roteiro sobre configuração e uso de um pipeline CI/CD Este repositório descreve um roteiro prático para configuração e uso de um **Servidor de Integração e Entrega Contínua**. O objetivo é -proporcionar à pessoa estudante um contato real com essas práticas de DevOps. +proporcionar à pessoa estudante um contato real com essas práticas do DevOps no domínio de Sistemas Embarcados IoT. -**Contexto**: Considere que você faz parte de um projeto de sistema embarcado para Internet das Coisas (IoT). Sua equipe é composta por profissionais e praticantes de diferentes áreas como cientistas e engenheiros da computação, engenheiros eletricistas e de controle e automação, mecatrônica, analistas de sistemas entre outros que têm interesse na área de projetos IoT. Todas essas pessoas colaboram em diferentes partes do projeto e elas estão distribuídas geograficamente. O projeto é licenciado através de licenças de software e hardware livre. Você entende que a implementação da prática de pipeline CI/CD neste projeto pode proporcionar: maior disponibilidade aos principais contribuidores do projeto (responsáveis por avaliar os Pull Requests e realizar os Merges) para realizarem outros tipos de tarefas, promover maior qualidade ao código-fonte, incentivar a documentação contínua, obtenção de feedback dos usuários mais frequentemente, entre outros benefícios. Então, como vocês estão interessados nessa prática, construíram um roteiro para configuração e uso de um servidor de integração e entrega contínua. Apesar de existirem diversos servidores para implementação dessa prática, vocês escolheram um serviço nativo do GitHub (GH) denominado GitHub Actions (GHA), para implementar esse servidor. +**Contexto**: Considere que você faz parte de um Projeto de Sistema Embarcado para Internet das Coisas (IoT). Sua equipe é composta por profissionais e praticantes de diferentes áreas como cientistas e engenheiros da computação, engenheiros eletricistas e de controle e automação, mecatrônica, analistas de sistemas entre outros que têm interesse na área de projetos IoT. Todas essas pessoas colaboram em diferentes partes do projeto e elas estão distribuídas geograficamente. O projeto é licenciado através de licenças de software e hardware livre. Você entende que a implementação das práticas de integração e entrega contínua neste projeto podem proporcionar: maior disponibilidade aos principais contribuidores do projeto (responsáveis por avaliar os Pull Requests e realizar os Merges) para realizarem outros tipos de tarefas, promover maior qualidade ao código-fonte, incentivar a documentação contínua, obtenção de feedback dos usuários mais frequentemente, entre outros benefícios. Então, como vocês estão interessados nessas práticas, construíram um roteiro para configuração e uso de um servidor de integração e entrega contínua. Apesar de existirem diversos servidores para implementação dessa prática, vocês escolheram um serviço nativo do GitHub (GH) denominado GitHub Actions (GHA), para implementar esse servidor. ## Tarefa #1: Configurar o GitHub Actions @@ -23,13 +23,10 @@ Em seguida, copie o código a seguir para um arquivo com o seguinte nome: `.gith ```yaml name: experiment-ci-cd #Nome do workflow -on: - push: - branches: - - main #Executar quando houver um push na branch main +on: pull_request: branches: - - main + - main #Executar quando houver um PR na branch main jobs: #Define os 3 Jobs que serão executados no workflow build: #Job responsável por compilar o projeto runs-on: ubuntu-latest #Os comandos serão executados na última versão da distribuição Ubuntu @@ -93,7 +90,7 @@ jobs: #Define os 3 Jobs que serão executados no workflow uses: ncipollo/release-action@v1.12.0 #Action para criar release with: artifacts: "experiment-ci-cd.bin" #Artefato que será criado na release - tag: 0.1.1 #Tag do release + tag: 0.1.5 #Tag do release bodyFile: "body.md" #Arquivo contendo o corpo do release ``` From 9fdcf87222a675a09e99c431a3c1c39251e1a0db Mon Sep 17 00:00:00 2001 From: parrera Date: Mon, 28 Aug 2023 13:47:56 -0300 Subject: [PATCH 09/21] readme updated --- .github/workflows/ci-cd.yml | 2 +- README.md | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index c27c392..58fd5dd 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -65,5 +65,5 @@ jobs: #Define os 3 Jobs que serão executados no workflow uses: ncipollo/release-action@v1.12.0 #Action para criar release with: artifacts: "experiment-ci-cd.bin" #Artefato que será criado na release - tag: 0.1.4 #Tag do release + tag: 0.1.5 #Tag do release bodyFile: "body.md" #Arquivo contendo o corpo do release \ No newline at end of file diff --git a/README.md b/README.md index 7977f43..13a7276 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ name: experiment-ci-cd #Nome do workflow on: pull_request: branches: - - main #Executar quando houver um PR na branch main + - main #Executar quando houver um pull_request na branch main jobs: #Define os 3 Jobs que serão executados no workflow build: #Job responsável por compilar o projeto runs-on: ubuntu-latest #Os comandos serão executados na última versão da distribuição Ubuntu @@ -90,11 +90,11 @@ jobs: #Define os 3 Jobs que serão executados no workflow uses: ncipollo/release-action@v1.12.0 #Action para criar release with: artifacts: "experiment-ci-cd.bin" #Artefato que será criado na release - tag: 0.1.5 #Tag do release + tag: 0.1.0 #Tag do release bodyFile: "body.md" #Arquivo contendo o corpo do release ``` -Esse arquivo ativa e configura o GHA para toda vez que ocorrer um evento `push` ou `pull_request` tendo como alvo a branch principal do repositório. Ele realiza três jobs: +Esse arquivo ativa e configura o GHA para toda vez que ocorrer um evento `pull_request` tendo como alvo a branch principal (main) do repositório. Ele realiza três jobs: - faz a compilação (build) - roda os testes (test) @@ -136,11 +136,11 @@ git push origin bug #### Passo 3 -Em seguida, crie um Pull Request (PR) com sua modificação. Para isso, basta acessar a seguinte URL em seu navegador: `https://github.com//experiment-ci-cd/compare/main...bug`, onde `` deve ser substituído pelo seu usuário no GitHub. Nessa janela, você pode conferir as modificações feitas. Então, clique no botão "Create pull request" e na janela que se abrirá, você poderá colocar uma pequena descrição sobre o PR, confirme a criação do PR clicando no botão "Create pull request" no canto inferior esquerdo da janela. +Em seguida, crie um Pull Request (PR) com sua modificação. Para isso, basta acessar a seguinte URL em seu navegador: `https://github.com//experiment-ci-cd/compare/main...bug`, onde `` deve ser substituído pelo seu usuário no GitHub. Nessa janela, você pode conferir as modificações feitas. Então, clique no botão "Create pull request" e na janela que se abrirá, você poderá colocar uma pequena descrição sobre o PR, confirme a criação do PR clicando no botão "Create pull request". Após finalizar a criação do PR, será iniciada a pipeline, ou seja, o GHA iniciará automaticamente o fluxo de tarefas configurado no arquivo `experiment-ci-cd.yml`. Porém, dessa vez os testes não vão passar, como você poderá ver na tela que aparecerá. Você pode acompanhar o status dessa execução clicando na aba Actions do seu repositório. -Em suma, o Servidor CI/CD conseguiu alertar, de forma automática, tanto o autor do PR como o integrador de que existe um problema no código submetido, o que impede que ele seja integrado no branch principal do repositório. +Em suma, o Servidor CI/CD conseguiu alertar, de maneira automática, que existe um problema no código submetido, o que impede que ele seja integrado no branch principal do repositório. ## Tarefa #3: Criando um Pull Request (PR) com a correção @@ -164,7 +164,7 @@ Insira seu nome de usuário e senha (Token) do GH. Em seguida, crie novamente um Pull Request (PR) com sua correção. Para isso, basta acessar a seguinte URL em seu navegador: `https://github.com//experiment-ci-cd/compare/main...fixture`, onde `` deve ser substituído pelo seu usuário no GitHub. Nessa janela, você pode conferir as modificações feitas. Então, clique no botão "Create pull request" no canto superior direito da tela e na janela que se abrirá, você poderá colocar uma pequena descrição sobre o PR, confirme a criação do PR clicando no botão "Create pull request" no canto inferior direito da janela. Você pode acompanhar o andamento do seu pipeline clicando na aba Actions e em seguida, no nome do PR criado que estará em execução. -E novamente, após finalizar a criação deste novo PR, será iniciada novamente uma pipeline, ou seja, o próprio GHA vai fazer o build do sistema, rodar o teste e realizará a entrega do artefato criando uma Release do seu projeto. Após criada, sua Release está disponível na página inicial deste seu projeto no canto direito da sua tela. +E, após finalizar a criação deste novo PR, será iniciada novamente uma pipeline, ou seja, o próprio GHA vai fazer o build do sistema, rodar o teste e realizará a entrega do artefato criando uma Release do seu projeto. Após criada, sua Release está disponível na página inicial deste seu projeto no canto direito da sua tela. # FIM From 0996eba2a5b2074e97b3edbb9ce9a795bd4f43a2 Mon Sep 17 00:00:00 2001 From: Igor Date: Thu, 28 Sep 2023 11:24:19 -0300 Subject: [PATCH 10/21] Update README.md --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 13a7276..7a701bb 100644 --- a/README.md +++ b/README.md @@ -102,7 +102,7 @@ Esse arquivo ativa e configura o GHA para toda vez que ocorrer um evento `pull_r #### Passo 3 -Realize um `commit` e um `git push`, isto é: +Entre no diretório criado ".../experiment-ci-cd/" e realize um `commit` e um `git push`, isto é: ```bash git add --all @@ -113,6 +113,11 @@ git push origin main ## Tarefa #2: Criando um Pull Request (PR) com bug Vamos introduzir um bug simples no teste exemplo e enviar um PR, para mostrar que ele não será aceito pelo pipeline CI/CD. +Instale a biblioteca Criterion para execurtarmos o teste: + +```bash +#apt install libcriterion-dev +``` #### Passo 1 Vamos considerar que o sensor retornou um valor que não é esperado pelo nosso teste. Para isso, coloque o valor 45.0 na função `Test` do arquivo [experiment-ci-cd/blob/main/test/test.c](https://github.com/parrera/experiment-ci-cd/blob/main/test/test.c). Por exemplo, basta alterar a linha 12, trocando o valor para 45.0, como apresentado abaixo. @@ -180,4 +185,4 @@ E, após finalizar a criação deste novo PR, será iniciada novamente uma pipel $get_idf $idf.py build $idf.py -p /dev/ttyUSB0 flash monitor -``` \ No newline at end of file +``` From 24c129a11d5f7af46c2255bfd3564673b30b7e5e Mon Sep 17 00:00:00 2001 From: Igor Date: Thu, 28 Sep 2023 12:26:41 -0300 Subject: [PATCH 11/21] Update README.md --- README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/README.md b/README.md index 7a701bb..ee39e1b 100644 --- a/README.md +++ b/README.md @@ -113,11 +113,6 @@ git push origin main ## Tarefa #2: Criando um Pull Request (PR) com bug Vamos introduzir um bug simples no teste exemplo e enviar um PR, para mostrar que ele não será aceito pelo pipeline CI/CD. -Instale a biblioteca Criterion para execurtarmos o teste: - -```bash -#apt install libcriterion-dev -``` #### Passo 1 Vamos considerar que o sensor retornou um valor que não é esperado pelo nosso teste. Para isso, coloque o valor 45.0 na função `Test` do arquivo [experiment-ci-cd/blob/main/test/test.c](https://github.com/parrera/experiment-ci-cd/blob/main/test/test.c). Por exemplo, basta alterar a linha 12, trocando o valor para 45.0, como apresentado abaixo. From 5200a95bcc153009b6349c6c8f7266fc1746d84b Mon Sep 17 00:00:00 2001 From: parrera Date: Thu, 28 Sep 2023 19:58:02 -0300 Subject: [PATCH 12/21] =?UTF-8?q?Retirando=20o=20diret=C3=B3rio=20.github?= =?UTF-8?q?=20com=20-R?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci-cd.yml | 69 ------------------------------------- README.md | 2 +- 2 files changed, 1 insertion(+), 70 deletions(-) delete mode 100644 .github/workflows/ci-cd.yml diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml deleted file mode 100644 index 58fd5dd..0000000 --- a/.github/workflows/ci-cd.yml +++ /dev/null @@ -1,69 +0,0 @@ -name: experiment-ci-cd #Nome do workflow -on: - pull_request: #Executar quando houver um pull request na branch main - branches: - - main -jobs: #Define os 3 Jobs que serão executados no workflow - build: #Job responsável por compilar o projeto - runs-on: ubuntu-latest #Os comandos serão executados na última versão da distribuição Ubuntu - permissions: - contents: write #Permissão de escrita em conteúdos - steps: - - name: Repo checkout #Nome da etapa que usará uma actions para clonar o repositório do GH - uses: actions/checkout@v3 #Action reusável que clona o repo do GH na estação de trabalho - - - name: Espressif IoT Development Framework (ESP-IDF) #Interação com o ESP-IDF - uses: espressif/esp-idf-ci-action@v1.1.0 #Action fornecida pela Espressif - with: - esp_idf_version: v4.4 #Versão do ESP-IDF a ser utilizada - target: esp32 #Especifica a plataforma de compilação - - - name: Store Artifacts - uses: actions/upload-artifact@v3 #Armazena os artefatos gerados pela compilação - with: - name: experiment-ci-cd #Especifica o nome do artefato criado - path: build/experiment-ci-cd.bin - - test: #Job responsável por compilar os testes unitários e gerar os artefatos relacionados - runs-on: ubuntu-latest - permissions: - checks: write - pull-requests: write - needs: [build] #Job test só será executado se o Job build for bem-sucedido - steps: - - name: Repo checkout - uses: actions/checkout@v3 - - - name: Build tests - run: | - sudo apt-get install libcriterion-dev - sudo apt-get install meson - cd test - gcc -o test test.c -lcriterion - ./test --xml > test.xml - - - name: Show results - uses: EnricoMi/publish-unit-test-result-action@v2 - if: always() #Sempre executa essa etapa - with: - files: test/test.xml #Arquivo com os resultados dos testes - - delivery: - runs-on: ubuntu-latest - permissions: - contents: write - needs: [test] #Este job depende do job "test" - steps: - - name: Repo checkout - uses: actions/checkout@v3 #Clona o repositório do GitHub - - - name: Download artifacts - uses: actions/download-artifact@v3 #Baixa os artefatos gerados no job "build" - with: - name: experiment-ci-cd - - name: Create release - uses: ncipollo/release-action@v1.12.0 #Action para criar release - with: - artifacts: "experiment-ci-cd.bin" #Artefato que será criado na release - tag: 0.1.5 #Tag do release - bodyFile: "body.md" #Arquivo contendo o corpo do release \ No newline at end of file diff --git a/README.md b/README.md index ee39e1b..3c67d51 100644 --- a/README.md +++ b/README.md @@ -102,7 +102,7 @@ Esse arquivo ativa e configura o GHA para toda vez que ocorrer um evento `pull_r #### Passo 3 -Entre no diretório criado ".../experiment-ci-cd/" e realize um `commit` e um `git push`, isto é: +Entre no diretório criado (use o comando cd no terminal) ".../experiment-ci-cd/", realize um `add`, um `commit` e um `git push`, ou seja: ```bash git add --all From 4ccfedc41ff4ce821b4ad1280b7e728c516c7425 Mon Sep 17 00:00:00 2001 From: parrera Date: Thu, 28 Sep 2023 20:04:48 -0300 Subject: [PATCH 13/21] Atualizando a tag --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3c67d51..6e9c7f4 100644 --- a/README.md +++ b/README.md @@ -90,7 +90,7 @@ jobs: #Define os 3 Jobs que serão executados no workflow uses: ncipollo/release-action@v1.12.0 #Action para criar release with: artifacts: "experiment-ci-cd.bin" #Artefato que será criado na release - tag: 0.1.0 #Tag do release + tag: 0.1.5 #Tag do release bodyFile: "body.md" #Arquivo contendo o corpo do release ``` From 6fe41a4fcbe5f3771027ba12012834354e8062de Mon Sep 17 00:00:00 2001 From: parrera Date: Wed, 4 Oct 2023 16:23:28 -0300 Subject: [PATCH 14/21] Atualizando readme.md com base no feedback --- README.md | 10 +- build/.bin_timestamp | 2 +- build/.ninja_deps | Bin 884784 -> 885496 bytes build/.ninja_log | 2658 ++++++----------- build/CMakeFiles/git-data/head-ref | 2 +- build/bootloader/.ninja_log | 300 +- build/build.ninja | 6 +- build/compile_commands.json | 2 +- .../__idf_app_update.dir/esp_app_desc.c.obj | Bin 11320 -> 11320 bytes build/esp-idf/app_update/libapp_update.a | Bin 116432 -> 116432 bytes build/experiment-ci-cd.bin | Bin 178224 -> 178224 bytes build/experiment-ci-cd.elf | Bin 2366132 -> 2366132 bytes 12 files changed, 1036 insertions(+), 1944 deletions(-) diff --git a/README.md b/README.md index 6e9c7f4..2701899 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Clone o repositório para sua máquina local, usando o seguinte comando (onde `< git clone https://github.com//experiment-ci-cd.git ``` -Em seguida, copie o código a seguir para um arquivo com o seguinte nome: `.github/workflows/experiment-ci-cd.yml`. Isto é, crie diretórios `.github` e depois `workflows` e salve o código abaixo no arquivo `experiment-ci-cd.yml`. +Em seguida, copie o código a seguir para um arquivo com o seguinte nome: `.github/workflows/experiment-ci-cd.yml`. Isto é, crie diretórios `.github` e depois `workflows` e salve o código abaixo no arquivo `experiment-ci-cd.yml`. Para isso, crie os arquivos em um editor de texto ou IDE na sua máquina. Utilize os comandos `mv`, `cd`, `cd ..` `ls`, `ls - la` e `mkdir` no seu terminal ou use a GUI e configure para visualizar arquivos ocultos. ```yaml name: experiment-ci-cd #Nome do workflow @@ -115,7 +115,7 @@ git push origin main Vamos introduzir um bug simples no teste exemplo e enviar um PR, para mostrar que ele não será aceito pelo pipeline CI/CD. #### Passo 1 -Vamos considerar que o sensor retornou um valor que não é esperado pelo nosso teste. Para isso, coloque o valor 45.0 na função `Test` do arquivo [experiment-ci-cd/blob/main/test/test.c](https://github.com/parrera/experiment-ci-cd/blob/main/test/test.c). Por exemplo, basta alterar a linha 12, trocando o valor para 45.0, como apresentado abaixo. +Vamos considerar que o sensor retornou um valor que não é esperado pelo nosso teste. Para isso, coloque o valor 45.0 na função `Test`. Por exemplo, basta alterar a linha 15 no arquivo test.c, trocando o valor para 45.0 e salve o arquivo, como apresentado abaixo. ```diff Test(suite_name, test_name){ @@ -144,14 +144,14 @@ Em suma, o Servidor CI/CD conseguiu alertar, de maneira automática, que existe ## Tarefa #3: Criando um Pull Request (PR) com a correção -Retorne com um valor aceitável para o código do teste. Para isso, coloque novamente o valor 26.0 na função `Test` do arquivo [experiment-ci-cd/blob/main/test/test.c](https://github.com/parrera/experiment-ci-cd/blob/main/test/test.c). Por exemplo, basta alterar a linha 12, retornando com o valor para 26.0, como apresentado abaixo. +Coloque um valor aceitável para o código do teste. Para isso, coloque agora o valor 26.0 na função `Test` do arquivo test.c. Por exemplo, basta alterar a linha 15, colocando o valor para 26.0, como apresentado abaixo. ```diff Test(suite_name, test_name){ cr_assert(reasonable_values(26.0) == 1); } ``` -Após modificar o código, você deve criar um novo branch para consertar o bug, realizar um `commit` e um `push`: +Após modificar o código, salve o arquivo e crie um novo branch para consertar o bug, realizar um `commit` e um `push`: ```bash git checkout -b fixture @@ -159,7 +159,7 @@ git add --all git commit -m "Consertando a função Test" git push origin fixture ``` -Insira seu nome de usuário e senha (Token) do GH. +Insira seu nome de usuário e senha (Token) do GH se for requerido Em seguida, crie novamente um Pull Request (PR) com sua correção. Para isso, basta acessar a seguinte URL em seu navegador: `https://github.com//experiment-ci-cd/compare/main...fixture`, onde `` deve ser substituído pelo seu usuário no GitHub. Nessa janela, você pode conferir as modificações feitas. Então, clique no botão "Create pull request" no canto superior direito da tela e na janela que se abrirá, você poderá colocar uma pequena descrição sobre o PR, confirme a criação do PR clicando no botão "Create pull request" no canto inferior direito da janela. Você pode acompanhar o andamento do seu pipeline clicando na aba Actions e em seguida, no nome do PR criado que estará em execução. diff --git a/build/.bin_timestamp b/build/.bin_timestamp index 10cda8a..febe2f4 100644 --- a/build/.bin_timestamp +++ b/build/.bin_timestamp @@ -1 +1 @@ -b9505e65371c2577b62aef61ffa58b50 /home/igor/esp/experiment-ci-cd/build/experiment-ci-cd.bin +fc0032aa9424eb9420d4ed03784c1356 /home/igor/esp/experiment-ci-cd/build/experiment-ci-cd.bin diff --git a/build/.ninja_deps b/build/.ninja_deps index 46b8721a514b107874075968cfbba83019511e6c..592bccc900d4936756762dde8c1018c7e4573a68 100644 GIT binary patch delta 85 zcmdncVD_Wctf7Umg{g(Pg{6hHg{_6Xg`Pj|FtlAgXmjqw5h4xn5c7Xw4es!s+$x$XINylWW&x#=9_ delta 35 qcmey-YPO-ltf7Umg{g(Pg{6hHg{_6Xg`quA#ARx=C_!T53wNZc1iRN#$f`MlDfuD+41dLjwjV@J}vLP%z%y I#JEih0QzGOh5!Hn delta 58 zcmdlHu_I!G0i&?7uCZ=CBtNAMlDejD^m+ALsJGQa4bz%Ff!TP I#JEih0OCOo;{X5v diff --git a/build/esp-idf/app_update/libapp_update.a b/build/esp-idf/app_update/libapp_update.a index aa8976f6f7d154535b21525055f0573f47da1d9d..cd5d2a8722748282687a3b425a4ee6bb1e7529e5 100644 GIT binary patch delta 64 zcmcc6%YLDkyBw&t}vTHL)_aurf4dfC9(T PbOj@m?NW0Xw`lCc1{ky6Gm#$!V!6$+{_-MJ1IJ-L*u`tqhE;3=J5dz(2V}LBV)p zo0h_6&HU@Z(`{A7ckIeB@bTy@eL3s%6@f~V8Rtv%f6u)pHaV~^pjm;jU4fBty8#=6G3=}AV(W|kIdx+$4OC6x>l-L*tbtV}Je3{4rJz_B!4!N_D{ zo0h`VXBU@lTl9DF{?h7NSA&y0ImwZlavKsKN=hG_r*nfNV{%|!K(hj4y8S6b0b9lSJF8+Hq>sm`qJ;5K#iH4G4V!m-Zb}|F)&26x@iA(1oBBnb&Yp z$1pvOy-#+;9!9b4y?gCl%QN>QalnxrldrZj?I}8Gm_?02{)4N7?aNdXH)PV zei$QF`R0uA*Phq=UB!H%1XN%HHem~@AYmI;of_>Tn1lG@w}+eWaIvsZm&w delta 303 zcmXZVzfQtX7zObA-L?uB|6DGuTHC9D3=O7(PzvVf( z9k#y9;h@?|MybqFNx;DZ8ywhxO(;MyPo;PxicCR?IyKFy5>s-`w-R2%^`0^L9&$DY z|MibC+AIBV#`vV~_y1Qhn=1h&*n(}?fnAVL1_c#x!Gl$29}d8W!+fp+Tj1*=4DMw_ kj$={LVq|kCvL Date: Fri, 6 Oct 2023 15:30:29 -0300 Subject: [PATCH 15/21] Atualizando o readme.md --- README.md | 10 +- build/.bin_timestamp | 2 +- build/.ninja_deps | Bin 885496 -> 885764 bytes build/.ninja_log | 1850 ++++++++--------- build/CMakeFiles/git-data/head-ref | 2 +- build/bootloader/.ninja_log | 4 + build/build.ninja | 1697 +-------------- build/compile_commands.json | 2 +- .../__idf_app_update.dir/esp_app_desc.c.obj | Bin 11320 -> 11320 bytes build/esp-idf/app_update/libapp_update.a | Bin 116432 -> 116432 bytes build/experiment-ci-cd.bin | Bin 178224 -> 178224 bytes build/experiment-ci-cd.elf | Bin 2366132 -> 2366132 bytes 12 files changed, 972 insertions(+), 2595 deletions(-) diff --git a/README.md b/README.md index 2701899..ea4925e 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ proporcionar à pessoa estudante um contato real com essas práticas do DevOps n #### Passo 1 -Crie um Token pessoal no GitHub (i) e; faça um Fork (ii) deste projeto. (i) Para criar um Token, clique no ícone do seu perfil, vá em **Settings → Developer settings → Personal access tokens → Tokens (classic) → Generate new token**. Copie e guarde esse código para usar quando o GitHub lhe pedir para usar uma senha. (ii) Clique no botão **Fork** no canto superior direito na página do projeto no GitHub. Ou seja, você vai configurar um servidor CI/CD na sua própria cópia do repositório. +Crie um Token pessoal no GitHub (i) e; faça um Fork (ii) deste projeto. (i) Para criar um Token, clique no ícone do seu perfil, vá em **Settings → Developer settings → Personal access tokens → Tokens (classic) → Generate new token**. Marque as opções "repo" e "workflows" para gerar o Token. Copie e guarde esse código (token) para usar quando o GitHub lhe pedir para usar uma senha. (ii) Clique no botão **Fork** no canto superior direito na página do projeto no GitHub. Ou seja, você vai configurar um servidor CI/CD na sua própria cópia do repositório. #### Passo 2 @@ -19,7 +19,7 @@ Clone o repositório para sua máquina local, usando o seguinte comando (onde `< git clone https://github.com//experiment-ci-cd.git ``` -Em seguida, copie o código a seguir para um arquivo com o seguinte nome: `.github/workflows/experiment-ci-cd.yml`. Isto é, crie diretórios `.github` e depois `workflows` e salve o código abaixo no arquivo `experiment-ci-cd.yml`. Para isso, crie os arquivos em um editor de texto ou IDE na sua máquina. Utilize os comandos `mv`, `cd`, `cd ..` `ls`, `ls - la` e `mkdir` no seu terminal ou use a GUI e configure para visualizar arquivos ocultos. +Em seguida, copie o código a seguir para um arquivo com o seguinte nome: `.github/workflows/experiment-ci-cd.yml`. Isto é, crie diretórios `.github` e depois `workflows` e salve o código abaixo no arquivo `experiment-ci-cd.yml`. Para isso, crie os arquivos em um editor de texto ou IDE na sua máquina. Utilize os comandos `mv`, `cd`, `ls - la` e `mkdir` no seu terminal ou use a GUI e configure para visualizar arquivos ocultos. ```yaml name: experiment-ci-cd #Nome do workflow @@ -106,7 +106,7 @@ Entre no diretório criado (use o comando cd no terminal) ".../experiment-ci-cd/ ```bash git add --all -git commit -m "Configurando GitHub Actions" +git commit -m "Configurando o GitHub Actions" git push origin main ``` @@ -115,7 +115,7 @@ git push origin main Vamos introduzir um bug simples no teste exemplo e enviar um PR, para mostrar que ele não será aceito pelo pipeline CI/CD. #### Passo 1 -Vamos considerar que o sensor retornou um valor que não é esperado pelo nosso teste. Para isso, coloque o valor 45.0 na função `Test`. Por exemplo, basta alterar a linha 15 no arquivo test.c, trocando o valor para 45.0 e salve o arquivo, como apresentado abaixo. +Vamos considerar que o sensor retornou um valor que não é esperado pelo nosso teste. Para isso, coloque o valor 45.0 na função `Test`. Por exemplo, basta alterar a linha 15 no arquivo ".../test/test.c", trocando o valor para 45.0 e salve o arquivo, como apresentado abaixo. ```diff Test(suite_name, test_name){ @@ -180,4 +180,4 @@ E, após finalizar a criação deste novo PR, será iniciada novamente uma pipel $get_idf $idf.py build $idf.py -p /dev/ttyUSB0 flash monitor -``` +``` \ No newline at end of file diff --git a/build/.bin_timestamp b/build/.bin_timestamp index febe2f4..6226892 100644 --- a/build/.bin_timestamp +++ b/build/.bin_timestamp @@ -1 +1 @@ -fc0032aa9424eb9420d4ed03784c1356 /home/igor/esp/experiment-ci-cd/build/experiment-ci-cd.bin +76967211c9e783febed3a6c366dc7e6c /home/igor/esp/experiment-ci-cd/build/experiment-ci-cd.bin diff --git a/build/.ninja_deps b/build/.ninja_deps index 592bccc900d4936756762dde8c1018c7e4573a68..5ce4421610f01645f69cc12d9e10f751862628a5 100644 GIT binary patch delta 56 zcmey-YSz+W*3iP(!qmdt!qURp!q&px!qLLn!qvjv!n1|BSXVAMh1qhDgQ+y6I+VsV0VrCeyFZW;77Bv@$iYGBIL+0{`R^1qGAsQgax$ GX#oKK)DPYO delta 55 zcmcc6%YLDkyDgSyy6Gm#$!V!6$r4MZ)iObx6|j2NK6Ke-==tIV^`{? iH<~LiCMXxr`TV=uMAG41?c4{e_n*p*R3Dv#z(4w<_jONG`sQni*TCmyoMA&&xz@KHh;3KdjQLmdtL{w7*z cqk{ll^w7ruLyR!S1XIkQF-M5S$H{W7zP0c;r~m)} From 3c954cb181b177ae260530f868737c8d9a9be790 Mon Sep 17 00:00:00 2001 From: parrera Date: Wed, 11 Oct 2023 11:15:56 -0300 Subject: [PATCH 16/21] =?UTF-8?q?=C3=9Altimo=20detalhes=20no=20arquivo=20r?= =?UTF-8?q?eadme.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 11 +- build/.bin_timestamp | 2 +- build/.ninja_deps | Bin 885764 -> 886032 bytes build/.ninja_log | 1922 +++++++++-------- build/CMakeFiles/git-data/head-ref | 2 +- build/bootloader/.ninja_log | 22 + build/build.ninja | 2 +- build/compile_commands.json | 2 +- .../__idf_app_update.dir/esp_app_desc.c.obj | Bin 11320 -> 11320 bytes build/esp-idf/app_update/libapp_update.a | Bin 116432 -> 116432 bytes build/experiment-ci-cd.bin | Bin 178224 -> 178224 bytes build/experiment-ci-cd.elf | Bin 2366132 -> 2366132 bytes 12 files changed, 1065 insertions(+), 898 deletions(-) diff --git a/README.md b/README.md index ea4925e..b3ea33f 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ proporcionar à pessoa estudante um contato real com essas práticas do DevOps n #### Passo 1 -Crie um Token pessoal no GitHub (i) e; faça um Fork (ii) deste projeto. (i) Para criar um Token, clique no ícone do seu perfil, vá em **Settings → Developer settings → Personal access tokens → Tokens (classic) → Generate new token**. Marque as opções "repo" e "workflows" para gerar o Token. Copie e guarde esse código (token) para usar quando o GitHub lhe pedir para usar uma senha. (ii) Clique no botão **Fork** no canto superior direito na página do projeto no GitHub. Ou seja, você vai configurar um servidor CI/CD na sua própria cópia do repositório. +Crie um Token pessoal no GitHub (i) e; faça um Fork (ii) deste projeto. (i) Para criar um Token, clique no ícone do seu perfil, vá em **Settings → Developer settings → Personal access tokens → Tokens (classic) → Generate new token**. Marque as opções `repo` e `workflows` para gerar o Token. Gere o token mínimo (7 dias) apenas para este experimento. Copie e guarde esse código (token) para usar quando o GitHub lhe pedir para usar uma senha (password). (ii) Clique no botão **Fork** no canto superior direito na página do projeto no GitHub. Ou seja, você vai configurar um servidor CI/CD na sua própria cópia do repositório. #### Passo 2 @@ -19,7 +19,7 @@ Clone o repositório para sua máquina local, usando o seguinte comando (onde `< git clone https://github.com//experiment-ci-cd.git ``` -Em seguida, copie o código a seguir para um arquivo com o seguinte nome: `.github/workflows/experiment-ci-cd.yml`. Isto é, crie diretórios `.github` e depois `workflows` e salve o código abaixo no arquivo `experiment-ci-cd.yml`. Para isso, crie os arquivos em um editor de texto ou IDE na sua máquina. Utilize os comandos `mv`, `cd`, `ls - la` e `mkdir` no seu terminal ou use a GUI e configure para visualizar arquivos ocultos. +Em seguida, copie o código a seguir para um arquivo com o seguinte nome: `.github/workflows/experiment-ci-cd.yml`. Isto é, crie diretórios `.github` e depois `workflows` e salve o código abaixo no arquivo `experiment-ci-cd.yml`. Para isso, crie os arquivos em um editor de texto ou IDE na sua máquina. Utilize os comandos `mv`, `cd`, `ls`, `mkdir` e `touch` no seu terminal ou use a GUI para criar os diretórios e arquivo e configure para visualizar arquivos ocultos. ```yaml name: experiment-ci-cd #Nome do workflow @@ -151,7 +151,7 @@ Test(suite_name, test_name){ cr_assert(reasonable_values(26.0) == 1); } ``` -Após modificar o código, salve o arquivo e crie um novo branch para consertar o bug, realizar um `commit` e um `push`: +Após modificar o código, salve o arquivo e crie um novo branch para consertar o bug, realize um `add`, um `commit` e um `push`: ```bash git checkout -b fixture @@ -163,8 +163,7 @@ Insira seu nome de usuário e senha (Token) do GH se for requerido Em seguida, crie novamente um Pull Request (PR) com sua correção. Para isso, basta acessar a seguinte URL em seu navegador: `https://github.com//experiment-ci-cd/compare/main...fixture`, onde `` deve ser substituído pelo seu usuário no GitHub. Nessa janela, você pode conferir as modificações feitas. Então, clique no botão "Create pull request" no canto superior direito da tela e na janela que se abrirá, você poderá colocar uma pequena descrição sobre o PR, confirme a criação do PR clicando no botão "Create pull request" no canto inferior direito da janela. Você pode acompanhar o andamento do seu pipeline clicando na aba Actions e em seguida, no nome do PR criado que estará em execução. - -E, após finalizar a criação deste novo PR, será iniciada novamente uma pipeline, ou seja, o próprio GHA vai fazer o build do sistema, rodar o teste e realizará a entrega do artefato criando uma Release do seu projeto. Após criada, sua Release está disponível na página inicial deste seu projeto no canto direito da sua tela. +E, após finalizar a criação deste novo PR, será iniciada novamente uma pipeline, ou seja, o próprio GHA vai fazer o build do sistema, rodar o teste e realizará a entrega do artefato criando uma Release do seu projeto. Após criada, sua `Release` estará disponível na página inicial deste seu projeto no canto direito da sua tela. # FIM @@ -176,7 +175,7 @@ E, após finalizar a criação deste novo PR, será iniciada novamente uma pipel #### Para deploy no protótipo: -```bashBa +```bash $get_idf $idf.py build $idf.py -p /dev/ttyUSB0 flash monitor diff --git a/build/.bin_timestamp b/build/.bin_timestamp index 6226892..027d9d0 100644 --- a/build/.bin_timestamp +++ b/build/.bin_timestamp @@ -1 +1 @@ -76967211c9e783febed3a6c366dc7e6c /home/igor/esp/experiment-ci-cd/build/experiment-ci-cd.bin +3c490b989fa1b1f190b9c55a3008b1c9 /home/igor/esp/experiment-ci-cd/build/experiment-ci-cd.bin diff --git a/build/.ninja_deps b/build/.ninja_deps index 5ce4421610f01645f69cc12d9e10f751862628a5..3d49c0a1ce144d5dda6a188c99658c327178a9bd 100644 GIT binary patch delta 56 zcmZqaFq_b2*3iP(!qmdt!qURp!q&px!qLLn!qvjv!n1{!rG=k^k)h!lBLlTc0+1$jqO$z`&W((T@ diff --git a/build/esp-idf/app_update/libapp_update.a b/build/esp-idf/app_update/libapp_update.a index b51bff4510e9088d8b2d57993a8d91500d5b5191..77d36c75fd2c0a96aac5602866a376dd14bdfc6f 100644 GIT binary patch delta 54 zcmcc6%YLDkyDip7y6MS@21zOA)33~CG!!+pGBN=o1}N}PE>Tdh+%7eTahnzZ D_685u delta 54 zcmcc6%YLDkyDinny6I+VsV0Vr)33~CG!(V8GBvO=F=BuM|Kt({1(WSka~QX2 F0RZp852*kE diff --git a/build/experiment-ci-cd.bin b/build/experiment-ci-cd.bin index 4cb0fc174932ce863aee3c0d015824c6238ab61e..10fd18f3d5890508760803b7b3abd626b4c1a281 100644 GIT binary patch delta 130 zcmdn+fosDDt_kLxrn>3Li3Uk2<`W$ZMNO@YOn`_13jC8x6cj8cwrMHk{}-Mqd+Sf2 ztD)@a;J^T#<)7|WDZcomQ*_wSXa8KWACm*?0-6;V+Z7lYw<|C*z2BzTP^>-a^_IIk f&s$admde~YyM&@(kv delta 130 zcmdn+fosDDt_kLxCc5cnX{jcLi4z?RMJ=sN4XjLz7@)vExkN$1WMZ3^!tz@p)31M=6ja$W&1M32s6&TwU7#X)KFfzU0rg&&$SL&uW hnkz3RC>PK9{JYvj(&1h0+y|@opV7OrYp&CwH~X~m$q)7QtJM@Of{`&8b)?t4O)o}*n#9XmDq?u#rC`sC+{;n`TJqy zcqL-T>q~YD({u7XNaV%)&6W!P9kZ)ayPKA~76V0?D4~oBs<2?gK@D{@&_oNre;Y13 c=)yw}efSt)h!Mt^V2T+O=2&3)(XtAhFHCbd8vpLyQnYVT=i;Un8@H`vWaDH|_uc From e318b088b879e0cadd3bfa17a8c2e214f970e16c Mon Sep 17 00:00:00 2001 From: parrera Date: Fri, 13 Oct 2023 16:04:43 -0300 Subject: [PATCH 17/21] sugestao .github/ no arquivo readme.md --- README.md | 2 +- build/.bin_timestamp | 2 +- build/.ninja_deps | Bin 886032 -> 886300 bytes build/.ninja_log | 1958 ++++++++--------- build/CMakeFiles/git-data/head-ref | 2 +- build/bootloader/.ninja_log | 8 + build/build.ninja | 2 +- build/compile_commands.json | 2 +- .../__idf_app_update.dir/esp_app_desc.c.obj | Bin 11320 -> 11320 bytes build/esp-idf/app_update/libapp_update.a | Bin 116432 -> 116432 bytes build/experiment-ci-cd.bin | Bin 178224 -> 178224 bytes build/experiment-ci-cd.elf | Bin 2366132 -> 2366132 bytes 12 files changed, 936 insertions(+), 1040 deletions(-) diff --git a/README.md b/README.md index b3ea33f..1f823a4 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Clone o repositório para sua máquina local, usando o seguinte comando (onde `< git clone https://github.com//experiment-ci-cd.git ``` -Em seguida, copie o código a seguir para um arquivo com o seguinte nome: `.github/workflows/experiment-ci-cd.yml`. Isto é, crie diretórios `.github` e depois `workflows` e salve o código abaixo no arquivo `experiment-ci-cd.yml`. Para isso, crie os arquivos em um editor de texto ou IDE na sua máquina. Utilize os comandos `mv`, `cd`, `ls`, `mkdir` e `touch` no seu terminal ou use a GUI para criar os diretórios e arquivo e configure para visualizar arquivos ocultos. +Em seguida, no diretório clonado, copie o código a seguir para um arquivo com o seguinte nome e caminho: `.github/workflows/experiment-ci-cd.yml`. Isto é, crie diretórios `.github` e depois `workflows` e salve o código abaixo no arquivo `experiment-ci-cd.yml`. Para isso, crie os arquivos em um editor de texto ou IDE na sua máquina. Utilize os comandos `mv`, `cd`, `ls`, `mkdir` e `touch` no seu terminal ou use a GUI para criar os diretórios e arquivo e configure para visualizar arquivos ocultos. ```yaml name: experiment-ci-cd #Nome do workflow diff --git a/build/.bin_timestamp b/build/.bin_timestamp index 027d9d0..a8d657d 100644 --- a/build/.bin_timestamp +++ b/build/.bin_timestamp @@ -1 +1 @@ -3c490b989fa1b1f190b9c55a3008b1c9 /home/igor/esp/experiment-ci-cd/build/experiment-ci-cd.bin +28d44222d8f8f3663d035ae30f41f9c4 /home/igor/esp/experiment-ci-cd/build/experiment-ci-cd.bin diff --git a/build/.ninja_deps b/build/.ninja_deps index 3d49c0a1ce144d5dda6a188c99658c327178a9bd..2e8305f436df183dd79a525504dfba2ff83504c3 100644 GIT binary patch delta 56 zcmbQxWj3eBtf7Umg{g(Pg{6hHg{_6Xg`Y47tf7Umg{g(Pg{6hHg{_6Xg`oPcBg~G~C?8xJ?THOArhi delta 49 xcmdlHu_I!GF(a3$ZhCT}K~jpj$z)qb15r~eBNHHEfCB&I5(Ndz%}tEkv;a}Z3_Sn< diff --git a/build/esp-idf/app_update/libapp_update.a b/build/esp-idf/app_update/libapp_update.a index 77d36c75fd2c0a96aac5602866a376dd14bdfc6f..efee4e9a49e65d4225cb2f16efd59b1d7d497de5 100644 GIT binary patch delta 55 zcmcc6%YLDkyDgRny6MKrmZm1jNz<>+W;75rv@$laGB9C)0{`R^1w+H_Qgax$ GX#oKKLl5Wx delta 55 zcmcc6%YLDkyDgSSy6MS@21zOACeyFZW;75rwK6gRA_ge%PcBhVu-q;+hjE)0 E00mPJ3jhEB diff --git a/build/experiment-ci-cd.bin b/build/experiment-ci-cd.bin index 10fd18f3d5890508760803b7b3abd626b4c1a281..6285820655521deba12252059c7feb4bb17440d2 100644 GIT binary patch delta 131 zcmdn+fosDDt_kK`X1eLd$(E)j$w?C(4MYvCj7_WzOc3Li3Uk2<|Y#z4Ma_?j7)%t0Sf$+OB56=C$?!REOTso#mhIRw=&tq*HX*&}aW#u^*EI>jIh;7~2&X8MiAiGQHoX*ifuJ>GhVo gJI`BH`bm@0`FL)WQYaKvK367qMt@Jx}5#-}0sJhnM2D z7qweoVtd#cdww1z@^uoMBr=(QCwmRGzB#!&@sLFhc@$7Y31w8EP(=-OG| Date: Fri, 21 Feb 2025 16:31:12 -0300 Subject: [PATCH 18/21] atualizando o .yml para @v4 --- .github/workflows/experiment-ci-cd.yml | 70 ++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 .github/workflows/experiment-ci-cd.yml diff --git a/.github/workflows/experiment-ci-cd.yml b/.github/workflows/experiment-ci-cd.yml new file mode 100644 index 0000000..1299b58 --- /dev/null +++ b/.github/workflows/experiment-ci-cd.yml @@ -0,0 +1,70 @@ +name: experiment-ci-cd #Nome do workflow +on: + pull_request: + branches: + - main #Executar quando houver um pull_request na branch main +jobs: #Define os 3 Jobs que serão executados no workflow + build: #Job responsável por compilar o projeto + runs-on: ubuntu-latest #Os comandos serão executados na última versão da distribuição Ubuntu + permissions: + contents: write #Permissão de escrita em conteúdos + steps: + - name: Repo checkout #Nome da etapa que usará uma actions para clonar o repositório do GH + uses: actions/checkout@v4 #Action reusável que clona o repo do GH na estação de trabalho + + - name: Espressif IoT Development Framework (ESP-IDF) #Interação com o ESP-IDF + uses: espressif/esp-idf-ci-action@v1.1.0 #Action fornecida pela Espressif + with: + esp_idf_version: v4.4 #Versão do ESP-IDF a ser utilizada + target: esp32 #Especifica a plataforma de compilação + + - name: Store Artifacts + uses: actions/upload-artifact@v4 #Armazena os artefatos gerados pela compilação + with: + name: experiment-ci-cd #Especifica o nome do artefato criado + path: build/experiment-ci-cd.bin + + test: #Job responsável por compilar os testes unitários e gerar os artefatos relacionados + runs-on: ubuntu-latest + permissions: + checks: write + pull-requests: write + needs: [build] #Job test só será executado se o Job build for bem-sucedido + steps: + - name: Repo checkout + uses: actions/checkout@v4 + + - name: Build tests + run: | + sudo apt-get install libcriterion-dev + sudo apt-get install meson + cd test + gcc -o test test.c -lcriterion + ./test --xml > test.xml + + - name: Show results + uses: EnricoMi/publish-unit-test-result-action@v2 + if: always() #Sempre executa essa etapa + with: + files: test/test.xml #Arquivo com os resultados dos testes + + delivery: + runs-on: ubuntu-latest + permissions: + contents: write + needs: [test] #Este job depende do job "test" + steps: + - name: Repo checkout + uses: actions/checkout@v4 #Clona o repositório do GitHub + + - name: Download artifacts + uses: actions/download-artifact@v4 #Baixa os artefatos gerados no job "build" + with: + name: experiment-ci-cd + + - name: Create release + uses: ncipollo/release-action@v1.12.0 #Action para criar release + with: + artifacts: "experiment-ci-cd.bin" #Artefato que será criado na release + tag: 0.1.5 #Tag do release + bodyFile: "body.md" #Arquivo contendo o corpo do release From 09aa02518935aec90a8f9e39ff0ef0738fc5ac16 Mon Sep 17 00:00:00 2001 From: parrera Date: Fri, 21 Feb 2025 16:34:33 -0300 Subject: [PATCH 19/21] removendo diretorio .github e atualizando readme para @v4 --- .github/workflows/experiment-ci-cd.yml | 70 -------------------------- README.md | 12 ++--- 2 files changed, 6 insertions(+), 76 deletions(-) delete mode 100644 .github/workflows/experiment-ci-cd.yml diff --git a/.github/workflows/experiment-ci-cd.yml b/.github/workflows/experiment-ci-cd.yml deleted file mode 100644 index 1299b58..0000000 --- a/.github/workflows/experiment-ci-cd.yml +++ /dev/null @@ -1,70 +0,0 @@ -name: experiment-ci-cd #Nome do workflow -on: - pull_request: - branches: - - main #Executar quando houver um pull_request na branch main -jobs: #Define os 3 Jobs que serão executados no workflow - build: #Job responsável por compilar o projeto - runs-on: ubuntu-latest #Os comandos serão executados na última versão da distribuição Ubuntu - permissions: - contents: write #Permissão de escrita em conteúdos - steps: - - name: Repo checkout #Nome da etapa que usará uma actions para clonar o repositório do GH - uses: actions/checkout@v4 #Action reusável que clona o repo do GH na estação de trabalho - - - name: Espressif IoT Development Framework (ESP-IDF) #Interação com o ESP-IDF - uses: espressif/esp-idf-ci-action@v1.1.0 #Action fornecida pela Espressif - with: - esp_idf_version: v4.4 #Versão do ESP-IDF a ser utilizada - target: esp32 #Especifica a plataforma de compilação - - - name: Store Artifacts - uses: actions/upload-artifact@v4 #Armazena os artefatos gerados pela compilação - with: - name: experiment-ci-cd #Especifica o nome do artefato criado - path: build/experiment-ci-cd.bin - - test: #Job responsável por compilar os testes unitários e gerar os artefatos relacionados - runs-on: ubuntu-latest - permissions: - checks: write - pull-requests: write - needs: [build] #Job test só será executado se o Job build for bem-sucedido - steps: - - name: Repo checkout - uses: actions/checkout@v4 - - - name: Build tests - run: | - sudo apt-get install libcriterion-dev - sudo apt-get install meson - cd test - gcc -o test test.c -lcriterion - ./test --xml > test.xml - - - name: Show results - uses: EnricoMi/publish-unit-test-result-action@v2 - if: always() #Sempre executa essa etapa - with: - files: test/test.xml #Arquivo com os resultados dos testes - - delivery: - runs-on: ubuntu-latest - permissions: - contents: write - needs: [test] #Este job depende do job "test" - steps: - - name: Repo checkout - uses: actions/checkout@v4 #Clona o repositório do GitHub - - - name: Download artifacts - uses: actions/download-artifact@v4 #Baixa os artefatos gerados no job "build" - with: - name: experiment-ci-cd - - - name: Create release - uses: ncipollo/release-action@v1.12.0 #Action para criar release - with: - artifacts: "experiment-ci-cd.bin" #Artefato que será criado na release - tag: 0.1.5 #Tag do release - bodyFile: "body.md" #Arquivo contendo o corpo do release diff --git a/README.md b/README.md index 1f823a4..49fe398 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ jobs: #Define os 3 Jobs que serão executados no workflow contents: write #Permissão de escrita em conteúdos steps: - name: Repo checkout #Nome da etapa que usará uma actions para clonar o repositório do GH - uses: actions/checkout@v3 #Action reusável que clona o repo do GH na estação de trabalho + uses: actions/checkout@v4 #Action reusável que clona o repo do GH na estação de trabalho - name: Espressif IoT Development Framework (ESP-IDF) #Interação com o ESP-IDF uses: espressif/esp-idf-ci-action@v1.1.0 #Action fornecida pela Espressif @@ -43,7 +43,7 @@ jobs: #Define os 3 Jobs que serão executados no workflow target: esp32 #Especifica a plataforma de compilação - name: Store Artifacts - uses: actions/upload-artifact@v3 #Armazena os artefatos gerados pela compilação + uses: actions/upload-artifact@v4 #Armazena os artefatos gerados pela compilação with: name: experiment-ci-cd #Especifica o nome do artefato criado path: build/experiment-ci-cd.bin @@ -56,7 +56,7 @@ jobs: #Define os 3 Jobs que serão executados no workflow needs: [build] #Job test só será executado se o Job build for bem-sucedido steps: - name: Repo checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Build tests run: | @@ -79,10 +79,10 @@ jobs: #Define os 3 Jobs que serão executados no workflow needs: [test] #Este job depende do job "test" steps: - name: Repo checkout - uses: actions/checkout@v3 #Clona o repositório do GitHub + uses: actions/checkout@v4 #Clona o repositório do GitHub - name: Download artifacts - uses: actions/download-artifact@v3 #Baixa os artefatos gerados no job "build" + uses: actions/download-artifact@v4 #Baixa os artefatos gerados no job "build" with: name: experiment-ci-cd @@ -179,4 +179,4 @@ E, após finalizar a criação deste novo PR, será iniciada novamente uma pipel $get_idf $idf.py build $idf.py -p /dev/ttyUSB0 flash monitor -``` \ No newline at end of file +``` From 6529b634d17c389781025501f55d1e90f203e29e Mon Sep 17 00:00:00 2001 From: Nicholas-SJ Date: Thu, 18 Dec 2025 21:36:46 -0300 Subject: [PATCH 20/21] Configurando o GitHub Actions - Nicholas Andrade --- .github/workflows/experiment-ci-cd.yml | 65 ++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 .github/workflows/experiment-ci-cd.yml diff --git a/.github/workflows/experiment-ci-cd.yml b/.github/workflows/experiment-ci-cd.yml new file mode 100644 index 0000000..2a608c4 --- /dev/null +++ b/.github/workflows/experiment-ci-cd.yml @@ -0,0 +1,65 @@ +name: experiment-ci-cd +on: + pull_request: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Repo checkout + uses: actions/checkout@v4 + - name: Espressif IoT Development Framework (ESP-IDF) + uses: espressif/esp-idf-ci-action@v1.1.0 + with: + esp_idf_version: v4.4 + target: esp32 + - name: Store Artifacts + uses: actions/upload-artifact@v4 + with: + name: experiment-ci-cd + path: build/experiment-ci-cd.bin + + test: + runs-on: ubuntu-latest + permissions: + checks: write + pull-requests: write + needs: [build] + steps: + - name: Repo checkout + uses: actions/checkout@v4 + - name: Build tests + run: | + sudo apt-get install libcriterion-dev + sudo apt-get install meson + cd test + gcc -o test test.c -lcriterion + ./test --xml > test.xml + - name: Show results + uses: EnricoMi/publish-unit-test-result-action@v2 + if: always() + with: + files: test/test.xml + + delivery: + runs-on: ubuntu-latest + permissions: + contents: write + needs: [test] + steps: + - name: Repo checkout + uses: actions/checkout@v4 + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: experiment-ci-cd + - name: Create release + uses: ncipollo/release-action@v1.12.0 + with: + artifacts: "experiment-ci-cd.bin" + tag: 8.1.5 + bodyFile: "body.md" \ No newline at end of file From 45dcf1ea38ad16c062e7d582ece3f815cb0a8d40 Mon Sep 17 00:00:00 2001 From: Nicholas-SJ Date: Thu, 18 Dec 2025 21:44:23 -0300 Subject: [PATCH 21/21] =?UTF-8?q?Alterando=20a=20fun=C3=A7=C3=A3o=20Test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test.c b/test/test.c index 883be52..4666294 100644 --- a/test/test.c +++ b/test/test.c @@ -12,5 +12,5 @@ int reasonable_values(float value){ // Teste para verificar a função reasonable_values Test(suite_name, test_name){ // Verifica se a função retorna 1 quando o valor 25.0 é atribuído - cr_assert(reasonable_values(25.0) == 1); + cr_assert(reasonable_values(45.0) == 1); } \ No newline at end of file