This commit sets up a GitHub Actions workflow that uses Release Drafter
to automatically maintain release notes on every push.
In practice this means that contributors no longer have to manually
update the CHANGELOG, which is something that is easy to forget and
often introduces tedious merge conflicts.
Instead, Release Drafter automatically adds the title of the PR to the
GitHub release notes to a draft release, crediting the author of the PR,
and linking to the PR number. Release Drafter furthermore organizes the
release notes into sections according to the labels assigned to the PRs:
- ⚠️ Breaking
- 🐛 Bug Fix
- 📚 Docs
- ✨ Feature
- 🏠 Housekeeping
This also simplifies the release process for maintainers: instead of
manually updating the CHANGELOG, all you have to do is press "publish"
on the release draft on GitHub.
This brings capistrano into parity with the configuration of sshkit.
This removes the dependency on the `kuroko` gem and uses the Vagrant
command line application to control the virtual environment. The
`vagrant` command should be in your path, but if it isn't the path can
be set with the `VAGRANT_BIN` environment variable. This may even work
on older versions of Vagrant, but they are untested.
The `VagrantHelpers` module was added to mimic some of the API that was
provided by `kuroko`. The `RemoteCommandHelpers` module was modified to
accommodate those changes. Any non-zero exit status on a remote command
will raise a `VagrantHelpers::VagrantSSHCommandError` and should be
expected by any tests using the command helpers. All existing tests
work as expected.
In addition, a couple of minor changes were made. The TestApp utilizes
the Pathname library but does not require it. This was causing the suite
to fail for me so I added an explicit require. Also, the test for the
existence of a release directory would give a false positive on
subsequent runs if the `KEEP_RUNNING` option was used. I added an
`at_exit` that removes the test deployment directory to clean up the
box for the next run.
Documentation was also added to the README for how to run the test
suites.