-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Arduino Compile Sketch #67
Conversation
Implementa uma nova Action, no qual tem como função compilar os códigos de exemplo da biblioteca Brasilino. Tem como base o compilador do Arduino UNO.
Realiza o compile, por meio do método de _matrix_ para múltiplas placas Arduino. A princípio as placas são: - Arduino Uno; - Arduino Mega 2560; - Arduino Leornardo; - Arduino Gemma.
Ótimo trabalho @SteffanoP! Quanto aos códigos que vão ser compilados, teria algum problema rodar todos os exemplos automaticamente? (imaginando que no futuro venham a ser desenvolvidos novos exemplos dentro do diretório |
Interessante seu ponto de vista, não havia pensado nisso. Neste momento, como eu ainda estou aprendendo sobre as Estratégias de trabalho com Actions, não conseguiria fazer algo automático para usar o comando compile e analisar todos os diretórios em No meu limite de conhecimento eu teria que inserir de forma manual cada diretório... o que não seria algo bonito e responsivo para novos exemplos. Todavia, está aberto para outros colaboradores (quem sabe @OtacilioN que tem mais experiência com o GitHub) para sugerir soluções nesse empecilho. |
@ErickSimoes Estava desenvolvendo a compatibilidade para Programador Quando compilado dá o seguinte erro:
https://github.com/SteffanoP/Brasilino/pull/3/checks?check_run_id=2206513697 Todo o desenvolvimento desse commit está em SteffanoP/Brasilino#3 Esse problema não acontece com a placa Arduino Gemma. Porém, houve um hotfix em #28, que se aplica apenas ao Arduino Gemma, para o Franzininho/micronucleus esse hotfix não se aplica e pode estar relacionado ao problema da Serial. |
Excelente contribuição @SteffanoP. Só confirmando o Status do Merge Request, atualmente se encontra em draft (raschunho), correto? Fico no aguarda da finalização do que estas planejando para este merge request para que possamos mergear 🎉 |
@OtacilioN por enquanto estamos definindo algumas coisas (ver Checklist da PR), quando estiver pronto vou abrir para Review, pode ficar tranquilo! |
Massa @SteffanoP, e mais uma vez parabéns e obrigado por contribuir com a Brasilino! |
This comment has been minimized.
This comment has been minimized.
Desabilita o ato de cancelar outros compiles, caso algum compile da matrix falhe
Habilita o Actions de Compile para os programas em `./exemplos`, com exceção de: - `./examples/Basicos/ControleGradual` - pois não possuí suporte da `Brasilino.h` para nenhuma placa - ver [SteffanoP/Brasilino/actions#694028507](https://github.com/SteffanoP/Brasilino/actions/runs/694009916) - `./examples/Intermediarios/ASCII` - pois não possuí suporte da `Brasilino.h` para nenhuma placa - ver [SteffanoP/Brasilino/actions#694017433](https://github.com/SteffanoP/Brasilino/actions/runs/694017433)
Adiciona o suporte para a placa Franzininho com o Programador/Compilador micronucleus
Por ser um código que exige mais recursos, achei interessante ser deixado como último a ser compilado
@OtacilioN e @ErickSimoes verifiquei que dois exemplos não conseguem ser compilados para todas as plataformas suportadas nesse repositório, que é o caso do controleGradual.ino failed
Além disso há exemplos que estão descontinuados para Arduino Gemma e micronucleus, ambos com processadores semelhante ao do Franzininho, que estão representados nos testes analogicoSerial.ino failed on arduino-gemma
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Obrigado por contribuir com a Brasilino!
Sumário
Esta Pull Request visa implantar o Arduino Compile Sketch como CI, por meio da ferramenta GitHub Action, como em #64.
O Arduino Compile Sketch é uma ferramenta que se baseia nas ferramentas da Arduino-CLI, para compilação e
envio, quem sabe futuramente. Com essa Action será possível compilar os códigos de exemplos, para verificar e assegurar que a compilação em determinadas placas está ocorrendo com sucesso, facilitando o processo de testagem, visto que, havia certas dificuldades (#26) em assegurar que push e pull request funcionavam para todas as placas que o Brasilino realiza suporte.Outras Informações
Checklist
test-placas
controleGradual
não inserido por estar descontinuadoASCII
não inserido por estar descontinuadocompile.yml
deixar bonitoTestes
Foram realizados testes em minha fork, disponível em SteffanoP/Brasilino.
Nas Actions deste projeto é possível visualizar diversos testes.
Como também nas Actions de minha fork para ver todos os testes.
Sobre o Franzininho
Como requerido por @ErickSimoes, seria interessante alguma placa compatível com ATtiny85 (do Franzininho). A priori, foi estabelecido a placa Arduino Gemma e também a placa da Digispark-tiny com Programador micronucleus.
Descrição das mudanças
Cria o Action Workflow:
compile.yml
, com função de compilar os códigos de exemplos em Brasilino/examples. Atua sempre que houver Push e Pull Requests na/para branch masterodeio esse nome, prefiro main.Há apenas um job a ser realizado, que se trata do
Arduino Compile / test-placas
.Em
test-placas
a estratégia adotada é de matrix, que envolve asboards
(placas) a serem testadas:O ambiente de teste é o ubuntu, devido a compatibilidade do compactador Zip.
Os passos seguem a seguinte ordem:
Checkout
Utilizado para estabelecer e gerenciar o repositório Git
Instalar Compactador Zip
É necessário Compactar a pasta
src
(fonte da biblioteca), visto que, é uma necessidade do arduino-cli para instalar a bibliotecaBrasilino.h
.Setup Arduino CLI
É de suma importância nesta Pull Request, visto que, será a ferramenta que irá realizar a compilação dos sketches para as placas citadas anteriormente
Instalar Plataforma Arduino
Realiza a instalação da Plataforma de placas, ao qual, se refere diretamente ao conjunto de placas da plataforma e seus requisitos (trata-se do compilador, na Arduino IDE chamamos de Programador).
Habilitar instalação não segura
É um requisito do tópico Instalação Brasilino, pois o método para instalar a biblioteca se baseia em pegar o formato .zip da biblioteca local, todavia, essa não é uma instalação segura, pois, conforme a Arduino Team diz, este processo não passa pelo Processo de Gerenciamento de Bibliotecas. MAS, neste caso, não é necessário tal precaução, visto que, você está tratando o código fonte da própria biblioteca; logo, a precaução não é necessária neste caso.
Instalação Brasilino
Realiza a Instalação da Biblioteca local (on push ou on PR), por meio do método
arduino-cli lib install --zip-path
que obtém aBrasilino.h
em formato.zip
, visto em Instalar Compactador Zip.Compile Sketch
Faz o Compile de Sketch, neste caso específico, realiza o Compile apenas do Programa
Piscar.ino
.Benefícios
Possibilita realizar uma triagem mais detalhada nas compilações de códigos para diversas plataformas Arduino (ex.: arduinoavr, arduinoOTA, esp32, esp8266 e etc.).
Possíveis desvantagens
A implementação do modo de compilação para os diversos exemplos acontece de maneira contínua para cada job, ou seja, em cada job que é executado é realizado o compile de todos os exemplos, e se um exemplo apresentar um erro não é compilado o restante dos códigos. O ideal seria colocar cada comando
arduino-cli compile
em matrix; porém devido as limitações do meu conhecimento, não consegui fazer de uma forma que cada compile dos./exemplos
se tornasse independente.Também há a necessidade de adicionar um script para realizar o compile de forma automática, atualmente é necessário alterar manualmente o destino de compile no
./.github/workflows/compile.yml
sempre que for adicionado um exemplo.Problemas Relacionados
Esta PR facilita o processo de testagem e triagem da PR #26
Resolves #66