Действие github: инициировать порт контейнера служб с контекстом «бегун»
Я пишу файл рабочего процесса github, который использует службы (контейнер докеров).
Я попытался установить порт контейнера службы с именем запущенного действия-бегуна, например ${{ runner.name }}.
Мой файл рабочих процессов выглядит следующим образом. Я использую автономные бегуны, и ex — это ярлык моего бегуна. Также на моем linux-сервере работает служба action-runner, версия action-runner — action-runner-linux-x64-2.298.2.tar.gz.
# example-job.yml
name: EXAMPLE JOB
'on':
push:
branches:
- develop
- master
pull_request:
types:
- opened
- synchronize
jobs:
...
test-chunks:
...
runs-on: [self-hosted, ex]
name: test-chunk-${{ matrix.ci_node_index }}
strategy:
fail-fast: false
matrix:
ci_node_total: [10]
ci_node_index: [0,1,2,3,4,5,6,7,8,9]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
- name: Echo runner context
run: echo "${{ toJSON(runner) }}"
...
services:
db:
image: 'mdillon/postgis:11-alpine'
env:
POSTGRES_DB: test
POSTGRES_USER: foo
POSTGRES_PASSWORD: foo
options: >-
--health-cmd pg_isready --health-interval 10s --health-timeout 5s
--health-retries 5
ports:
- '543${{ runner.name }}:5432'
...
Когда я запускаю действие github, действие немедленно завершается с ошибкойThe workflow is not valid. .github/workflows/example-job.yml (Line: 124, Col: 13): Unrecognized named-value: 'runner'. Located at position 1 within expression: runner.name
.
Я установил такой порт, как «543${{ matrix.ci_node_index }}:5432», и он работал нормально. Я не знаю, почему контекст «бегуна» не работает должным образом.
Или есть способ запустить сценарий оболочки Linux при инициализации номера порта?