如何从单个存储库发布多个 GitHub 操作并从另一个存储库调用它们

问题描述 投票:0回答:1

我正在尝试将多个 GitHub Actions 从单个存储库发布到 GitHub Marketplace,并在其他存储库中使用它们。我的回购结构如下所示:

.
├── transform-openapi-from-file/
│   ├── action.yml
│   ├── script.sh
├── update-collection/
│   ├── action.yml
│   ├── script.sh

这是我的仓库:https://github.com/stcalica/postman-publish-action

我已经使用自己的

action.yml
文件成功创建了单独的操作。然而,我正在努力解决两件事:

  1. 将多个操作发布到 GitHub Marketplace:我了解如何发布单个操作,但如何将同一存储库中的多个操作发布到 GitHub Marketplace?每个操作都有自己的子目录和

    action.yml
    文件,但我似乎找不到在一个存储库下发布它们的明确指导。

  2. 从另一个存储库调用这些操作:在我的其他存储库中,我想使用这些操作。当我尝试引用这样的操作时:

    - name: Generate Schema
      uses: stcalica/transform-openapi-from-file@v1
      with:
        postman_api_key: ${{ secrets.POSTMAN_API_KEY }}
        openapi_schema: ${{ vars.OPEN_API_SCHEMA }}
    

    我收到错误:

    Error: Unable to resolve action `stcalica/transform-openapi-from-file@v1`, unable to find version `v1`
    

我尝试在

uses
部分指定子目录的完整路径,但似乎仍然找不到该操作。从另一个公共存储库引用位于子目录中的操作的正确方法是什么?

任何帮助:

  1. 将多个操作从一个存储库发布到 GitHub Marketplace。
  2. 在另一个存储库中正确引用这些操作。

我尝试创建一个存储库并这样称呼它:

name: Test Postman Schema Publish 

on:
  workflow_dispatch:

jobs:
  schema-publish-update:
    runs-on: ubuntu-latest
    env:
      POSTMAN_API_KEY: ${{ secrets.POSTMAN_API_KEY }}

    steps:
      - name: Checkout code
        uses: actions/checkout@v2
  
      - name: Generate Schema 
        uses: stcalica/postman-publish-action/transform-openapi-from-file@main
        id: schema
        with:
          postman_api_key: ${{ secrets.POSTMAN_API_KEY }}
          openapi_filepath: './cats.yaml'
github github-actions repository cicd
1个回答
0
投票

您不能从同一个存储库发布多个操作;来自文档

只要满足以下要求,操作就会立即发布到 GitHub Marketplace,并且不会被 GitHub 审核:

  • 该操作必须位于公共存储库中。
  • 每个存储库必须包含一个操作。
  • [...]

但是,这并不妨碍任何人使用这些操作;他们只是不出现在市场上。

对于引用子目录中的操作,您显示的内容是正确的。只要该操作存在于

main
目录中 postman-publish-action 存储库的
transform-openapi-from-file
分支中,就应该运行它:

uses: stcalica/postman-publish-action/transform-openapi-from-file@main

我可以在你的存储库中看到你有一个

actions
子目录,所以路径实际上应该是

uses: stcalica/postman-publish-action/actions/transform-openapi-from-file
#                                    ^^^^^^^^
© www.soinside.com 2019 - 2024. All rights reserved.