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

GitHub Action中Django无法读取环境变量问题求助

问题解决:GitHub Action中无法读取Django环境变量

核心原因

你在GitHub项目设置里配置的Secrets不会自动成为Action运行环境中的环境变量,必须在Workflow配置文件中显式传递这些Secrets到环境变量中,才能被django-environ读取。

解决方案

方法1:在Workflow中直接传递Secrets为环境变量

修改你的django.yml,通过全局env块将Secrets映射为环境变量,所有步骤均可访问:

name: Django CI

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      max-parallel: 4
      matrix:
        python-version: [3.7, 3.8, 3.9]
    # 定义全局环境变量,关联GitHub Secrets
    env:
      POSTGRES_DB_NAME: ${{ secrets.POSTGRES_DB_NAME }}
      POSTGRES_USER: ${{ secrets.POSTGRES_USER }}
      POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }}
      POSTGRES_HOST: ${{ secrets.POSTGRES_HOST }}
      POSTGRES_PORT: ${{ secrets.POSTGRES_PORT }}

    steps:
    - uses: actions/checkout@v3
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v3
      with:
        python-version: ${{ matrix.python-version }}
    - name: Install Dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt
    - name: Run Tests
      run: |
        python manage.py test

方法2:在Action中生成临时.env文件

如果想保持和本地一致的读取逻辑(通过.env文件),可以在Workflow中创建临时.env文件,用Secrets填充内容:

name: Django CI

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      max-parallel: 4
      matrix:
        python-version: [3.7, 3.8, 3.9]

    steps:
    - uses: actions/checkout@v3
    # 生成临时.env文件
    - name: Create .env file
      run: |
        echo "POSTGRES_DB_NAME=${{ secrets.POSTGRES_DB_NAME }}" >> .env
        echo "POSTGRES_USER=${{ secrets.POSTGRES_USER }}" >> .env
        echo "POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }}" >> .env
        echo "POSTGRES_HOST=${{ secrets.POSTGRES_HOST }}" >> .env
        echo "POSTGRES_PORT=${{ secrets.POSTGRES_PORT }}" >> .env
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v3
      with:
        python-version: ${{ matrix.python-version }}
    - name: Install Dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt
    - name: Run Tests
      run: |
        python manage.py test

验证要点

  • 确认GitHub Secrets的名称和代码中使用的变量名完全一致(大小写敏感)
  • 检查Workflow中Secrets的引用语法是否正确:${{ secrets.YOUR_SECRET_NAME }}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 15:15:27