Skip to content

v3.0.0 (🐚 Sea Shells)

Compare
Choose a tag to compare
@lox lox released this 25 Feb 00:49
· 663 commits to master since this release
270dc76

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