github action при клонировании репозитория
2025-07-02
·
2 мин. для прочтения
github action при клонировании репозитория.
Содержание
1 Задача
- Необходимо было править файл
package.json
при клонировании репозитория.
2 Вариант решения
- Создал каталог для файлов Actions:
mkdir -p .github/workflows
- Файл для описания клонирования назвал
clone.yaml
:touch .github/workflows/clone.yaml
3 Содержание файла
name: Replace data in package.json
# У меня получилось использовать только триггер push.
on: push
permissions:
contents: write
jobs:
run-script:
name: replace data
# Пропускаем, если у нас репозиторий-шаблон.
# Проверяем, что у нас первый коммит (только склонировали репозиторий).
# We will only run this action when this repository isn't the template repository
if: >-
${{ !github.event.repository.is_template && github.run_number == 1 }}
runs-on: ubuntu-latest
steps:
- name: Configure Git
run: |
git config --global user.name "${GITHUB_ACTOR}"
git config --global user.email "${GITHUB_ACTOR_EMAIL}"
shell: bash
- name: Checkout repository
uses: actions/checkout@v3
# Редактируем файл package.json
# Заменяем версию на 1.0.0
- name: Replace version
run: |
sed -i "s/\"version\": \".*\"/\"version\": \"1.0.0\"/" package.json
- name: Replace name and email
run: |
sed -i "s/\"author\": \".*\"/\"author\": \"${{ github.actor }}\"/" package.json
- name: Replace repository
run: |
sed -i "s|\"repository\": \".*\"|\"repository\": \"${{ github.repositoryUrl }}\"|" package.json
- name: Commit changes
run: |
git add package.json
git commit -m "Replace data in package.json"
- name: Push changes
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: master