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

如何在GitHub Workflows中用当前日期时间命名发布APK?

解决方法

你可以通过以下几种方式为上传的APK工件设置带当前日期时间的名称:

方法一:直接使用GitHub内置环境变量

GitHub Actions提供了GITHUB_RUN_AT内置环境变量,它包含工作流启动的UTC时间(格式为YYYY-MM-DDTHH:MM:SSZ),可直接在上传步骤中引用:

# Define workflow name
name: main

# This workflow is triggered on pushes to the repository.
on:
  push:
    branches:
    - main
        
jobs:
  build:
    # This job will run on windows virtual machine
    runs-on: windows-latest

    steps:
    # Setup Java environment in order to build the Android app.
    - uses: actions/checkout@v1
    - uses: actions/setup-java@v1
      with:
        java-version: '12.x'

    # Setup the flutter environment.
    - uses: subosito/flutter-action@v1
      with:
        channel: 'stable' # 'dev', 'alpha', default to: 'stable'
        flutter-version: '3.3.7' # version of flutter
    
    # Get flutter dependencies.
    - run: flutter clean
    - run: flutter pub get
    
    # Build apk.
    - run: flutter build apk --release
    
    # Upload generated apk to the artifacts with timestamp name
    - uses: actions/upload-artifact@v1
      with:
        name: app-release-${{ github.run_at }}
        path: build/app/outputs/flutter-apk/app-release.apk

方法二:自定义时间格式

如果需要更简洁的时间格式(比如YYYYMMDD-HHmmss),可以通过format函数生成自定义格式的时间变量:

# Define workflow name
name: main

# This workflow is triggered on pushes to the repository.
on:
  push:
    branches:
    - main
        
jobs:
  build:
    # This job will run on windows virtual machine
    runs-on: windows-latest
    env:
      # 自定义时间格式:年-月-日_时-分-秒
      TIMESTAMP: ${{ format('{0:yyyy-MM-dd_HH-mm-ss}', github.run_at) }}

    steps:
    # Setup Java environment in order to build the Android app.
    - uses: actions/checkout@v1
    - uses: actions/setup-java@v1
      with:
        java-version: '12.x'

    # Setup the flutter environment.
    - uses: subosito/flutter-action@v1
      with:
        channel: 'stable' # 'dev', 'alpha', default to: 'stable'
        flutter-version: '3.3.7' # version of flutter
    
    # Get flutter dependencies.
    - run: flutter clean
    - run: flutter pub get
    
    # Build apk.
    - run: flutter build apk --release
    
    # Upload generated apk to the artifacts with custom timestamp name
    - uses: actions/upload-artifact@v1
      with:
        name: app-release-${{ env.TIMESTAMP }}
        path: build/app/outputs/flutter-apk/app-release.apk

方法三:通过PowerShell生成时间(Windows runner专属)

因为你的工作流运行在Windows虚拟机上,也可以直接用PowerShell命令生成时间变量:

# Define workflow name
name: main

# This workflow is triggered on pushes to the repository.
on:
  push:
    branches:
    - main
        
jobs:
  build:
    # This job will run on windows virtual machine
    runs-on: windows-latest

    steps:
    # Setup Java environment in order to build the Android app.
    - uses: actions/checkout@v1
    - uses: actions/setup-java@v1
      with:
        java-version: '12.x'

    # Setup the flutter environment.
    - uses: subosito/flutter-action@v1
      with:
        channel: 'stable' # 'dev', 'alpha', default to: 'stable'
        flutter-version: '3.3.7' # version of flutter
    
    # Get flutter dependencies.
    - run: flutter clean
    - run: flutter pub get
    
    # Build apk.
    - run: flutter build apk --release

    # 生成自定义格式的时间变量并写入环境
    - name: Set timestamp variable
      run: echo "TIMESTAMP=$(Get-Date -Format 'yyyyMMdd-HHmmss')" | Out-File -FilePath $env:GITHUB_ENV -Append
    
    # Upload generated apk to the artifacts with timestamp name
    - uses: actions/upload-artifact@v1
      with:
        name: app-release-${{ env.TIMESTAMP }}
        path: build/app/outputs/flutter-apk/app-release.apk

说明

  • github.run_at是GitHub内置变量,直接返回工作流启动的UTC时间
  • format函数支持的格式符和.NET DateTime格式规则一致
  • 通过GITHUB_ENV写入的环境变量可在后续所有步骤中引用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 14:12:06