Как получить короткий Sha для рабочего процесса GitHub? - PullRequest
4 голосов
/ 19 января 2020

Я создаю рабочий процесс в GitHub, который создает и использует docker изображение. Поэтому я запустил свой файл рабочего процесса с глобальной переменной среды для этого docker изображения, которое видно для всех заданий в моем рабочем процессе:

name: continuous integration
on:
  push:
    branches:
      - '**'

env:
  IMAGE: docker.pkg.github.com/${{ github.repository }}/jactor-persistence:${{ github.sha }}

Я хочу заменить ${{ github.sha }} на короткий ш фиксация головы, такая же, как в результате выполнения следующей команды git rev-parse --short HEAD

Возможно ли это?

Ответы [ 2 ]

1 голос
/ 20 января 2020

Как упоминалось Von C, вы можете просто вычислить строку самостоятельно на предыдущем шаге.

      - name: Set outputs
        id: vars
        run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
      - name: Check outputs
        run: echo ${{ steps.vars.outputs.sha_short }}
0 голосов
/ 20 января 2020

Похоже, он недоступен: контекст github включает только github.sha в качестве full commit sha (который запустил запуск рабочего процесса)

Вам нужно как-то вычислить желаемую строку (выбрав только первые n символов ${{ github.sha }}.

. Это означает, что вы можете:

  • определить переменную, как показано в peterevans ответ
  • запись на диск
  • cat $my_var для использования VAR на каждом шаге

См. actions/starter-workflows выпуск 68 и примеры .

Но с октября 2019 г. , теперь у вас есть " Env на уровне рабочего процесса и задания"

Обычно требуется определить набор переменных среды, которые используются в нескольких шагах в задании и даже в нескольких заданиях в рабочем процессе.

Теперь вы можете добавить карту env как на рабочем процессе, так и на уровне работы .
Эти переменные среды будут объединены с env, определенным на любом этапе. Еп ниже в иерархии.

См .:

...