GitHub CI: отправьте сборку React в другое репо
Я установил действие GitHub, которое создает сборку моего приложения React.
Мне нужно, чтобы эта сборка была перенесена в другое репо, которое я использую для отслеживания сборок. Это действие, которое на самом деле выполняется:
on:
push:
branches: [master]
jobs:
build:
name: create-package
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14]
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
name: Use Node.js 14
with:
node-version: ${{ matrix.node-version }}
#- name: Install dependencies
- run: npm ci
- run: npm run build --if-present
env:
CI: false
copy:
runs-on: ubuntu-latest
needs: build
steps:
- name: Copy to another repo
uses: andstor/copycat-action@v3
with:
personal_token: ${{ secrets.API_TOKEN_GITHUB }}
src_path: build
dst_path: /.
dst_owner: federico-arona
dst_repo_name: test-build
dst_branch: main
Кстати, когда действие запускает задание копирования, оно завершается ошибкой со следующим сообщением:
cp: can't stat 'origin-repo/build': No such file or directory
Что я делаю не так?
1 ответ
Для всех, кому нужен ответ по этому поводу.
Проблема была связана с тем, что я использовал два разных задания: одно для запуска сборки, а другое для копирования этой сборки в другое репо.
Это не сработает, потому что у каждого задания есть собственный исполнитель и своя файловая система, а это означает, что данные не используются совместно между заданиями.
Чтобы избежать этой проблемы, я сделал все за одну работу. Другое решение - передать сборку между заданиями как артефакт:
Другая проблема была связана с действием копирования, которое я использовал. По какой-то причине это действие не нашло каталог сборки, вероятно, потому, что предполагалось использовать другой рабочий каталог. Я переключился на другое действие.
Вот окончательный результат:
on:
push:
branches: [master]
jobs:
build:
name: create-package
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14]
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
name: Use Node.js 14
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
- run: npm run build --if-present
env:
CI: false
- run: ls
- name: Copy to another repo
uses: andstor/copycat-action@v3
with:
personal_token: ${{ secrets.API_TOKEN_GITHUB }}
src_path: build
dst_path: /.
dst_owner: federico-arona
dst_repo_name: test-build
dst_branch: main