Skip to content

sschmid/bee

Repository files navigation

Bee-Header

🐝 bee - plugin-based bash automation

CI Coverage Status Chat Twitter

Automate Everything

bee is an open source platform aimed to simplify and standardize automation and deployment. bee lets you automate every aspect of your development and release workflow. bee runs everywhere - "it's just bash"

Automate the entire process from building your app to uploading it to the app stores

Combine bee with continuous integration tools such as GitHub Actions, Jenkins, Travis CI or TeamCity to automatically build and distribute your applications.

🐝 Continuous Integration

Plugins

bee is a bash package manager that runs plugins. Plugins are registered at beehub which is the official bee plugin register: https://github.com/sschmid/beehub

You can register your own plugin at beehub by creating a pull request. You can also create your own custom hubs or local plugins for your personal or private use.

Plugins allow you to customize and personalize bee to fit any requirement. Are you missing a task or feature? Create your own plugins and contribute to beehub! Share your plugins with the bee community so everyone can start saving time today.

Plugins and commands can easily be discovered with bee's built-in auto-completion! (see bee-completion)

🐝 Explore plugins


Install

bash -c "$(curl -fsSL https://raw.githubusercontent.com/sschmid/bee/main/install)"

bee completion

bee automatically completes plugins and makes working with them fun and easy.

Add auto-completion support for bee

echo "complete -C bee bee" >> ~/.bashrc

If you use zsh add those lines to your ~/.zshrc

autoload bashcompinit
bashcompinit
complete -C bee bee

Update

bee update

Customize

bee is very flexible and can be customized heavily. See bee and bee-run.bash and overwrite default values in ~/.beerc


Questions?

Frequently asked questions:


Example

Run individual plugin functions like this:

bee semver major
bee changelog merge
bee github create_release

or batch them for more efficiency

bee --batch \
    'semver major' \
    'changelog merge' \
    'unity execute_method BuildIOS' \
    'ios archive_project' \
    'ios export' \
    'ios upload' \
    'github create_release'

or compose custom functions using existing bee plugins

app::release() {
  semver::major
  changelog::merge
  unity::execute_method BuildIOS
  ios::archive_project
  ios::export
  ios::upload
  github::create_release
  slack::message $channel "New release $(semver::read)"
}

Discover and run your function using the bee bash completion

bee app release

Explanation

  • semver major - bump the major version
  • changelog merge - merge the latest changes into the changelog
  • unity execute_method BuildIOS - build the Unity project
  • ios archive_project - archive xcode project
  • ios export - export archive
  • ios upload - upload to TestFlight
  • github create_release - create a github release and optionally attach artifacts
  • slack message - send a message via slack to notify the team about a new release

Learn more

Read more about bee, checkout more examples and contribute your first own plugin

🐝 Open the bee wiki

bee is free, but powered by your donations
Donate