We have git repositories that are Composer, php packages.
To publish a new version of one of these Composer packages on https://packagist.org we currently do the following:
- Create a new git tag such as
v1.0.0
and push it. - Travis-CI picks up this change and runs our tests.
- Packagist (composer) also picks the new tag and auto-magically publishes a new version
v1.0.0
The issues we have with this workflow is:
- If the tests fail, there a broken version of our package is published.
- A PR workflow would alleviate this, although not totally.
- Most package mangers such as NPM; have release/publish functionality.
Creating a PR and only merging into master on passing builds is great. Although it still allows maintainers to release versions from master that do not pass CI, if they forego the PR workflow.