鱼C论坛

 找回密码
 立即注册
查看: 2056|回复: 3

[已解决]github actions的jobs里的每个job都会开1个不同的虚拟机吗?

[复制链接]
发表于 2023-3-25 13:59:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1.  github actions的jobs里的每个job都会开1个不同的虚拟机吗?
2. 如果每个job开一个虚拟机,一个Jobs可以最多开多少个?
3. 如果job1的虚拟机的结果文件要传给job2的虚拟机,要用rcp?  或者从job2里ssh到job1的机器里操作?
最佳答案
2023-3-25 14:05:47
1、是的,GitHub Actions 的工作流程中的每个 job 都会在一个单独的虚拟环境(虚拟机)中运行。

这些虚拟环境可以是 Linux、macOS 或 Windows,取决于你在工作流文件中指定的 runs-on 属性。

2、GitHub Actions 对每个仓库的并行 job 数量有一定限制。

对于公共仓库,每个仓库最多可以有 20 个并行运行的 job。对于私有仓库,该限制取决于你的 GitHub 付费计划。

可以在这里查看具体的限制信息。

3、如果需要在不同 job 的虚拟机之间传输文件,可以使用 GitHub Actions 提供的工件(artifacts)功能。

你可以在 job1 中将结果文件上传为一个 artifact,然后在 job2 中下载该 artifact。

这样就可以在不同的虚拟机之间传递文件,无需使用 rcp 或 ssh。以下是一个简单的示例:
jobs:
  job1:
    runs-on: ubuntu-latest
    steps:
    - name: Generate file
      run: echo "Hello World" > output.txt

    - name: Upload file as artifact
      uses: actions/upload-artifact@v2
      with:
        name: output-file
        path: output.txt

  job2:
    needs: job1
    runs-on: ubuntu-latest
    steps:
    - name: Download artifact
      uses: actions/download-artifact@v2
      with:
        name: output-file

    - name: Use downloaded file
      run: cat output-file/output.txt

在这个示例中,job1 生成一个名为 output.txt 的文件并将其上传为名为 output-file 的 artifact。

然后,在 job2 中,我们下载这个 artifact 并在后续步骤中使用它。

注意 job2 的 needs 属性,这表示 job2 依赖于 job1,因此 job2 会在 job1 完成后开始运行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-25 14:05:47 | 显示全部楼层    本楼为最佳答案   
1、是的,GitHub Actions 的工作流程中的每个 job 都会在一个单独的虚拟环境(虚拟机)中运行。

这些虚拟环境可以是 Linux、macOS 或 Windows,取决于你在工作流文件中指定的 runs-on 属性。

2、GitHub Actions 对每个仓库的并行 job 数量有一定限制。

对于公共仓库,每个仓库最多可以有 20 个并行运行的 job。对于私有仓库,该限制取决于你的 GitHub 付费计划。

可以在这里查看具体的限制信息。

3、如果需要在不同 job 的虚拟机之间传输文件,可以使用 GitHub Actions 提供的工件(artifacts)功能。

你可以在 job1 中将结果文件上传为一个 artifact,然后在 job2 中下载该 artifact。

这样就可以在不同的虚拟机之间传递文件,无需使用 rcp 或 ssh。以下是一个简单的示例:
jobs:
  job1:
    runs-on: ubuntu-latest
    steps:
    - name: Generate file
      run: echo "Hello World" > output.txt

    - name: Upload file as artifact
      uses: actions/upload-artifact@v2
      with:
        name: output-file
        path: output.txt

  job2:
    needs: job1
    runs-on: ubuntu-latest
    steps:
    - name: Download artifact
      uses: actions/download-artifact@v2
      with:
        name: output-file

    - name: Use downloaded file
      run: cat output-file/output.txt

在这个示例中,job1 生成一个名为 output.txt 的文件并将其上传为名为 output-file 的 artifact。

然后,在 job2 中,我们下载这个 artifact 并在后续步骤中使用它。

注意 job2 的 needs 属性,这表示 job2 依赖于 job1,因此 job2 会在 job1 完成后开始运行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-25 14:10:05 | 显示全部楼层
isdkz 发表于 2023-3-25 14:05
1、是的,GitHub Actions 的工作流程中的每个 job 都会在一个单独的虚拟环境(虚拟机)中运行。

这些虚 ...

感谢,我原以为1个yml用1个虚拟机。 就是上次你给改的3个job的yml才让我发觉,原来一直搞错了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-25 14:12:22 | 显示全部楼层
blackantt 发表于 2023-3-25 14:10
感谢,我原以为1个yml用1个虚拟机。 就是上次你给改的3个job的yml才让我发觉,原来一直搞错了。

不客气
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-24 03:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表