Índice:

Jenkins Job Traffic Lights: 8 etapas (com imagens)
Jenkins Job Traffic Lights: 8 etapas (com imagens)

Vídeo: Jenkins Job Traffic Lights: 8 etapas (com imagens)

Vídeo: Jenkins Job Traffic Lights: 8 etapas (com imagens)
Vídeo: 1 | Jenkins 2023 | Getting Started | Step-by-Step for Beginners 2024, Novembro
Anonim
Jenkins Job Traffic Lights
Jenkins Job Traffic Lights

Na engenharia de software, a integração contínua é a prática de mesclar todas as cópias de trabalho do desenvolvedor em uma linha principal compartilhada várias vezes ao dia. Algumas das melhores práticas para conseguir isso são:

  • todos se comprometem com a linha de base todos os dias,
  • automatizar a construção,
  • todos podem ver os resultados das compilações mais recentes.
  • …e muitos outros.

Para cumprir apenas esses 3 pontos acima, é importante ser notificado sobre o status da compilação o mais rápido possível.

Este projeto ajuda a alcançar isso criando um mini semáforo pessoal que indica o status atual da construção. Eu construí 2 conjuntos de semáforos que são integrados ao servidor de automação Jenkins que é puxado pelo NodeMCU periodicamente via WiFi.

Etapa 1: Materiais e Ferramentas

Materiais que usei:

  • NodeMCU (usei v3) (BangGood.com)
  • Cabos jumper de placa de ensaio macho para fêmea, (BangGood.com)
  • 2 conjuntos de LEDs: vermelho, amarelo, verde (BangGood.com)
  • 2 conjuntos de 3 resistores (450Ω, 500Ω, 22Ω)
  • 2 placas de PCB protótipo finas, mas longas (BangGood.com)
  • cabo microUSB como fonte de alimentação
  • Alguma caixa (usei uma para componentes elétricos de alta tensão. Encontrei muitos formatos diferentes e baratos na minha loja local de bricolagem)
  • 2 canetas ou 2 tubos grossos de 0,5-1cm de diâmetro interno; e / ou 2 canudos grossos de bebida

Ferramentas necessárias:

  • Faca afiada (por exemplo, faca para cortar carpete)
  • Ferramenta rotativa
  • Pistola de cola quente
  • Estação de solda
  • Alicates, alicates diagonais / cortadores laterais
  • Chave de fenda
  • Pedaço de papel grosso
  • Fita adesiva dupla-face
  • Vocês

Etapa 2: semáforos

Luzes de trânsito
Luzes de trânsito
Luzes de trânsito
Luzes de trânsito
Luzes de trânsito
Luzes de trânsito

Para construir semáforos, usamos placa de prototipagem 20x80mm. Solda os LEDs para que sejam posicionados em uma linha. Eu usei estes valores de resistor:

  • vermelho: 510Ω
  • amarelo: 470Ω
  • verde: 22Ω

Os valores são muito mais altos do que o recomendado (corrente máxima de 20mA por LED), mas experimentando valores diferentes, a luz não é muito brilhante e também todos os 3 têm intensidade semelhante. Observe que a tensão é de 3,3 V para NodeMCU.

A fiação é direta, basta conectar (soldar) o cátodo de cada LED com o resistor e depois soldar na extremidade macho do cabo de jumper. De um lado da placa, eu queria apenas elementos de LED, sem quaisquer outras partes que "saltassem" como pernas do resistor, fios e assim por diante. É por isso que usei uma "técnica" que é uma espécie de SMD usando componentes PCB.

Vamos deixar assim por enquanto; a cobertura das luzes será feita mais tarde.

Etapa 3: Caixa - Principal

Box - Principal
Box - Principal
Box - Principal
Box - Principal
Box - Principal
Box - Principal

Precisamos embutir nosso NodeMCU na parte inferior da caixa. A caixa precisa de um orifício para a porta microUSB para que possamos ligar a unidade principal. Eu medi raughly a posição do buraco e eu apenas o perfurei.

Em seguida, conectei os espaçadores de plástico usando parafusos para nodemcu. Eu coloco um pouco de cola em cada canto da caixa e coloco toda a construção nela. Depois que ele esfriou, eu desparafusei o NodeMCU e coloquei um pouco de cola quente adicional ao redor dos espaçadores que eu tinha certeza que estavam posicionados perfeitamente para o NodeMCU. Obrigado, nada está balançando dentro da caixa e podemos facilmente conectar a porta microUSB sem mover coisas dentro.

Etapa 4: Caixa - Tampa

Caixa - Tampa
Caixa - Tampa
Caixa - Tampa
Caixa - Tampa
Caixa - Tampa
Caixa - Tampa
Caixa - Tampa
Caixa - Tampa

