- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在运行 CircleCI 和 Claudia.js 将我的 Node.js 代码部署到 AWS Lambda。
这是我的 package.json (脚本部分):
"scripts": {
"deploy": "claudia create --handler lambda.handler --deploy-proxy-api --region eu-central-1",
"update": "claudia update",
"generate-proxy": "claudia generate-serverless-express-proxy --express-module server",
"test": "./node_modules/.bin/mocha --reporter spec"
},
当我运行时:
npm run update
在终端中,我可以很好地更新。但是当我在 CircleCI 中运行它时,它失败了。
这是我的 CircleCI 配置文件 (.circleci/config.yml):
version: 1
jobs:
build:
machine:
node:
version: 6.11
working_directory: ~/project
steps:
- checkout
- run:
name: install
command: npm install
- run:
name: test
command: npm run test
build:
steps:
- run:
name: generate-proxy
command: npm run generate-proxy
- run:
name: update
command: npm run update
CircleCI 中的错误是:
#!/bin/bash -eo pipefail
npm run update
> xxx@0.1.0 update /home/circleci/project
> claudia update
loading Lambda config
loading Lambda config lambda.getFunctionConfiguration FunctionName=xxx
loading Lambda config lambda.setupRequestListeners
{ CredentialsError: Missing credentials in config
at IncomingMessage.<anonymous> (/home/circleci/project/node_modules/aws-sdk/lib/util.js:864:34)
at emitNone (events.js:91:20)
at IncomingMessage.emit (events.js:185:7)
at endReadableNT (_stream_readable.js:926:12)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickDomainCallback (internal/process/next_tick.js:122:9)
message: 'Missing credentials in config',
retryable: false,
time: 2017-06-21T08:02:53.894Z,
code: 'CredentialsError',
originalError:
{ message: 'Could not load credentials from any providers',
retryable: false,
time: 2017-06-21T08:02:53.894Z,
code: 'CredentialsError' } }
我有一个名为 .aws/credentials 的文件,其中包含:
[claudia]
aws_access_key_id = xxxxxxx
aws_secret_access_key = xxxxxx
编辑:
version: 2
jobs:
build:
working_directory: ~/emailservice
docker:
- image: circleci/node:4.8.2
steps:
- checkout
- run:
name: update-npm
command: 'sudo npm install -g npm@latest'
- restore_cache:
key: dependency-cache-{{ checksum "package.json" }}
- run:
name: install
command: npm install
- save_cache:
key: dependency-cache-{{ checksum "package.json" }}
paths:
- ./node_modules
- run:
name: test
command: npm run test
- store_artifacts:
path: test-results.xml
prefix: tests
- store_artifacts:
path: coverage
prefix: coverage
- store_test_results:
path: test-results.xml
- run:
name: deploy_update
command: npm run update
除了之前的凭据之外,一切正常。
loading Lambda config
loading Lambda config lambda.getFunctionConfiguration FunctionName=emailService
loading Lambda config lambda.setupRequestListeners
{ [CredentialsError: Missing credentials in config]
message: 'Missing credentials in config',
code: 'CredentialsError',
time: Thu Jun 22 2017 08:11:27 GMT+0000 (UTC),
retryable: true,
originalError:
{ message: 'Could not load credentials from any providers',
code: 'CredentialsError',
time: Thu Jun 22 2017 08:11:27 GMT+0000 (UTC),
retryable: true,
originalError:
{ message: 'Connection timed out after 1000ms',
code: 'TimeoutError',
time: Thu Jun 22 2017 08:11:27 GMT+0000 (UTC),
retryable: true } } }
npm info lifecycle xxx_email_service@0.2.0~update: Failed to exec update script
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! xxx_email_service@0.2.0 update: `claudia update`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the xxx_email_service@0.2.0 update script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/circleci/.npm/_logs/2017-06-22T08_11_27_089Z-debug.log
Exited with code 1
我是否必须在 AWS 中的某个位置添加凭证?我仍然可以使用终端来部署。
最佳答案
这可能与 CircleCI 处理用户的方式有关。
我建议使用环境变量来存储AWS访问 key 和 secret 。
您需要添加以下环境变量:
AWS_ACCESS_KEY_ID
- 将您的访问 key 作为值AWS_SECRET_ACCESS_KEY
- 使用您的 key 作为值
有关通过 AWS 中的环境变量设置 key 的更多信息:
http://docs.aws.amazon.com/cli/latest/userguide/cli-environment.html
有关 Circle CI 中环境变量的更多信息:
https://circleci.com/docs/1.0/environment-variables/
关于node.js - CircleCI无法运行 "claudia update",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44671126/
我试图通过将环境变量 (SHORT_HASH) 作为命令 ('echo $CIRCLE_SHA1 | cut -c -7') 运行来将其设置为更短的 github 哈希。 所以,我希望将散列“b1e5
我将在 CircleCI 作业的第一步中生成一个 UID。有没有办法将此值存储为可供后续步骤访问的“管道参数”?另外,有没有办法在作业之间传递此类动态参数? 类似这样的事情 jobs: bui
这简直要了我的命,找不到答案...我只想将当前用户从 root 更改为预先创建的名为“node”的用户,并给定“node:9”基础镜像。 这是我现在拥有的 .circleci/config.yml 文
在 Cicrle 上存储敏感信息(例如签名配置、API key 等)的位置,而不将它们添加到 git。通常我不会将此类文件上传到 git 存储库,但我不知道如何在没有它们的情况下使用 Circle 最
我有一个圆形 CI 环境,我想在其中动态分配上下文以部署到 4 个不同的环境。 理想情况下,我想使用管道参数设置上下文,有什么想法可以实现这一点吗? 我希望如何实现这一目标的示例: parameter
CircleCI 有一个 CIRCLE_BRANCH 环境变量,它告诉您 PR 本身的分支名称。 但我想反过来,我需要 PR 试图合并的分支名称。 最佳答案 您可以简单地通过使用 github api
如果我有一个 .circleci/config.yml文件像这样: version: 2 jobs: build-node8: docker: - image: oresoft
是否可以在另一个作业的上下文中运行另一个作业?我有一些工作有一些共同的步骤,我不想在不同的工作中重复这些步骤。 push-production-image: docker: - image: go
我已经设法创建了一个 CircleCI 构建,它使用 curl 使用他们的 API 触发后续构建。 .我已将此添加到我的 circle.yml : test: override: - mvn t
有办法做到这一点吗? 例如,我目前总是在 Circle.yml 文件中安装特定版本的 docker-compose,但我希望已经通过缓存安装它: - sudo -H pip install -U do
CircleCI 2.0 上是否提供 Android Espresso 的仪器测试?如果是的话,有人可以帮我配置 config.yml 文件吗?我已经尝试了数千次,但没有成功。我可以运行单元测试,但不
我想使用 Open JDK 8 和 9 运行我的 Circle CI 2.0 构建。是否有任何可用的 YAML 示例解释如何使用多个 JDK 版本构建 Java 项目? 目前我正在尝试将新作业 jav
Yarn 没有关于 2.0 安装的文档。 索取文档🙏 这里是 1.0 文档 https://circleci.com/docs/1.0/yarn/ 2.0在哪里? https://circleci.
CircleCi 在代码被推送到 master 时运行,但是 CircleCi 在名为 Version Package Bump 的运行脚本中推送到 master 本身。因此,在第一次构建之后,将运行
在 CircleCI 中,我运行一个应用程序,我想针对它运行测试: test: pre: # run app - ./gradlew bootRun -Dgrails.env=de
基本上我试图跳过构建,如果它不是拉取请求或某个分支,但是如果失败,我似乎无法跳过工作或工作流程的一部分,到目前为止问题是 circleci step halt在我的管道中什么都不做,这里的示例配置:
当我与master合并时,我想使用CircleCI将我的docker镜像推送到Dockerhub。我在其他项目中使用 CircleCI,它更有用并且希望保持一致(并且我计划稍后添加测试)。然而,我所有
我正在使用CircleCI设置持续的部署过程,以Google Container Engine为目标。我正在关注this documentation和this example。 我在这个阶段陷入困境:
有没有办法缓存我从 bundler (使用 bundle 安装)获得的依赖项?我知道我可以在 circle.yml 中使用 cache_dependencies 命令,但我不确定要传递给它的路径是什么
摘自 CircleCI 配置文件: deploy: machine: enabled: true steps: - run: name: AWS EC2 dep
我是一名优秀的程序员,十分优秀!