Как запустить задачу по определенной команде? - PullRequest
0 голосов
/ 13 июня 2019

Я использую https://github.com/sbt/sbt-native-packager и https://github.com/sbt/sbt-git плагины.

Когда я запускаю следующую команду:

    # docker image
    sbt docker:publishLocal

Я хотел бы выполнить этоtask:

    git.useGitDescribe := true
    git.formattedShaVersion := git.gitHeadCommit.value map { _ =>
      git.gitCurrentTags.value.head
    }

    Docker / dockerAlias := DockerAlias(None, Some("zerocoder"), (packageName in Docker).value, git.gitDescribedVersion.value)

Вышеуказанная задача должна выполняться только командой docker:publishLocal.Как заархивировать это?

1 Ответ

1 голос
/ 13 июня 2019

Поскольку состояние необходимо изменить перед выполнением задачи, попробуйте определить пользовательскую команду следующим образом:

commands += Command.command("publishLocalWithGit") { state =>
  """set git.useGitDescribe := true""" ::
  """set git.formattedShaVersion := git.gitHeadCommit.value map { _ => git.gitCurrentTags.value.head }""" ::
  """set Docker / dockerAlias := DockerAlias(None, Some("zerocoder"), (packageName in Docker).value, git.gitDescribedVersion.value)""" ::
  """docker:publishLocal""" ::  state
}

Выполните команду с помощью sbt publishLocalWithGit.

...