@govbr-ds/config-tools v3.1.0
GovBR-DS - Config Tools
Objetivo
Compartilhar os padrões de commit e release entre os projetos do GovBR-DS.
Importante
Os exemplos abaixo estão usando o pnpm (consulte a documentação da ferramenta para mais detalhes). Caso prefira utilizar o npm só é necessário substituir os comandos pnpm pelos npm equivalentes.
Como instalar
Instale os seguintes pacotes:
pnpm add -D @govbr-ds/config-tools husky lint-staged prettier @commitlint/cz-commitlint
Commitlint
Configurações para o Commitlint.
Crie um arquivo
commitlint.config.jsna raiz do seu projeto e e importe a configuração:module.exports = { extends: ['./node_modules/@govbr-ds/commit-config/src/commitlint.cjs'], }Para sobrescrever alguam configuração siga o padrão do Commitlint.
Inclua o seguinte código no seu
package.json"scripts": { ... "commit": "git-cz", ... }, ... "config": { ... "commitizen": { "path": "@commitlint/cz-commitlint" } ... }Conforme a documentação do Husky inclua o hook
commit-msgcom o código abaixo:pnpm exec -- commitlint --edit $1Sugerimos usar o estágio abaixo no .gitlab-ci.yml para fazer as validações no gitlab.com
Commits: stage: Qualidade artifacts: when: always paths: - report-commitlint.txt expire_in: 1 week expose_as: 'Commitlint Report' script: - pnpm dlx commitlint-gitlab-ci -x ./src/commitlint.cjs > report-commitlint.txt rules: - when: always
Semantic Release
Configurações para o Semantic Release.
Crie um arquivo
release.config.jsna raiz do seu projeto e importe os plugins que deseja usar:const { branches, commitAnalyzer, releaseNotesGenerator, changelog, gitlab, git } = require('./node_modules/@govbr-ds/commit-config/src/semantic-release.cjs') module.exports = { branches: branches, plugins: [ commitAnalyzer, releaseNotesGenerator, changelog, gitlab, git, ... ], }Para sobrescrever alguma configuração siga o padrão do Semantic Release. A ordem definida será a ordem de execução!
Sugerimos usar o estágio abaixo no .gitlab-ci.yml para gerar as releaes gitlab.com
Semantic Release: stage: Release before_script: - pnpm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN} script: - pnpm exec semantic-release rules: - if: '$CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "next" || $CI_COMMIT_REF_NAME =~ /\\d.(\\d|x).(\\d|x)(-alpha)?$/ || $CI_COMMIT_REF_NAME =~ /alpha$/' when: manual
Markdown lint
Configurações para o Markdownlint e também usamos o Markdownlint-cli.
Crie um arquivo
.markdownlint.ymlna raiz do seu projeto e extenda a configuração:extends: './node_modules/@govbr-ds/config-tools/src/markdownlint.yml'Crie um arquivo
.markdownlintignorena raiz do seu projeto e inclua os arquivos e pastas que deseja ignorar da validação de markdown:CHANGELOG.MD /node_modulesQuando o CHANGELOG.md é gerado automaticamente é recomendável o excluir da validação.
Inclua o seguinte código no seu
package.json"scripts": { ... "lint:md": "markdownlint -d --fix **/*.md", ... }, ... "lint-staged": { "*.md": [ "prettier --write", "markdownlint -d --fix **/*.md" ] },Conforme a documentação do Husky inclua o hook
pre-commitcom o código abaixo:pnpm exec -- lint-stagedSugerimos usar o estágio abaixo no .gitlab-ci.yml para fazer as validações no gitlab.com
Markdown: stage: Qualidade artifacts: when: always paths: - report-markdownlint.txt expire_in: 1 week expose_as: 'Markdownlint Report' script: - pnpm exec markdownlint '**/*.md' -o report-markdownlint.txt rules: - when: always
gitlab-ci.yml
Para usar o pnpm no gitlab-ci.yml usamos o seguinte código para cuidar dos preparativos:
Instalar dependências:
stage: Dependências
script:
- apk --no-cache add git
- npm i -g pnpm
- pnpm install
rules:
- when: alwaysComo contribuir?
Antes de abrir um Merge Request tenha em mente algumas informações:
- Esse é um projeto opensource e contribuições são bem-vindas.
- Para facilitar a aprovação da sua contribuição, escolha um título curto, simples e explicativo para o MR, e siga os padrões da nossa wiki.
- Quer contribuir com o projeto? Confira o nosso guia como contribuir.
Reportar bugs/necessidades
Você pode usar as issues para nos informar os problemas que tem enfrentado ao usar nossa biblioteca ou mesmo o que gostaria que fizesse parte do projeto. Por favor use o modelo que mais se encaixa na sua necessidade e preencha com o máximo de detalhes possível.
Nos comprometemos a responder a todas as issues
Precisa de ajuda?
Por favor não crie issues para fazer perguntas...
Use nossos canais abaixo para obter tirar suas dúvidas:
Site do GovBR-DS http://gov.br/ds
Usando nosso canal no discord https://discord.gg/U5GwPfqhUP
Padrão de commits
Para mais informações sobre o padrão de commits consulte a nossa Wiki.
Licença
Nesse projeto usamos a licença MIT.