隐藏工件或从工件以外的其他东西部署?

Hiding artifacts or deploying from something else than artifacts?

背景与问题

我有 this open source repository that I have an AppVeyor build configuration 个。

此配置为需要发布的网站创建了一个工件。 这是因为 AppVeyor 似乎只能使用工件而不是路径进行 Web 部署。

这会带来问题,因为我的网站(在部署之前)需要将一些秘密值(例如 Patreon API 的 API 秘密)写入文件,然后再部署到生产使用 Web 部署。但是如果我在创建工件之前这样做,秘密也将成为工件的一部分。

问题

如何设置我的网站应用程序可以读取的特定配置值,而不会将其暴露给构建配置的查看者,同时仍然使用 AppVeyor 将其部署到生产环境?

如果我可以部署路径而不是工件,我可以在部署之前改变文件,但由于工件对每个人来说都是 public,我不想那样做。这可能吗?

或者,如果我可以通过权限或类似的方式向其他人隐藏工件或防止它们被显示,那就太好了,但我还没有找到任何允许我这样做的东西。这可能吗?

我尝试过的内容和更多技术细节

我已经加密了 appveyor.yml 文件中的值:

environment:
  patreon_client_id:
    secure: PLU/ujLWtFY+Tw/UN6vbHoUSgxeykAIa7dJfLeuHyAyLtnhMqJCARZjN7G6zhO3m9yjr2pClq+VRScJEL+4vSTcJSndZWCqBA5YLFhM6xeE=
  patreon_client_secret:
    secure: tHr/9QE88kYtxaqdLM332mB3xD+4QRNg8y06DY5qAWf155NtSqi7G4zNpjeFCiTPa86f0LDdPAAjyrWZsLEXoCKZmA7PDBxU5kcllrub2cE=
  patreon_creators_access_token:
    secure: viBR0QyoO8HxK9X/n93AHhF0SNPs9hG0BEqoQKWV688=
  patreon_creators_refresh_token:
    secure: qJzAlyrpLkpWxEb7zL17uYnC0HLAwU8M3xcxzI7vkGc=

这是我创建工件的部分。

- path: build\website\Website.zip
  name: Website
  type: WebDeployPackage

如您所见,创建了一个 Website 工件。然后我使用 Web Deploy 发布这个工件:

- provider: WebDeploy
  server: https://shapeshifter.scm.azurewebsites.net:443/msdeploy.axd?site=shapeshifter
  website: shapeshifter
  username: $shapeshifter
  password:
    secure: 5Urzbp6Aj24/wHED9+Q/CtH4EjN7nv9PGdCdBDr5XECq8wnDxQcHK5YoS246hOqcEBNCU2OZ4rq26LVWCRbfbw==
  artifact: Website
  aspnet_core: true
  remove_files: true
  app_offline: true
  aspnet_core_force_restart: true

请看Web Deploy Parametrization