You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub Actions多Job间共享eksctl安装步骤?

解决GitHub Actions中复用eksctl安装步骤的方法

方法一:创建复合动作(Composite Action)

把安装eksctl的步骤封装成自定义复合动作,所有需要的Job都能直接引用,不用重复写代码。

  1. 在仓库内创建路径 .github/actions/setup-eksctl/action.yml,内容如下:
name: 'Setup eksctl'
description: 'Install eksctl binary'
runs:
  using: 'composite'
  steps:
    - name: Install eksctl
      shell: bash
      run: |
        curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
        sudo mv /tmp/eksctl /usr/local/bin
  1. 在原工作流的两个Job中直接引用该动作:
jobs:
  install-cluster:
    name: "staging - create cluster"
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Setup eksctl
        uses: ./.github/actions/setup-eksctl

  deploy-app:
    name: "staging - deploy application"
    runs-on: ubuntu-latest
    needs: install-cluster
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Setup eksctl
        uses: ./.github/actions/setup-eksctl
      # 后续部署步骤...

方法二:使用可复用工作流(Reusable Workflow)

如果除了eksctl安装,还有其他关联步骤需要复用,可以把包含eksctl安装的完整Job抽成可复用工作流,在主工作流中调用。

  1. 创建 .github/workflows/reusable-setup-eksctl.yml:
name: 'Reusable Setup eksctl'
on:
  workflow_call:

jobs:
  setup-eksctl:
    runs-on: ubuntu-latest
    steps:
      - name: Install eksctl
        run: |
          curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
          sudo mv /tmp/eksctl /usr/local/bin
  1. 在主工作流中调用该可复用工作流,部署Job可依赖集群创建Job:
jobs:
  install-cluster:
    name: "staging - create cluster"
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Call reusable setup
        uses: ./.github/workflows/reusable-setup-eksctl.yml
      # 后续创建集群步骤...

  deploy-app:
    name: "staging - deploy application"
    runs-on: ubuntu-latest
    needs: install-cluster
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Call reusable setup
        uses: ./.github/workflows/reusable-setup-eksctl.yml
      # 后续部署步骤...

补充说明

  • 复合动作更适合复用单个/一组步骤,灵活性更高;可复用工作流适合复用完整Job逻辑,包括运行环境、步骤集合等。
  • 两种方法都无需依赖缓存,通过代码复用避免重复编写安装步骤,后续维护只需修改一处,所有引用的地方都会同步更新。

内容的提问来源于stack exchange,提问作者d3vpasha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 02:45:33