背景与问题
我有这个开放源码存储库,我有AppVeyor构建配置。
此配置为需要发布的网站创建工件。--这是因为AppVeyor似乎只能使用工件而不是路径来进行网络部署。
这带来了一个问题,因为我的网站(在部署之前)需要将一些秘密值(比如Patreon的API机密)写入文件中,然后使用deploying部署到生产中。但是,如果我在创建工件之前这样做,那么这些秘密也将成为工件的一部分。
问题
如何设置网站应用程序可以读取的特定配置值,而不将其公开给构建配置的查看者,但仍然使用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部署发布了这个工件:
- 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
发布于 2017-04-17 21:11:18
请看一下Web部署参数化
https://stackoverflow.com/questions/43447107
复制相似问题