我正在尝试设置 GitHub Actions 以使用以下步骤在 Octopus 部署中创建版本:
- name: Install Octopus CLI 🐙
uses: OctopusDeploy/[email protected]
with:
version: '*'
- name: Deploy 🐙
run: |
octopus release create --project ${{ env.OCTOPUS_PROJECT }} --channel ${{ env.OCTOPUS_CHANNEL}} --release-notes 'Release me' --package-version '1.0.675-feature-27ddcf53143'
我想使用新的 octopus cli - https://octopus.com/docs/octopus-rest-api/cli/octopus-release-create。
这些是定义的环境变量:
env:
OCTOPUS_CHANNEL: 'Feature'
OCTOPUS_URL: ${{ secrets.OCTOPUS_SERVER }}
OCTOPUS_API_KEY: ${{ secrets.OCTOPUS_API_KEY }}
OCTOPUS_SPACE: 'SPACE-NAME-HERE'
OCTOPUS_PROJECT: 'PROJECT-NAME-HERE'
如果我进入 Octopus UI 并手动创建版本,选择软件包的通道“Feature”和版本“1.0.675-feature-27ddcf53143”,则版本创建成功。
但是,当我在 GitHub Actions 中尝试使用上述代码时,我得到:
八达通API错误:找不到您请求的资源。 [] 错误:进程已完成,退出代码为 1。
运行以下命令效果很好:
octopus release list
为了完整起见,以下是完整的 github 操作工作流程:
name: CI
on: [push, workflow_dispatch]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
CI:
runs-on: [self-hosted, linux, small]
env:
OCTOPUS_CHANNEL: 'Feature'
OCTOPUS_URL: ${{ secrets.OCTOPUS_SERVER }}
OCTOPUS_API_KEY: ${{ secrets.OCTOPUS_API_KEY }}
OCTOPUS_SPACE: 'SPACE-NAME-HERE'
OCTOPUS_PROJECT: 'PROJECT-NAME-HERE'
steps:
- name: Install Octopus CLI 🐙
uses: OctopusDeploy/[email protected]
with:
version: '*'
- name: Deploy 🐙
run: |
octopus release list --project ${{ env.OCTOPUS_PROJECT }}
octopus release create --project ${{ env.OCTOPUS_PROJECT }} --channel ${{ env.OCTOPUS_CHANNEL }} --release-notes 'Release'
和秘密:
编辑 - 无法添加秘密图片,因为 imgur 被阻止了我的公司。我验证了 OCTOPUS_SERVER 和 OCTOPUS_API_KEY 作为秘密存在
我做错了什么?要在 GitHub Actions 中实现此功能,还缺少什么?
根据评论,考虑使用标志将值直接传递到 CLI(假设自托管运行程序具有对 Octopus Deploy 服务器的网络访问权限,并且使用的 API 密钥具有创建版本的适当权限)。
这将是:
- name: Deploy 🐙
run: |
octopus release create \
--server ${{ secrets.OCTOPUS_SERVER }} \
--apiKey ${{ secrets.OCTOPUS_API_KEY }} \
--space 'SPACE-NAME-HERE' \
--project ${{ env.OCTOPUS_PROJECT }} \
--channel ${{ env.OCTOPUS_CHANNEL }} \
--release-notes 'Release' \
--package-version '1.0.675-feature-27ddcf53143'
然后添加更详细的日志记录或调试语句,以从工作流程的执行中获取详细的反馈。
对于
octopus create-release
命令,这意味着 --debug
或 --logLevel debug
(甚至 --logLevel verbose
)标志。
- name: Deploy 🐙
run: |
octopus release create \
--server ${{ secrets.OCTOPUS_SERVER }} \
--apiKey ${{ secrets.OCTOPUS_API_KEY }} \
--space 'SPACE-NAME-HERE' \
--project ${{ env.OCTOPUS_PROJECT }} \
--channel ${{ env.OCTOPUS_CHANNEL }} \
--release-notes 'Release' \
--package-version '1.0.675-feature-27ddcf53143'
--logLevel debug