gpt4 book ai didi

Github action 一个接一个地运行两个进程

转载 作者:行者123 更新时间:2023-12-03 21:05:41 24 4
gpt4 key购买 nike

我有两个 GitHub 操作,它们应该一个接一个地运行,
第一 install 1正在安装和运行服务器(例如服务器在端口 3000 上运行),这可以工作,但是安装 1 未完成(服务器是否已启动并且您没有收到“停止”信号,这很好)但我需要继续下一步 install 2 仅当服务器启动时 ,我该如何解决这个问题?
简而言之,当您运行某个进程并且您需要在一段时间后运行其他进程时
请看这个repoaction .

- name: install 1
shell: bash
run: |
make install
make run

- name: install 2
shell: bash
run: |
kubectl apply -f ./config/samples/test.yaml
我使用 kubebuilder 生成项目,包括 makefile ...
https://github.com/kubernetes-sigs/kubebuilder

最佳答案

两个进程install 1install 2已经被隐式 if: ${{ success() }} 一个接一个地执行了.
您的问题是服务器尚未完全启动。有几种方法可以解决这个问题:

  • sleep command 等待几秒钟:

  •   - name: install 2
    shell: bash
    run: |
    sleep 10 &&
    kubectl apply -f ./config/samples/test.yaml
  • 等待端口打开,例如用工具wait-port
  • 使用 native Linux 工具等待端口打开 netcatnetcat/netstat

  • 您也可以自己创建退出代码,您可以在 this post 的下一步中使用该代码。 :
      - name: install 1
    id: install1
    shell: bash
    run: |
    make install
    make run
    echo ::set-output name=exit_code::$?

    - name: install 2
    if: steps.install1.outputs.exit_code == 0
    shell: bash
    run: |
    kubectl apply -f ./config/samples/test.yaml
    编辑 : 我想我已经发现了你的问题。通过执行 make run您的服务器永久运行并阻止操作的进一步处理。例如,您可以运行 make run在后台 make run & .而且我认为你也不需要这两个工作。有关构建期间的更多详细信息,您可以添加 debug option .

    关于Github action 一个接一个地运行两个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66916180/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com