моя компания создала сложный способ перемещения файлов между средами, и теперь мы хотели бы переместить определенные встроенные файлы JS (преобразованные и минифицированные) из одного репозитория github в другой. Возможно ли это с помощью действий github?
действие github для копирования файла из одного репо в другое
comment
Я считаю, что созданные файлы не следует хранить в репозитории
- person Ziarno   schedule 23.12.2019
comment
@Ziarno это особый случай
- person zero   schedule 23.12.2019
Ответы (1)
Самый простой вариант - клонировать целевое репо, скопировать файлы в целевое репо, использовать командную строку git для создания файлов и затем зафиксировать их. Добавьте приведенный ниже код в шаг скрипта
run: |
git clone https://.:${{ secrets.GITHUB_TOKEN }}@github.com/project target
rm everything but the .git directory
copy source\files target
cd target
git add .
git diff-index --quiet HEAD || git commit -m "Automatic publish from github.com/project"
git push target master
person
jessehouwing
schedule
23.12.2019
Вам может потребоваться сохранить токен персонального доступа в хранилище секретов GitHub на случай, если GITHUB_TOKEN не имеет правильных разрешений.
- person jessehouwing; 23.12.2019
См. Разрешения для токенов: help.github.com/en/actions/
- person jessehouwing; 23.12.2019
Что делает
rm target
в этом случае? Разве target
не каталог?
- person Bryan Hanson; 04.07.2020
Да, глядя на это, я думаю, что нам здесь не хватает -rf ... Просто убедитесь, что есть чистый каталог для клонирования.
- person jessehouwing; 04.07.2020
Хорошо, это имеет смысл, а также сделайте
rm
перед clone
, или вы удаляете то, что только что клонировали. Спасибо за ответ и обновление.
- person Bryan Hanson; 04.07.2020
rm -rf target должен быть перед клоном.
- person srikanth Nutigattu; 18.01.2021
еще одно полезное дополнение - изменить строку
git commit
для обработки случая, когда ничего не меняется. В противном случае действие в этом случае завершится ошибкой. git diff-index --quiet HEAD || git commit
. Идея: github.com/cpina. Также правильный ли указанный выше веб-адрес? Что такое //.:
?
- person Robert Lugg; 22.04.2021
Да, правильно,
.
- это имя пользователя (которое не имеет значения при использовании токена. После :
идет пароль (токен). Вы можете использовать notneeded:
или github:
, если хотите.
- person jessehouwing; 22.04.2021