Mix release - How can I copy extra files into tar ball?

I wrote the following mix.exs to release my Phoenix application as a tar ball, referring to the “Steps” section of the Mix.Tasks.Release documentation.

defmodule MyApp.MixProject do
  use Mix.Project

  def project do
    [
      apps_path: "apps",
      apps: [:shared, :admin, :shop],
      version: "0.1.0",
      start_permanent: Mix.env() in [:qa, :prod],
      deps: deps(),
      releases: [
        my_app: [
          applications: [
            admin: :permanent,
            shop: :permanent
          ],
          steps: [:assemble, &copy_extra_files/1, :tar]
        ]
      ],
      default_release: :my_app
    ]
  end

  defp copy_extra_files(release) do
    File.cp_r("apps/shared/priv/repo/seeds", release.path <> "/seeds")
    release
  end

  defp deps do
    []
  end
end

When I run MIX_ENV=qa mix release my_app, it created a seeds directory under _build/qa/rel/my_app, but when I extract the generated tar ball, it does not contain the seeds directory.

Is it possible that my copy_extra_files/1 is wrong?

Elixir version is 1.11.3.