Действие 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 при инициализации номера порта?

0 ответов