问题标签 [github-ci]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
231 浏览

c# - PackageReference 到同一解决方案/git 存储库中的项目

目前,我正在尝试使用实现类库和抽象项目设置解决方案。我想在 nuget.org 上同时拥有这两个包。

通常,当您只使用 ProjectReferences 时,您只需指向 csproj:

随机抽象:

随机的

但是,当您构建 nuget 包时,您当然不希望Random.Abstractions.dll位于Random nuget 包中,而是希望Random包依赖于Random.Abstractions包。但是由于这个包还不存在,所以你还不能构建它。

微软能够像这样解决这个问题:

所以这既不是 aProjectReference也不是 a PackageReference,这就是为什么他们能够:

  1. 在本地构建和测试解决方案(因此他们将充当ProjectReferences
  2. 将代码推送到 GitHub 并让 GitHub Actions 创建和发布包的新版本,同时它们相互依赖(因此它们将充当PackageReferences

我尝试在我的解决方案中做同样的事情,但是包含具体实现的项目无法找到抽象项目:

MyCompany.Random.Abstractions.csproj:

MyCompany.Random.csproj

所以没有 ProjectReference(我们不希望 dll 在这个 nuget 包中),没有 PackageReference(该包尚未发布),而只是 Reference。但不知何故,我仍然收到无法找到抽象程序集的错误:

找不到抽象程序集

我检查了 NuGet.config,但那里并没​​有什么特别之处。

如何Reference在基于 dotnet 的项目中使用标签,以便在本地构建/测试时引用代码,并在 CI 管道中构建/推送时引用新包?

参考 Microsoft.NET.Sdk 文档

更新:

@pinkfloydx33,你是对的。我只能在 nupkg 中看到一个程序集/dll:

nuget包的内容

更新 2:

我将Microsoft.SourceLink.GitHub包添加到我的项目中,下载/解压缩新版本的包后,我可以看到以下内容nuspec

添加 Microsoft.SourceLink.GitHub 包后的 nuspec

77b181a24a83e46b4c80376f65bb305bedba1a64提交 ID在哪里。

谢谢你的提示。

0 投票
0 回答
27 浏览

git - 在基本存储库和“专业”存储库之间创建源代码控制分离的最佳实践?

假设您正在创建一个开源库,托管在公共 Github 存储库上。然后,您想提供一个具有“专业”功能的付费版本,托管在一个私有的 Github 存储库中,授予对那些被授予“专业”许可证的访问权限。

理想情况下,应该出现在两个存储库上的错误修复和其他类型的更新将提交到基本公共存储库,并且当准备好时,专业存储库会收到来自基本存储库的更改的拉取请求。

似乎像https://github.com/repo-sync/github-sync这样的 Github 操作会起作用,但我很好奇是否有更好的方法。

如何根据最佳实践构建他们的代码、git、操作等?

0 投票
0 回答
116 浏览

docker - 如何在 Github CI 下运行 Docker 镜像?

从 Github-CI 构建和运行 Docker 映像是否有某种技巧?我浏览了他们的文档,但找不到适用于我的用例的任何内容。

因为我想保持与通用 Docker 的兼容性,我不想使用他们内置的 Docker 容器的东西。我只想运行我必须在本地 Ubuntu 20.04 开发机器上构建和运行 Docker 映像的相同脚本。

我的.github/workflows/ci.yml样子:

我是 Github 的 CI 新手,但如果我正确理解了他们的文档,这应该会启动 Ubuntu 20.04 VM,检查我的代码,然后运行我的三个脚本来构建、运行然后检查容器的输出。

我的build-docker.sh样子:

我的 run-docker.sh 看起来像:

此图像包含一些在 Ubuntu 21.04 环境中测试我的代码的脚本。我将一个本地./testing文件夹挂载为一个卷,这些脚本将它们的日志写入其中,以便我可以用我的check_results.sh脚本确认它们的输出。

当我从我的 Ubuntu 20.04 localhost 运行它时,这非常有效。但是,当我将其推送到 Github 时,该./run-docker.sh行似乎失败或退出,甚至没有输出任何内容。在我的本地主机上,我看到了启动映像时获得的正常 Docker 输出,以及 Ubuntu 的正常启动消息。但是在 Github 上我什么也得不到。

即使我将脚本行更改为./run-docker.sh || true通过,然后添加 a ls ./testing,看起来也没有任何内容写入共享卷,这意味着 Docker 映像实际上并未运行,或者我在映像中的脚本未运行,或者他们被阻止写入卷。无论哪种方式,我都不确定如何诊断问题,因为它没有给我任何输出,而且 Github 的 CI 是黑匣子,没有给我很多调试选项。

我添加了docker --version确认版本的行,看起来 Github 运行的 Docker 版本几乎与我在本地主机上使用的相同,所以我认为这不是 Docker 版本问题。

Github CI VM 是否有任何会破坏 Docker 映像的限制?

我可以做些什么来让我的 Docker 镜像运行,或者至少弄清楚当前的问题是什么?

问题可能是我使用--tmpfs挂载 Github 的 VM 中可能不存在的本地目录吗?

0 投票
2 回答
161 浏览

mysql - 具有数据库依赖性的 Docker Github 工作流:没有这样的容器

我试图弄清楚使用数据库依赖项(实际上是 MySQL)的 Github 工作流程发生了什么,但我找不到任何解释或解决方案来解决我的情况。

这是我的工作流程 yaml 文件:

此工作流的目的是运行单元测试。但是在运行单元测试之前,需要先执行一些迁移来创建测试表。我正在使用 Phalcon 框架,但我认为没关系。实际上发生了什么,我一直收到“连接被拒绝”,而我确定 MySQL 容器已启动并准备好使用并且 MySQL 容器的 IP 地址是正确的,但不知何故,它不可用或我的下一个无法访问容器“产品单元测试”。

我要做的是在执行单元测试之前在容器内本地安装 MySQL 服务器,但我认为这不是最佳实践。我需要一个单独的 MySQL 容器,单元测试容器连接到它以运行迁移并进行测试。

0 投票
2 回答
284 浏览

github - 如何在 GitHub CI 中使用最新版本的 GCC?

我在 GitHub 上有一个使用 GitHub CI 的 C++ 项目。我的工作流程通过以下strategy属性配置为在 Linux 和 Windows 上运行:

到目前为止,这对我来说效果很好,Cmake 将编译器标识为GNU 9.3.0. 但是,我现在想在我的项目中使用 GCC 10 中添加的实验性功能,因此我的构建由于旧的编译器版本而失败。

如何从我的 GitHub CI 工作流程中使用更新版本的 GCC?

0 投票
0 回答
158 浏览

docker-compose - 无法使用 GitHub Actions 从 docker 映像中获取工件。Artifact:newman 生成的 HTML 报告

我正在尝试使用 docker-compose 文件运行邮递员 json 集合。它使用 newman html extra 来生成 html 报告。然后我试图上传这个工件。在 Postman 运行期间,我看到一个日志条目:“postmanTests | Created the htmlextra report”。但是,在上传步骤中,我看到一条警告:“警告:未找到具有提供的路径的文件:testResults。不会上传任何工件。”

YML 文件:

码头工人-compose.yml

在使用 docker-compose up 在本地运行时,我可以看到报告是由 Newman 生成的。

0 投票
1 回答
227 浏览

ios - Xcode 构建失败,架构 arm64 的未定义符号:

尝试构建 iOS 存档时,我在 Github CI 上收到以下警告:

然后出现此错误:

现在令人困惑的是,由于多种原因可能会发生此错误,就我而言,我在网上找不到任何一个。

0 投票
1 回答
158 浏览

ruby-on-rails - Rails 可以通过 GitHub Actions 连接到 PostgreSQL

我一直在与 GitHub 操作作斗争。在使用 Travis 一段时间后,我不得不切换到 GitHub Action,并且无法将其设置为运行 Rails 应用程序的测试。问题是没有为 Rails 启动数据库来连接并从迁移中创建数据库。

这是我的工作流程 .yml 文件:

我从“操作”选项卡中得到的错误:

我查看了有关此问题的多个视频和 Stack Overflow 讨论,但到目前为止没有任何效果。任何帮助表示赞赏。

0 投票
2 回答
70 浏览

circleci - 仅当同一仓库中的文件添加了新条目时,如何在 github 仓库中运行 CircleCI 作业?

我在现有的 circleci 工作流程中添加了一个作业,我只想在 repo 中更改 yaml 文件时运行该作业。有什么办法吗?TIA。

0 投票
0 回答
303 浏览

django - Google App Engine GitHub 操作:错误:位置 0 的 JSON 中的意外令牌

我正在尝试使用 GitHub CI/CD 将我的 Django API 部署到 Google App Engine,但是我遇到了一个奇怪的错误,它在我的deploy工作中没有提供任何堆栈跟踪。我build的单元测试和代码覆盖率工作通过了。

main.yaml

应用程序.yaml

这是我得到的两个错误: 在此处输入图像描述

我还在app.yaml中遇到另一个奇怪的错误,导致工作流无法运行。我从该文件的 Google App Engine 文档中认为我们不需要包含on触发器。我不确定这是否是由main.yaml.

有没有简单的方法来解决这个错误?

更新:在尝试v0.4.0了 GitHub Action 之后,我得到了同样的错误,但我发现是我GOOGLE_APPLICATION_CREDENTIALS导致了错误。

我用 替换了所有私人信息***,但 JSON 绝对仍然有效。