问题标签 [github-actions-self-hosted-runners]
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.
github-actions - Github Action 是否支持按需自托管运行器?
我们需要使用 Github 操作自托管运行器,因为我们需要访问本地资源。
我知道我们可以在 VM 或 docker 容器上运行自托管运行器。
我们可以按需运行自托管运行器吗?就像 Github 托管的运行器一样,它始终使用干净的隔离 VM,并在作业执行结束时被销毁。或者就像 Azure DevOps/Github 上的作业代理一样,它们创建了干净的作业代理容器来运行管道并在最后被删除。
我们可以用 Gihub-action 自托管运行器做类似的事情吗?例如,允许我们向 Docker 引擎或 Kubernetes 集群注册一个虚拟机作为自托管运行器。当我运行 Github 工作流时,它应该启动一个容器并在该容器内运行工作流。之后,它应该删除容器。
现在可以这样做吗?我不确定 Github 操作的某个地方是否有路线图文档。
python - 来自自托管 Github Runner 的 Datadog Python 日志收集
我正在尝试从我们自托管的 Github 运行器上运行的 cron 作业收集日志,但到目前为止只能看到实际的 github-runner 主机日志。
我在 AWS 中创建了一个自托管的 Github Runner,在 Unbtu 上使用标准配置运行。
我们还安装了 Datadog 代理 v7 及其脚本和基本配置,并使用这些说明从文件中添加了日志收集
我们的日志收集配置如下。
在这些步骤之后,我可以看到来自我们的 Github runners 服务器的日志。但是,在这些运行器上,我们有几个在 Docker 容器中运行的 python cron 作业,记录到标准输出。我可以在 Github Runner UI 中看到这些日志,但它们在 Datadog 中不可用,而这些是我真正想要捕获的日志,因此我可以从中提取指标。
python 脚本的 docker 容器是否也需要一些特殊的数据狗设置?他们是否需要记录到数据狗代理在上述设置中注册为日志文件的文件?
github-actions - 带有自托管 Windows-Runner 的 GitHub Actions“找不到文件:'bash'”
我正在尝试编写一个在包括 Windows 在内的所有平台上运行的复合运行步骤操作。
当我省略 shell 时,我收到错误“缺少必需的参数 shell”。这很奇怪,因为我只想使用操作系统的默认设置。
当我指定“bash”时,我的 Windows 运行程序出现错误file not found 'bash'
,但根据文档“在 Windows 上指定 bash shell 时,使用 Git for Windows 附带的 bash shell。 ” https://docs.github.com /en/actions/reference/workflow-syntax-for-github-actions#using-a-specific-shell
我只想flutter pub get
使用默认外壳从一个动作在所有平台上运行。有没有一些简单的方法可以做到这一点?
github-actions - 在 GitHub Actions 中的每个运行器上运行作业
对于那些熟悉 Github Actions 的人...
目前,当作业运行时,它会根据标签和存储库为作业选择最合适的运行器(在工作流中使用自托管运行器 - GitHub Docs)。我的问题是是否有可能在每个满足工作要求的跑步者上运行一项工作。
例如,我有多个跑步者,既有自托管的,也有 Github 托管的;我有一份工作,其中包含一个脚本,当代码被推送到 repo 时,该脚本会执行以下操作:
- 使用 actions/checkout@v2 签出 Git 存储库
- 将文件从签出的 repo 复制到用户的主目录
这个“动作”需要发生在该动作可以访问的每个跑步者身上。
我希望这是有道理的!
github - 是否可以默认为自托管运行器?
我正计划从 GitLab 迁移到 GitHub,并且刚刚开始尝试 GH Actions。
我看到的一件事是,我必须表明我想在每个作业的自托管运行器上运行。
有没有办法为组织设置默认值,或者在工作流 YAML 文件中只定义一次?
linux - 无法在 Linux 上安装 GitHub 操作运行程序
我正在尝试按照 repo>settings>Actions>add runner 中描述的步骤在我的 Linux 机器(Ubuntu 20.04.1 LTS)上安装 GitHub 运行程序。第一步工作正常,但是当我运行配置时:
./config.sh --url <repo URL> --token <token>
我收到以下失败消息:
config.sh 不允许用户以 sudo 执行它,所以我修改了脚本以允许这样做,但权限问题仍然存在。有任何想法吗?
更新:我还通过在 /actions-runner 目录中运行以下命令来安装依赖项,但没有任何改变,错误消息仍然相同。
sudo ./bin/installdependencies.sh
azure-data-factory-2 - Azure Datafactory 运行并行活动
我有一个包含大约 20 个相互独立的复制活动的管道。此复制活动基本上是将数据从本地数据源复制到 azure sql DB。我有两个问题。我可以同时并行运行所有 20 个活动吗?目前它只是运行 4-6 个活动,其余的活动正在排队等待,只有在较早的完成后才开始。我怎么能同时跑20个。PS:我已将自托管 IR 中的最大并发数增加到 24,但仍然相同。
问题 2:管道中是否有任何选项可以包含任何参数,以便它可以执行任意数量的并行活动来执行?
谢谢你的帮助
checkout - 使用自托管代理解压缩时 GitHub Action 结帐失败
我正在使用 GitHub Actions 和安装在 Windows 2019 服务器上的自托管代理设置 CI/CD 管道。
我面临的问题是 action actions/checkout@v2 无法签出 repo 并完全解压缩它。当我说“完全解压缩”时,我的意思是目标文件夹中有一些文件在停止之前设法解压缩。
从日志:
我尝试在本地自托管代理上运行相同的操作,没有任何问题。
一篇 reddit帖子建议可以通过通过 Git 获取 repo 来缓解错误,并在日志中指出以下线索:
我尝试安装 Git v.2.30 并将其添加到 PATH 中,但由于某种原因,该操作仍通过 GIT API 下载存储库。我不知道是否需要重新启动服务器,但 git 命令在 Powershell 中可用。
我猜这就是为什么本地自托管代理(可以访问 GIT)可以签出 repo,但在服务器上运行的代理不能。
这是工作流 yml 文件:
任何见解都值得赞赏。
docker - dockerized github 操作是否支持 docker run 参数的网络选项
我正在使用自托管 github 运行器对某些软件进行 vpn 访问,并且我正在尝试在自托管运行器上使用 dockerized github 操作,但我遇到了问题,因为我需要在 github 操作运行 docker run 时指定 --network 主机标志. 有没有办法让 github 操作使用主机的网络?
continuous-integration - 寻找一种在池中的所有自托管代理上运行工作流以进行 Github 操作的方法
我正在尝试在所有代理上运行维护工作流程。这是一项类似于“docker system prune”的清理工作。我希望它在周日晚上每周在所有自托管代理(大约 12 个代理)上运行。我注意到工作流可以按计划事件运行。这很棒。但是我没有找到让所有自托管代理运行工作流的方法。有什么建议么?