我正在尝试构建一个项目,但是我的.api-keys文档被忽略了。
因此,我将密钥作为环境变量添加到了循环CI上的项目中。
我的问题是我不确定在哪里/如何让我的Yaml配置脚本知道它们是什么:
旧的配置脚本:
version: 2.1
orbs:
cypress: cypress-io/cypress@1.0.1
workflows:
build:
jobs:
- cypress/install:
build: 'npm run build'
- cypress/run:
requires:
- cypress/install
start: 'npm start'
我要添加的行(我认为吗?):
environment:
masterFirebaseConfig: $masterFirebaseConfig
这是正确的做法吗?这行在上面的yaml中应该放在哪里?
非常感谢您提供任何提示!
2018年12月29日更新:
我将api-keys.ts文件更新为此:
export var masterFirebaseConfig = {apiKey: $fireBaseApiKey, authDomain: 'dataJitsu.firebaseapp.com',databaseURL: 'https://datajitsu.firebaseio.com',storageBucket: '',messagingSenderId: '495992924984'};
export var masterStripeConfig = {publicApiTestKey: $masterStripePublicApiKey,secretApiTestKey: $masterStripeSecretApiKey,publicApiKey: '',secretApiKey: ''};
其中$ fireBaseApiKey,$ masterStripePublicApiKey和$ masterStripeSecretApiKey是我添加到项目中的环境变量。
这似乎也不起作用:
src / app / api-keys.ts(1,44)中的ERROR:错误TS2304:找不到名称 '$ fireBaseApiKey'。 src / app / api-keys.ts(2,52):错误TS2304:无法 找到名称“ $ masterStripePublicApiKey”。 src / app / api-keys.ts(2,96): 错误TS2304:找不到名称'$ masterStripeSecretApiKey'。
答案 0 :(得分:4)
如果您已经将密钥添加为CircleCI中的环境变量,则它们已可用于您的构建作业。只需按名称引用即可(例如$MY_PRECIOUS_KEY
)。
如果您要覆盖现有值或设置新值,则只需set an environment variable in your config script。
答案 1 :(得分:2)
我在VSTS上为我的角度项目实现了这种CI-CD,并通过以下方式进行部署。
这是 build.yaml 文件的配置
resources:
- repo: self
queue:
name: Hosted VS2017
condition: succeeded()
demands: npm
steps:
- task: Npm@1
displayName: npm install
inputs:
verbose: false
- task: Npm@1
displayName: npm custom
inputs:
command: custom
verbose: false
customCommand: 'run build'
- task: ArchiveFiles@2
displayName: Archive dist
inputs:
rootFolderOrFile: dist
includeRootFolder: false
- task: PublishBuildArtifacts@1
displayName: Publish Artifact: drop
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
我专门创建了部署文件环境,如下所示。这是一个质量检查实例。
apiVersion: v1
kind: Service
metadata:
name: portal
labels:
app: portal
spec:
loadBalancerIP: 104.210.66.49
type: LoadBalancer
ports:
- port: 80
name: http
selector:
app: portal
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: portal
spec:
selector:
matchLabels:
app: portal
replicas: 1
template:
metadata:
labels:
app: portal
spec:
containers:
- name: portal
image: yourdomain.azurecr.io/portal
ports:
- containerPort: 80
env:
- name: IdentityServerAuthentication__Authority
value: http://id.qa.yourdomain.com # Identity URL
- name: env
value: qa
imagePullSecrets:
- name: projectqaregistry # Registry file name
---
To setup a build for Circle CI you can take a reference from here