O monorepositório dos componentes do SYZ.
- Como usar os componentes
- Desenvolvimento, por onde começar
- Estrutura do projeto
- Contribuindo para o SYZ
- CI/CD
- Sobre o Lerna bot
Veja a instalação e a configuração necessária para usar os componentes na página Como usar os componentes.
# Instalar dependências do projeto raíz
npm install
# Instalar dependências dos componentes
npm run bootstrap
Este repositório agrupa todos os pacotes de componentes do SYZ na pasta packages
. Usamos o Lerna para gerenciar os múltiplos pacotes e esta é a estrutura essencial do monorepositório:
.
├── lerna.json
├── package.json
└── packages
└── components
├── wc-wiz-alert # componente exemplo
│ ├── src
│ └── package.json
└── wc-wiz-button # componente exemplo
├── src
└── package.json
lerna.json
- arquivo de configuração do lerna. Você pode ver todas as opções de configuração aqui.
package.json
- arquivo com metadados relevante ao monorepositório.
packages
- Esta pasta agrupa os múltiplos pacotes de componentes.
Veja o guia de contribuição.
Integração e entrega contínua estão configuradas pelo arquivo azure-pipelines.yml
.
O pipieline de CI/CD irá buildar e testar os componentes quando houver commits em qualquer branch. Confirme que cada pacote tenha comandos para os scripts test
e build
, pois Lerna irá executar um npm build
e npm test
para cada um.
O pipeline de CI/CD está configurado para automaticamente executar o versionamento e a publicação dos pacotes para a organização npm da @wizsolucoes quando alterações relevantes entrarem na branch master
. Lerna está configurado para ignorar alterações em arquivos de teste e de documentação para gerar novas versões.
Além de publicar os componentes, o pipeline de também publica a documentação dos componentes no site do SYZ. Veja o guia de documentação para entender melhor o processo.
Como mencionado anteriormente, o pipeline de CI/CD está configurado para automaticamente executar o versionamento e a publicação. Estas ações são feitas pelo usuário "Lerna bot" :
- Cria/atualiza o
CHANGELOG.md
de cada componente - Atualiza a versão no
package.json
de cada componente - Cria um tag para as novas versões
- Publica cada componente que teve uma nova versão.
Você pode ver as alterações que o "bot" fez na branch master
depois do merge do um PR: