Проблема в том, что действие actions/checkout@v1
оставляет репозиторий git в отключенном состоянии HEAD. См. Эту проблему для получения более подробной информации: https://github.com/actions/checkout/issues/6
Обходное решение, которое я успешно использовал, заключается в настройке пульта следующим образом:
git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/username/repository
Вам также может потребоваться оформить заказ. Вы можете извлечь имя ветви из GITHUB_REF
:
git checkout "${GITHUB_REF:11}"
Вот полный пример для демонстрации.
name: Push commit example
on: push
jobs:
report:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Create report file
run: date +%s > report.txt
- name: Commit report
run: |
git config --global user.name 'Your Name'
git config --global user.email 'your-username@users.noreply.github.com'
git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/$GITHUB_REPOSITORY
git checkout "${GITHUB_REF:11}"
git commit -am "Automated report"
git push
Кстати, я написал действие GitHub, которое можетпомочь вам достичь того, что вы хотите сделать. Он будет принимать любые изменения, сделанные локально во время рабочего процесса, фиксировать их в новой ветке и вызывать запрос на извлечение. https://github.com/peter-evans/create-pull-request
Также см. Этот связанный вопрос и ответ. Нажимаем на начало действия GitHub