Primeiro tentei usar canudos de bebida como um poste para meus semáforos, mas depois de alguns testes, descobri que o plástico é muito fino e quando eu queria usar uma cola quente para fixá-lo, ele ficou muito macio e até mudou Sua forma. Então decidi usar algo mais difícil - canetas. Escolhi algumas canetas transparentes baratas, que cortei no comprimento desejado e coloquei 4 cabos (1 de cada vez) dos semáforos através do cano.

Fiz furos em uma linha média da tampa de acordo com o diâmetro da caneta. Em seguida, coloquei canetas dentro dos orifícios e colei-as com cola quente na parte inferior da tampa, tentando manter as hastes retas.

Também coloquei um pouco de cola quente no topo do poste para prender as placas dos semáforos aos postes.

Etapa 5: montagem

Montagem
Montagem
Montagem
Montagem

Eu conectei os fios ao NodeMCU (pinagem):

Semáforo esquerdo:

  • vermelho para D2 (GPIO4)
  • amarelo para D3 (GPIO0)
  • verde para D4 (GPIO2)
  • aterrado no GND (acabei de escolher um dos pinos GND do NodeMCU)

Semáforo à direita:

  • vermelho para D5 (GPIO14)
  • amarelo para D6 (GPIO12)
  • verde para D7 (GPIO13)
  • aterrado no GND (acabei de escolher um dos pinos GND do NodeMCU)

… E fechei a tampa. Os fios que escolhi eram bastante longos, então tive alguns problemas em colocá-los todos dentro da pequena caixa, mas de alguma forma consegui fazer isso.

Etapa 6: Tampa das Luzes

Capa das Luzes
Capa das Luzes
Capa das Luzes
Capa das Luzes
Capa das Luzes
Capa das Luzes
Capa das Luzes
Capa das Luzes

Não consegui encontrar nenhuma solução pronta para cobrir as luzes - algum tipo de caixa de doces ou algo assim. Então, decidi construí-los à mão apenas cortando uma caixa de papel.

O tamanho da caixa que escolhi foi: 20 mm x 15 mm x 85 mm.

Eu cortei os buracos para que eu corte uma espécie de "estrelas" nos lugares apropriados onde os LEDs foram posicionados. Colei com fita adesiva dupla-face.

Para cobrir os postes transparentes, pode-se usar hidrocor permanente, fita adesiva não transparente, … Usei canudinhos pretos que cortei de ponta a ponta. Então eu cobri os postes.

Fiquei mais do que feliz com o resultado final.

Etapa 7: Software

Existem muitas abordagens para indicar o estado de compilação atual. Eu implementei tal comportamento:

A luz vermelha ou verde acende quando a compilação está falhando ou passando de acordo. A luz amarela pisca sempre que é feita uma chamada HTTP e fica continuamente ligada durante a construção de um plano.

Você pode facilmente alterar a implementação de acordo com suas necessidades - tente experimentar e verificar o que se adapta a você e / ou sua equipe.

Você precisa configurar o código antes de enviá-lo para seu NodeMCU. Você precisa definir no máximo 2 WiFis.

Além disso, você precisa definir seu token de usuário. Para obter o token de API, clique em Seu nome de usuário no canto superior direito do Jenkins e em Configuração. Você pode encontrar um botão "Mostrar token API". Para construir o valor de autenticação básica, crie uma string usando o padrão:

USER_NAME: API_TOKEN

e, em seguida, codifique-o usando Base64. Por exemplo. para a string falsa acima, você deve obter o valor Base64:

VVNFUl9OQU1FOkFQSV9UT0tFTg ==

Você também deve definir o host Jenkins, a porta e os caminhos de 2 jobs.

Após esta configuração e upload do esboço - você está pronto para usar seus semáforos.

O código também está disponível no GitHub.

Etapa 8: últimas palavras

Para ligar o dispositivo, basta conectá-lo a qualquer tomada USB. Ele usa conexão Wi-Fi para acessar a Internet, portanto, qualquer tomada USB está OK - porta de computador ou carregador. Depois de inicializar e conectar-se ao WiFi, seus semáforos começarão a mostrar o status de compilação atual.

Acho este semáforo muito útil. Eles estão próximos aos meus monitores no escritório e sempre que uma luz vermelha acende - eu noto imediatamente. Não preciso perder tempo para verificar o status da compilação diretamente no Jenkins.

Uma melhoria poderia ser feita usando algum brinquedo de semáforo em vez de construir um sozinho do zero (lixo?).

Espero que você encontre alguma inspiração para construir seus próprios semáforos integrados Jenkins.

Recomendado: