无法使用 GitHub Actions 在 Octopus Deploy 中创建版本

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

我正在尝试设置 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 中实现此功能,还缺少什么?

github-actions octopus-deploy
1个回答
0
投票

根据评论,考虑使用标志将值直接传递到 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
© www.soinside.com 2019 - 2024. All rights reserved.