Skip to content
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

Adiciona automação de Release para o Octopost #272

Merged
merged 11 commits into from
Dec 15, 2023
Merged

Adiciona automação de Release para o Octopost #272

merged 11 commits into from
Dec 15, 2023

Conversation

alvarogfn
Copy link
Contributor

@alvarogfn alvarogfn commented Dec 15, 2023

Closes #271

Releases automatizadas com o Changesets

O changeset é uma biblioteca de geração de release automatizada através de um arquivo de .md dentro da pasta .changeset.

O projeto está configurado para gerar releases alpha a partir do 0.1.0, então a próxima versão será 0.1.1-alpha-1.

O workflow do changeset

  1. Desenvolvedor cria uma pull request.
  2. O bot https://github.com/changesets/bot comenta na pull request informando se a pessoa gerou ou não uma release (opcional).
  3. Qualquer pessoa pode gerar uma release através do comando pnpm changeset. O comando de changeset vai perguntar se a release é uma MAJOR, MINOR ou PATCH, e gerar um arquivo .md que pode ser editado para documentar as alterações da pull request.
  4. Quando essas pull request for mergeada, uma pull request chamada [BUMP] Lançar uma release para o octopost! será aberta atualizando o package.version de todos os projetos para os seus respectivos valores seguindo o versionamento semântico.
  5. Quando a PR [BUMP] for mergeada, todos os pacotes com private: false no package.json serão automaticamente publicados no npm no escopo @octopost.

Release lançada

Quando a release for lançada, teremos uma aba exatamente assim com o snapshot do código daquela versão e o versionamento semântico especifico.

image

Isso será muito útil depois para buildar o projeto em electron e adicionar o .exe nos assets do github, além de parear a versão do module-manager para garantir a compatibilidade do projeto na versão X com os plugins usando o manager na versão X.

Checklist
  • Issue linked
  • Build working correctly
  • Tests created
  • Atualizei a pipeline main para uma melhor estratégia de cache que eu acabei vendo enquanto estava procurando sobre a pipeline do changesets.

  • Também documentei melhor as funcionalidades do .npmrc e deixei o link da documentação, pois o pnpm não é tão conhecido pela galera.

Copy link
Member

@aalmeida00 aalmeida00 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pega a descrição do PR e cria um readme pra explicar os passos pra fazer build/release, nao sei se ficou claro.

@Alecell Alecell merged commit 2d49b4b into devhatt:master Dec 15, 2023
1 check passed
PiluVitu pushed a commit that referenced this pull request Jan 1, 2024
* chore: add release pipeline

* chore: add release pipeline (#1)

* chore: update package-json script

* chore: update changeset

* chore: enter pre-release mode

* chore: update main pipeline to frozen lockfile

* chore: update package json to remove electron builder

* chore: improve main pipeline to use pnpm cache

* chore: update npmrc to auto install peers

* docs: update CONTRIUTING.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Geração de Releases Automatizadas
3 participants