我正在尝试将多个 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
文件成功创建了单独的操作。然而,我正在努力解决两件事:
将多个操作发布到 GitHub Marketplace:我了解如何发布单个操作,但如何将同一存储库中的多个操作发布到 GitHub Marketplace?每个操作都有自己的子目录和
action.yml
文件,但我似乎找不到在一个存储库下发布它们的明确指导。
从另一个存储库调用这些操作:在我的其他存储库中,我想使用这些操作。当我尝试引用这样的操作时:
- 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
部分指定子目录的完整路径,但似乎仍然找不到该操作。从另一个公共存储库引用位于子目录中的操作的正确方法是什么?
任何帮助:
我尝试创建一个存储库并这样称呼它:
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 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
# ^^^^^^^^