Отправка в репозиторий с помощью semanti c -релизов и извлечение на другой работе с GitHub Actions - PullRequest
0 голосов
/ 15 апреля 2020

Мы используем GitHub Action для автоматической публикации sh нашего приложения. Для этого мы вызываем semanti c -релиз в нашем конвейере CI и затем генерируем двоичные файлы с строитель-электрон на следующем шаге. Нам нужны двоичные файлы для MacOS, Windows и Linux. К сожалению, для этого нам нужны две разные работы, так как одна из нас должна работать на macos-latest (чтобы подписать сборку MacOS), а другая на ubuntu-latest (потому что сборка Linux не работает на macos-latest. .. некоторые проблемы с преобразованием основного значка).

Возникающая проблема заключается в том, что шаг semantic-release в первом задании обновляет package.json и передает изменения в репозиторий GitHub. Затем он создает двоичные файлы MacOS и Windows. После этого начинается задание Linux, проверяется хранилище и создаются его двоичные файлы. Тем не менее, он по-прежнему работает со старым номером версии (тот, что был до semanti c -release, создал новую версию).

Как убедиться, что второе задание действительно имеет ревизию репозитория git, которая была загружена в первом задании?

Это файл yaml для действия (удалены сопоставления переменных среды ):

name: Release

on:
    push:
        branches:
          - master

jobs:
    release:
        runs-on: macos-latest

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

        steps:
            - uses: actions/checkout@v2
            - name: Use Node.js ${{ matrix.node-version }}
              uses: actions/setup-node@v1
              with:
                  node-version: ${{ matrix.node-version }}
            - name: install
              run: npm ci
            - name: Release
              run: npm run semantic-release || true
            - name: Build
              run: npm run build
            - name: Publish macOS
              run: npm run publish:mac
            - name: Publish Windows
              run: npm run publish:win
    release-linux:
        needs: release
        runs-on: ubuntu-latest

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

        steps:
            - uses: actions/checkout@v2
            - name: Use Node.js ${{ matrix.node-version }}
              uses: actions/setup-node@v1
              with:
                  node-version: ${{ matrix.node-version }}
            - name: install
              run: npm ci
            - name: Release
              run: npm run semantic-release || true
            - name: Build
              run: npm run build
            - name: Install Snapcraft
              uses: samuelmeuli/action-snapcraft@v1
              with:
                snapcraft_token: ${{ secrets.snapcraft_token }}
            - name: Publish Linux
              run: npm run publish:linux

...