We use gitlab-ci. Every time a change is pushed to the master branch of a cookbook, gitlab-ci basically runs a berks install and a berks upload. To release a new cookbook, all we have to do is change the version inside the metadata.rb and merge to master.
This only works if you are able to use protected branches (which gitlab-ci supports).