使用发布工作流¶
以下 GitHub Actions 应放置在 .github/workflows
目录下,文件名为 {filename}.yaml
。此 GitHub Action 在 Ansible Automation Hub 和 Ansible Galaxy 中发布集合,它依赖于环境 release
,该环境必须包含以下密钥。
AH_TOKEN
: 与 Ansible Automation Hub 交互所需的 Automation Hub 令牌。ANSIBLE_GALAXY_API_KEY
: 与 Ansible Galaxy 交互所需的 Galaxy 令牌。
注意 - ansible-content-actions/release.yaml 在内部使用 release_ah.yaml 和 release_galaxy.yaml。
文件名: release.yaml
---
name: "Release collection"
on:
release:
types: [published]
jobs:
release:
uses: ansible/ansible-content-actions/.github/workflows/release.yaml@main
with:
environment: release
secrets:
ah_token: ${{ secrets.AH_TOKEN }}
ansible_galaxy_api_key: ${{ secrets.ANSIBLE_GALAXY_API_KEY }}
工作流运行结果为 -
发布分为两部分,Automation Hub 发布,然后是 Ansible Galaxy 发布。如果 Automation Hub 发布失败,则跳过 Galaxy 作业。
示例显示如何仅进行 Automation Hub 发布,在这些情况下只需要 ah_token
。
仅在 AH 上发布,工作流¶
文件名: release.yaml
---
name: "Release collection on Automation Hub"
on:
release:
types: [published]
jobs:
release_automation_hub:
uses: ansible/ansible-content-actions/.github/workflows/release_ah.yaml@main
with:
environment: release
secrets:
ah_token: ${{ secrets.AH_TOKEN }}
仅在 Galaxy 上发布,工作流¶
文件名: release.yaml
---
name: "Release collection on Ansible Galaxy"
on:
release:
types: [published]
jobs:
release_automation_hub:
uses: ansible/ansible-content-actions/.github/workflows/release_galaxy.yaml@main
with:
environment: release
secrets:
ah_token: ${{ secrets.ANSIBLE_GALAXY_API_KEY }}
详细的发布流程¶
发布前要确保的事项:¶
环境:¶
要发布的仓库必须创建以下环境
-
名称:release
-
AH_TOKEN
-
ANSIBLE_GALAXY_API_KEY
-
名称:push
-
BOT_PAT
-
refresh_ah_token
: 确保 netcommon 中的此工作流在上一次运行中已成功运行。如果未运行,则必须触发重新运行并确保其成功执行。
准备用于发布的仓库(draft_release 工作流仅使用 BOT_PAT,即 Ansibuddy):¶
此步骤将被手动运行的 push 工作流所取代,目前不建议这样做,因为其行为不稳定。在生成变更日志方面。
- 开始准备用于发布的仓库:在本地仓库上运行
antsibull-changelog
,创建一个 PR,并将其合并。 - 现在我们可以发布了。
确保 galaxy.yml
与发布版本同步。在 Galaxy 和 AH 中推送的版本引用自 galaxy.yml
中的 version:
。
通过 GitHub 发布流程:¶
- 转到 GitHub UI 中的发布页面,并创建一个新的发布。
- 创建一个新的标签,并以这种格式命名 -
v[version_num]
- 例如,v5.2.1
。 - 注意:
v
前缀存在于 GH 标签中,并在 AH 和 Galaxy 版本中被删除。 - 将标题命名为与标签相同。
- 放入变更日志 - 可以在
CHANGELOG.rst
(原始)中找到。 - 点击发布按钮,它将发布集合。
- 在“Actions”选项卡中查找发布操作。AH 发布首先发生,然后是 Galaxy 发布。如果 AH 发布失败,则 Galaxy 发布也会失败。