Как использовать GitHub Actions с несколькими репозиториями и развернуть их на GitHub Pages? - PullRequest
1 голос
/ 18 февраля 2020

Есть ли способ настроить Github Actions для запуска нескольких npm run build s? Я хотел использовать несколько репозиториев и установить их в качестве разных веб-страниц на главном сайте.

Представьте, что у меня есть 3 репозитория: основное, Angular приложение и приложение React.

Основной репо будет У меня есть посадочная площадка. Angular App и React App - это два разных сайта.

С foobar.github.io (основной репо) я бы с go до foobar.github.io/angular перешел к моему Angular приложению. foobar.github.io/react будет приложением реакции.

Каждое приложение будет находиться в 3 разных хранилищах. Есть ли способ для меня, чтобы pu sh к моим Angular приложениям и действиям GitHub автоматически выполнял ng build --prod --base-href='angular', обновлял бы эту страницу или , даже запускал сборку для всех репозиториев и развертывал ее?

Чтобы сделать это локально, мне нужно будет выполнить команду сборки в каждом репозитории, а затем перетащить каждую папку prod в мой репозиторий, а затем pu sh, что, на мой взгляд, может стать очень неэффективным.

1 Ответ

0 голосов
/ 18 февраля 2020

Самый простой способ сделать это - добавить рабочий процесс в каждый репозиторий, обновляющий соответствующую область в Pages. Т.е. в репо "Main" это будет выглядеть примерно так:

on: push

jobs:
  main:
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Build
        run: TODO

      - name: Publish
        run: TODO 

А в других репозиториях у вас будет что-то похожее. Например, в репозитории Angular:

on: push

jobs:      
  angular:
    steps:
      - name: Checkout App
        uses: actions/checkout@v2

      - name: Build Angular
        run: |
          npm ci
          npm run build
          ng build --prod --base-href='angular'

      - name: Publish
        run: TODO

Если вы хотите публиковать только sh при обновлении Main, вы можете иметь рабочий процесс в вашем главном репозитории, который создает и публикует все три Например:

on: push

jobs:
  main:
    steps:
      - name: Checkout repo
        uses: actions/checkout@v2
        with:
          repository: my-org/main
          path: main

      - name: Build
        run: TODO
        working-directory: ./main

      - name: Publish
        run: TODO
        working-directory: ./main

  react:
    steps:
      - name: Checkout repo
        uses: actions/checkout@v2
        with:
          repository: my-org/react
          path: react

      - name: Build React
        run: TODO
        working-directory: ./react

      - name: Publish
        run: TODO
        working-directory: ./react

  angular:
    steps:
      - name: Checkout App
        uses: actions/checkout@v2
        with:
          repository: my-org/angular
          path: angular

      - name: Build Angular
        run: |
          npm ci
          npm run build
          ng build --prod --base-href='angular', 
        working-directory: ./angular

      - name: Publish
        run: TODO
        working-directory: ./angular
...