如何启用 github actions 访问 gradle 属性?

Ark*_*asu 5 android github gradle build.gradle github-actions

我的android项目使用gradle属性中的一些键~/.gradle/gradle.properties。git 故意忽略了这一点。有没有办法让 github actions 访问这些属性?

sma*_*c89 11

根据此页面,可以在三个位置保存gradle.properties文件,其中之一包括项目的根文件夹。

如果您需要gradle.propertiesgithub 操作,请在项目的根文件夹中创建一个操作并提交到 git。您的主目录中的目录应该保留在那里。


如果您确实不想将任何 gradle.properties 文件提交到 git,我的第一个问题是为什么?

这是使用Secret 的另一种方法。

假设您调用了 Secret GRADLE_PROPERTIES,那么您可以在其中一个步骤中执行以下操作:

steps:
  - uses: actions/checkout@v2
  - name: Restore gradle.properties
    env:
      GRADLE_PROPERTIES: ${{ secrets.GRADLE_PROPERTIES }}
    shell: bash
    run: |
      mkdir -p ~/.gradle/
      echo "::set-env name=GRADLE_USER_HOME::$HOME/.gradle"
      echo ${GRADLE_PROPERTIES} > ~/.gradle/gradle.properties
Run Code Online (Sandbox Code Playgroud)

运行此步骤后,gradle 现在将使用该文件来配置自身,您的项目也将如此。


Cod*_*ody 9

2021年解决方案

我们需要使用$GITHUB_ENV 环境变量来存储,GRADLE_USER_HOME 因为旧的::set-env被废弃

以下是一个示例工作流程:

name: build
on: [ push ]
jobs:
  build-app:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout the code
        uses: actions/checkout@v2
      - name: Restore gradle.properties
        env:
          GRADLE_PROPERTIES: ${{ secrets.GRADLE_PROPERTIES }}
        shell: bash
        run: |
          mkdir -p ~/.gradle/
          echo "GRADLE_USER_HOME=${HOME}/.gradle" >> $GITHUB_ENV
          echo "${GRADLE_PROPERTIES}" > ~/.gradle/gradle.properties
      - name: Build the app
        run: ./gradlew build
Run Code Online (Sandbox Code Playgroud)