如何使用带有语义发布 Github 插件的 Github Actions 发布整个目录?

Posted

技术标签:

【中文标题】如何使用带有语义发布 Github 插件的 Github Actions 发布整个目录?【英文标题】:How to publish a whole directory using Github Actions with the semantic-release Github plugin? 【发布时间】:2021-12-20 15:59:59 【问题描述】:

我想使用语义发布在 Github 版本上发布整个目录(构建目录),但不幸的是它将每个构建文件作为单个资产发布。

复制:

我正在使用 Vue CLI 生成项目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"
            
          ]
        
      ]
    ]
  
package.json 中将 version 键设置为 0.0.0-development 使用工作流 ci.yml 创建一个 .github/workflows 目录

.

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"
        

【讨论】:

以上是关于如何使用带有语义发布 Github 插件的 Github Actions 发布整个目录?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Pycharm中使用GitHub

如何使用管道代码覆盖默认的 Jenkins Git 插件检出?

DevOps: 自动部署语义化版本实操

发布 Python(使用 pbr):未生成版本

GitHub - 使用 PR 中所有提交的语义发布版本说明

DevOps: 自动与手动部署语义化版本(Semantic Versioning)实操