Запустите действие GitHub в нескольких средах

Я хочу запустить GitHub Actions в нескольких средах, скажем, в Windows и Linux. Мне удалось это сделать с помощью Travis CI, но я не смог найти информацию о том, как это сделать с помощью GitHub Actions.

Кто-нибудь пробовал?

Это мой nodejs.yml.

name: Node CI

on: [push]

jobs:
    build:
        runs-on: ubuntu-latest

        strategy:
            matrix:
                node-version: [12.x]

        steps:
            - uses: actions/checkout@v1
            - name: Use Node.js ${{ matrix.node-version }}
              uses: actions/setup-node@v1
              with:
                  node-version: ${{ matrix.node-version }}
            - name: npm install
              run: |
                  npm ci
            - name: prettier format check
              run: |
                  npm run prettier-check
            - name: lint format check
              run: |
                  npm run lint-check
            - name: build, and test
              run: |
                  npm run build
                  npm test --if-present
              env:
                  CI: true

person Yordan Kanchelov    schedule 11.12.2019    source источник


Ответы (2)


Для этого вы можете использовать стратегию/матрицу (см. https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstrategy)

name: Node CI

on: [push]

jobs:
    build:
        runs-on: ${{ matrix.os }}

        strategy:
            matrix:
                os: [ubuntu-latest, windows-latest]
                node-version: [12.x]

        steps:
            - uses: actions/checkout@v1
            - name: Use Node.js ${{ matrix.node-version }}
              uses: actions/setup-node@v1
              with:
                  node-version: ${{ matrix.node-version }}
            - name: npm install
              run: |
                  npm ci
            - name: prettier format check
              run: |
                  npm run prettier-check
            - name: lint format check
              run: |
                  npm run lint-check
            - name: build, and test
              run: |
                  npm run build
                  npm test --if-present
              env:
                  CI: true

person riQQ    schedule 23.09.2020
comment
Работает как шарм - и лучше придерживается принципа DRY, чем дублирование одного и того же рабочего процесса исключительно для его создания в нескольких средах. - person jonashackt; 04.02.2021

Так что ответ был довольно прост на самом деле. Вы создаете два файла действий с другим именем.. В моем случае:

nodejs-ubuntu.yml nodejs-windows.yml

Измените их имя и измените на нужную платформу, например, windows-lates/mac-latest или что-то еще, и все должно работать как положено.

person Yordan Kanchelov    schedule 11.12.2019