我正在尝试缓存构建过程所需的命令行工具.该工具由NodeJS构成.构建成功,但我需要它运行得更快.
我的circle.yml的相关部分如下所示:
dependencies:
post:
- npm -g list
- if [ $(npm -g list | grep -c starrynight) -lt 1 ]; then npm install -g starrynight; else echo "StarryNight seems to be cached"; fi
test:
override:
- npm -g list
- starrynight run-tests --framework nightwatch
Run Code Online (Sandbox Code Playgroud)
第二个npm -g list显示可供使用的星夜,但第一个显示它没有被缓存.
echo $(npm prefix -g)
Run Code Online (Sandbox Code Playgroud)
...抓住我 ..
/home/ubuntu/nvm/v0.10.33
Run Code Online (Sandbox Code Playgroud)
...所以我假设CircleCI不会将全局安装的任何内容缓存到nvm中.
我没有尝试任何东西让我得到我的信息,"StarryNight似乎被缓存了".
我如何缓存星夜?
我已经花了一天时间在Android项目中使用CircleCI,并且我继续得到java.lang.UnsupportedClassVersionError:com/android/build/gradle/AppPlugin:当CircleCI运行gradle dependencies命令时,不支持major.minor版本52.0.这是一个堆栈跟踪,它显示:
* Where:
Build file '/home/ubuntu/MyProject/app/build.gradle' line: 1
* What went wrong:
A problem occurred evaluating project ':app'.
> java.lang.UnsupportedClassVersionError: com/android/build/gradle/AppPlugin : Unsupported major.minor version 52.0
* Try:
Run with --info or --debug option to get more log output.
* Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating project ':app'.
at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:93)
at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl$1.run(DefaultScriptPluginFactory.java:144)
at org.gradle.configuration.ProjectScriptTarget.addConfiguration(ProjectScriptTarget.java:72)
at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:149)
at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:38)
at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:25)
at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:34)
at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:55)
at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:510)
at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:90)
at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:47)
at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:35)
at org.gradle.initialization.DefaultGradleLauncher$2.run(DefaultGradleLauncher.java:125) …Run Code Online (Sandbox Code Playgroud) 我正在部署到CircleCI,但我的代码已超时.
特别是CircleCI正在调用导致超时的命令是在checkout阶段:
git reset - 硬SHA
SHA构建的哈希在哪里,但是在我注意到ssh'ing时HEAD,我尝试过的其他东西也会永远运行.
此时代码已经签出:
git clone --quiet git@github.com:Organization/Repo.git.--config core.compression = 9 --depth 10 --no-single-branch
为什么会git reset --hard在CircleCI环境中永远运行(看似),以及哪些修复程序可以合理使用?
更多细节(我们这里也有一些git-lfs文件):
编辑这似乎与:
我还要注意,添加GIT_LFS_SKIP_SMUDGE=1(在CircleCI项目配置中)没有任何有用的效果.
它确实有助于回到Ubuntu 12,但显然这不太理想.
编辑
这是我最近提交的错误报告:https://discuss.circleci.com/t/cannot-pull-with-git-lfs/14346
(只是为了确保可见性,因为我的其他报告都被隐藏在评论中)
我曾经使用过 React 项目,与 Circle CI 集成,经过一些小的更改,它开始使所有构建失败
Its instance type 'ReactApexChart' is not a valid JSX element.
The types returned by 'render()' are incompatible between these types.
Type 'React.ReactNode' is not assignable to type 'import("/home/circleci/app.mxney-board-v2.test/node_modules/@types/react-transition-group/node_modules/@types/react/index").ReactNode'.
79 <Chart options={fillOptions} series={graphData} height={chartHeight} />
~~~~~
src/index.tsx:20:8 - error TS2786: 'App' cannot be used as a JSX component.
Its element type 'ReactElement<any, any> | Component<Omit<Subtract<unknown, WithTranslationProps>, keyof WithTranslation<N>> & WithTranslationProps, any, any> | null' is not a valid JSX element.
Type 'Component<Omit<Subtract<unknown, WithTranslationProps>, keyof WithTranslation<N>> …Run Code Online (Sandbox Code Playgroud) 我有一个方法的规范,返回ActiveRecord对象的时间戳.
规范在本地传递,但无论何时在CircleCI上运行,预期与实际之间都会略有不匹配.
规范看起来像这样:
describe '#my_method' do
it 'returns created_at' do
object = FactoryGirl.create(:something)
expect(foo.bar(object)).to eq object.created_at
end
end
Run Code Online (Sandbox Code Playgroud)
当它在本地传递时,在CircleCI上,我不断得到类似的错误消息.
以下是示例:
(1)
expected: 2015-05-09 10:42:59.752192641 +0000
got: 2015-05-09 10:42:59.752192000 +0000
Run Code Online (Sandbox Code Playgroud)
(2)
expected: 2015-05-08 10:16:36.777541226 +0000
got: 2015-05-08 10:16:36.777541000 +0000
Run Code Online (Sandbox Code Playgroud)
从错误中,我怀疑CircleCI正在计算时间戳值,但我没有足够的信息.有什么建议?
我使用的CC-测试记者上传的测试覆盖率结果Code Climate从CircleCI
但是运行相同的构建失败并显示以下消息:
Error: response from https://api.codeclimate.com/v1/test_reports.
HTTP 409: A test report for commit
858d3fa0c92ec5a546bde3991f57523768dac0c2 already exists
Run Code Online (Sandbox Code Playgroud)
如何让它通过CI脚本或覆盖它而不会失败?
我在circleci.
留言。
/home/circleci/evobench/env/lib/python3.7/site-packages/_pytest/junitxml.py:436: PytestDeprecationWarning: The 'junit_family' default value will change to 'xunit2' in pytest 6.0.
Run Code Online (Sandbox Code Playgroud)
命令
- run:
name: Tests
command: |
. env/bin/activate
mkdir test-reports
python -m pytest --junitxml=test-reports/junit.xml
Run Code Online (Sandbox Code Playgroud)
我应该如何修改命令以使用 xunit?是否可以使用默认工具,如消息中所述?我的意思是不指定 xunit 或 junit。
这是完整的管道。
我正在寻找一种通过 GitHub 设置或 CircleCI 设置阻止参与 PR(创建 PR 或提交)的人能够合并 PR(甚至批准它)的方法。到目前为止,我有一个需要批准的分支的保护,但批准后我作为 PR 创建者和提交者我仍然能够合并。
我想以编程方式确定特定的 Python 脚本是否在测试环境中运行,例如
等等。我意识到这需要一些启发,但这对我来说已经足够了。是否总是设置某些环境变量?用户名总是相同吗?ETC。
纱线在2.0安装上没有文档.
请求文档
circleci ×10
python ×2
yarnpkg ×2
android ×1
build.gradle ×1
caching ×1
cicd ×1
code-climate ×1
git ×1
git-lfs ×1
github ×1
java ×1
merge ×1
node.js ×1
npm ×1
protection ×1
pull-request ×1
pytest ×1
reactjs ×1
rspec ×1
travis-ci ×1
typescript ×1
ubuntu-14.04 ×1