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 bootstrapEste 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.jsonlerna.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.mdde cada componente - Atualiza a versão no
package.jsonde 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:
