Skip to content

A monorepo use yarn + lerna + changesets + GitHub Actions.

License

Notifications You must be signed in to change notification settings

azu/monorepo-release-changesets

Repository files navigation

monorepo + changesets Release FLow

This is an example of monorepo release flow.

This monorepo use yarn + lerna + changesets + GitHub Actions.

Related:

Another monorepo release flow:

Purposes

  • User can control packages versions
  • Draft changelog before publishing - integrate with changesets
  • GitHub PR's Label Based version control - use pr-to-changesets
  • Publish tag and packages from CI
  • Support independent mode

Roles and Works

  1. [Person] Develop and Submit Pull Request
  2. [Team] Review Pull Request and attach Version Label
  3. [CI] Create Release Pull Request
  4. [Team] Merge Release Pull Request
  5. [CI] Publish

Release Flow

  1. [Local] Checkout branch: git checkout release/<uniq>
  2. [Local] Submit to Pull Request
  3. [GitHub] Review Pull Request and attach a label one of Semver: {major, minor, patch}
  4. [GitHub] Merge Pull Request
  5. [CI] pr-to-changesets create .changeset/*.md from Pull Request
  6. [CI] Submit Version up Pull Request
  7. [GitHub] Review Version up Pull Request and Merge Pull Request
  8. [CI] Release to npm
    • Each packages are published as Semver: <version>
    • Implementation in [.github/workflows/publish.yml](.github/workflows/publish.yml

An Example of Work Flow

  1. [Person] Submit Pull Request: fix(packages): add test by azu · Pull Request #1 · azu/monorepo-release-changesets

1.pr.png

  1. [Team or Person] add Label for versioning

2.label.png

  1. [CI] Create Version up Pull Request: Version Packages by github-actions · Pull Request #5 · azu/monorepo-release-changesets

  2. [Team] Review it and Merge It

  3. [CI] Publish update packages to npm registry

Notes

GitHub Label like Semver: patch is user defined label. It means that you can use another labels like Type: Feature and Type: BREAKING CHANGE.

Changelog

See Releases page.

Running tests

Install devDependencies and Run npm test:

npm test

Contributing

Pull requests and stars are always welcome.

For bugs and feature requests, please create an issue.

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Author

License

MIT © azu

About

A monorepo use yarn + lerna + changesets + GitHub Actions.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published