我正在尝试使用 Azure 管道发布 SBT 版本 (Scala)。 在本地,我可以使用
sbt publish
和 build.sbt 中的以下几行轻松完成此操作:
publishTo := Some("name-of-feed" at "https://....pkgs.visualstudio.com/...")
credentials += Credentials(Path.userHome / ".sbt" / ".credentials")
但是在 Azure 上我的管道失败了,因为它没有我本地的 .sbt/.credentials 文件。
在管道中获取凭据以便发布构建的正确方法是什么? 我不想签入我的个人令牌,所以必须有一些更优雅的方式。
我看到 Azure 提供了一个任务
MavenAuthenticate
如果您使用 Maven 发布。但我不能用它来进行 SBT。
有谁知道怎么做吗?
简单实用的方法:轻松在构建系统上创建凭据文件。
# Creates file in .sbt/.credentials that contains the following content:
# realm=
# host=pkgs.dev.azure.com
# user=your-user
# password=***
- script: |
mkdir -p ~/.sbt
echo "realm=" >> ~/.sbt/.credentials
echo "host=pkgs.dev.azure.com" >> ~/.sbt/.credentials
echo "user=your-user" >> ~/.sbt/.credentials
echo "password=$(SECURE_PASSWORD)" >> ~/.sbt/.credentials
displayName: Create credentials file
SECURE_PASSWORD 是一个敏感变量,不应公开。