v3.0.0 (🐚 Sea Shells)
This major release includes some breaking changes (along with some neat new things)! ✨
🆙 Upgrading
To upgrade your steps from v2 of the plugin:
- If you were using shell invocations in your commands (e.g
/bin/bash -c "echo hello"
) you can remove them (e.g.echo blah
) - Specifying
shell
as a string is no longer supported, and needs to be changed to use the array syntax.
🐢 Improved Shell Handling (New)
This plugin can now run multi-command steps by default. It does this by running commands via a shell—the default shell is /bin/sh -e -c
for *nix and CMD.EXE /c
for Windows.
steps:
- command:
- "yarn install"
- "yarn run test"
plugins:
- docker-compose#v3.0.0:
run: "app"
This also means if your commands include bash-ism's, like make && make publish
, this will also just work, instead of failing with a cryptic Docker failure message.
If you want to skip the shell—for example if you have a custom entrypoint
in your image—we've added a command
option (vs the command
at the Buildkite step level) that takes an array of parameters. This is handy for shell-less, single binary images, and allows for very precise control of what arguments are passed to the docker-compose run
invocation.
For example:
steps:
- plugins:
docker-compose#v3.0.0:
run: "app"
command: ["s3", "sync", "s3://my-bucket/dist/", "/app/dist"]
Specifying shell
as a string is no longer supported. You need to use the array syntax now.
🏆 Automatic Windows shell support (New)
Windows Docker images are now better supported, with the new shell
behaviour auto-detecting Windows and setting the shell
option to CMD.exe /c
. To use PowerShell, set the shell
option to [ "powershell", "-Command" ]
.
Optionally skip checkout
If you have a prebuilt image, you often don't need a checkout on the agent. You can skip this now:
steps:
- plugins:
docker-compose#v3.0.0:
run: "app"
skip-checkout: true
Full Changelog
- Add command parameter with support for array-based arguments (#186) @lox
- Detect windows and set sensible defaults (#190) @lox
- Correctly handle . in docker compose service names. (#192) @robholland
- Cleanup dependency and linked service output (#196) @lox
- Add an extra test for multi-line commands (#200) @lox
- Add skip checkout option (#202) @lox
- Add build aliases (#201) @lox