Как опубликовать весь каталог с помощью действий на Github с помощью плагина Github семантического выпуска?

#github #npm #github-actions #semantic-release

Вопрос:

Я хочу опубликовать весь каталог (каталог сборки) в выпуске Github с использованием семантического выпуска, но, к сожалению, он выпускает каждый файл сборки как отдельный ресурс.

Для размножения:

  • Я использую интерфейс командной строки Vue для создания проекта vue create foo
  • Установите семантический выпуск как зависимость от разработчика npm install --save-dev semantic-release
  • Установите плагин Github для семантического выпуска npm install @semantic-release/github -D
  • Создайте .releaserc.json файл с содержимым

.

 {
    "plugins":[
      "@semantic-release/commit-analyzer",
      "@semantic-release/release-notes-generator",
      [
        "@semantic-release/github",
        {
          "assets":[
            {
              "path":"dist",
              "label":"foo-${nextRelease.gitTag}"
            }
          ]
        }
      ]
    ]
  }
 
  • Внутри пакета.json установите version ключ в 0.0.0-development
  • Создайте каталог .github/workflows с ci.yml рабочего процесса

.

 name: CI

on:
  push:
    branches:
      - main

jobs:
  ci:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v2
        with:
          fetch-depth: 0

      - name: Setup Node
        uses: actions/setup-node@v2
        with:
          node-version: 16.x

      - name: Install dependencies
        run: npm install

      - name: Run build
        run: npm run build

      - name: Release
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: npx semantic-release --branches main
 
  • Зафиксируйте и подтолкните его с помощью feat: pushed

Релиз, похоже, в порядке, но, к сожалению, он не опубликовал каталог dist в качестве отдельного ресурса.

введите описание изображения здесь

Он просто опубликовал каждый файл внутри dist как один

введите описание изображения здесь

Добавление шага

   - name: Log
    run: ls
 

показывает, что каталог dist существует

введите описание изображения здесь

Как я могу это исправить?

Ответ №1:

Похоже, это невозможно. Поэтому я должен добавить этот шаг после создания приложения

   - name: ZIP build
    run: zip -r dist.zip dist
 

и установите конфигурацию ресурсов в

         {
          "path":"dist.zip",
          "label":"foo-${nextRelease.gitTag}.zip"
        }