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

GitHub Actions构建Python包时版本号未正常替换问题咨询

解决GitHub Actions中版本号变量未替换的问题

问题原因

GitHub Actions的env字段中直接使用$(python setup.py --version)这类shell命令语法不会被执行,这里的VERSION只是被赋值为字符串$(python setup.py --version),而非命令执行后的实际版本号,导致最终生成的包名称保留了$VERSION占位符。

解决方案

移除顶层env中的VERSION定义,在Python环境配置完成后,添加一个步骤通过shell命令提取版本号并写入GitHub Actions的环境变量中(使用$GITHUB_ENV文件,这是官方推荐的设置环境变量的方式)。

修改后的完整脚本

name: Build cs package

on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master

jobs:
  build-and-test:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.10'

      - name: Extract version from setup.py
        run: echo "VERSION=$(python setup.py --version)" >> $GITHUB_ENV

      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install -r requirements.txt

      - name: Run tests
        run: python -m unittest discover -v

      - name: Build artifact
        run:  |
          echo $VERSION
          python setup.py sdist bdist_wheel

      - name: Upload artifact
        uses: actions/upload-artifact@v3
        with:
          name: cs-$VERSION
          path: dist

关键说明

  • 新增的Extract version from setup.py步骤会执行python setup.py --version获取版本号,然后通过echo "VERSION=xxx" >> $GITHUB_ENV将版本号写入环境变量,后续所有步骤都可以直接使用$VERSION调用实际版本号。
  • 这样修改后,Upload artifact步骤中的name: cs-$VERSION就会被替换为cs-0.0.9这类实际的包名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:35:20