【发布时间】:2021-10-14 09:01:41
【问题描述】:
我正在使用 GitHub Actions。
我正在尝试创建一个自托管运行器,它将在多个云服务器之一上运行,但能够控制它在哪个特定服务器上运行。这是在具有本地资源的机器上进行滚动更新。
我已经使用自托管运行器设置了标签,但到目前为止我不得不制作 1..N 个单独的 YML 脚本:
on:
workflow_dispatch:
jobs:
post-to-server1:
runs-on: [self-hosted, server1 ]
然后我必须重复这个脚本 n 次。
我想做的是:
name: 'Server Patching'
on:
workflow_dispatch:
inputs:
server-target:
description: 'Target Server:'
required: true
default: 'dev'
jobs:
test-params:
runs-on: [ self-hosted, ${{ github.event.inputs.server-target }}]
steps:
- name: Start cloning of ${{ github.event.inputs.server-target }}
run: |
echo "Starting patching of: '${{ github.event.inputs.server-target }}'"
Check failure on line 12 in .github/workflows/test_workflow.yml
GitHub Actions / .github/workflows/test_workflow.yml
Invalid workflow file
You have an error in your yaml syntax on line 12
有没有办法做到这一点?
我也标记了这个 YAML,因为变量替换似乎也是 YAML 语法的一个问题(尽管它可能特定于 GitHub Actions)
更新:是的,你可以,如果你改变这一行:
runs-on: [ self-hosted, ${{ github.event.inputs.server-target }}]
到:
runs-on: ${{ github.event.inputs.server-target }}
错误实际上发生在test-params: 而不是它下面的行。
我的理论是语法检查器在变量替换之前触发?
【问题讨论】:
-
你能发布完整的 YAML 文件吗?错误参考第 18 和 25 行,而您的 sn-p 没有那么多行。根据docs,在
jobs.<job_id>.runs-on中使用github上下文应该没问题。 -
是的,已发布。很好,抱歉,我已经对其进行了一些消毒。
标签: yaml github-actions