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

如何配置GitHub Actions避免删除服务器未追踪的.env文件?

解决GitHub Actions部署时删除服务器未追踪.env文件的问题

我用GitHub Actions自动部署项目到DigitalOcean的Ubuntu服务器,当前的YAML配置如下:

name: Continuous Deployment

on:
    push:
        branches:
            - main

jobs:
    deployment:
        runs-on: self-hosted
        steps:
            - name: Checkout main branch
              uses: actions/checkout@v3

            - name: Setup Node.js
              uses: actions/setup-node@v3
              with:
                  node-version: '16.x'

            - name: Install dependencies
              run: npm ci

            - name: Restart server
              run: npm run restart

服务器和本地的目录结构一致:

index.ts
someMiddleware.ts
.env

.gitignore里已经排除了.env:

.env

问题是每次GitHub Actions运行时,服务器上手动添加的.env文件都会被actions/checkout@v3删除,怎么配置才能避免这种情况?


可行的解决方案

1. 禁用checkout的工作区清理

actions/checkout@v3默认会清理工作区的未追踪文件,只需给这个动作加上clean: false参数就能禁用该行为,同时建议加上fetch-depth: 1减少不必要的历史拉取:

- name: Checkout main branch
  uses: actions/checkout@v3
  with:
      clean: false
      fetch-depth: 1

2. 备份再恢复.env文件

如果不想全局禁用工作区清理,可以在checkout前先把服务器上的.env备份到其他目录,完成checkout后再移回原位置:

steps:
    - name: Backup .env file
      run: |
          if [ -f .env ]; then
              cp .env ../.env.backup
          fi

    - name: Checkout main branch
      uses: actions/checkout@v3

    - name: Restore .env file
      run: |
          if [ -f ../.env.backup ]; then
              cp ../.env.backup .env
              rm ../.env.backup
          fi

    # 后续的Node.js配置、依赖安装等步骤不变

3. 用GitHub Secrets管理环境变量(更推荐)

既然.env里都是敏感配置,更规范的做法是把这些变量存储到GitHub Secrets中,部署时直接注入到服务器环境,不用手动维护服务器上的.env文件。比如可以在Actions中添加步骤写入.env:

- name: Create .env file from GitHub Secrets
  run: |
      echo "DB_HOST=${{ secrets.DB_HOST }}" >> .env
      echo "API_KEY=${{ secrets.API_KEY }}" >> .env
      # 按需添加其他环境变量

这样每次部署都会自动生成包含最新敏感配置的.env,既安全又不用操心文件被删除的问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 22:47:13