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

时间:2017-04-17 07:25:07

标签: webdeploy appveyor microsoft-web-deploy

背景和问题

我有this open source repository我有AppVeyor build configuration for。

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

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

问题

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

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

或者,如果我可以隐藏其他人的文物或阻止他们通过权限或类似的东西显示,那将是很好的,但我没有找到任何允许我这样做的东西。这可能吗?

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

我已经加密了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

如您所见,创建了网站工件。然后,我使用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

1 个答案:

答案 0 :(得分:1)