如何启用Github Actions访问Gradle属性?

5

我的安卓项目使用了在 ~/.gradle/gradle.properties 中定义的一些密钥。这些文件在 git 中被有意忽略了。是否有方法让 Github Actions 访问这些属性?

3个回答

11
根据这个页面,有三个位置可以放置gradle.properties文件,其中一个是项目的根目录。
如果您需要在GitHub Actions中使用gradle.properties,请在项目的根目录下创建一个文件并提交到Git。而位于主目录下的文件应该保留不变。
如果您真的不希望将任何gradle.properties文件提交到git,我的第一个问题是为什么?
以下是另一种使用secrets的方法。
假设您称其为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

执行此步骤后,gradle 将使用该文件来配置自身,进而使您的项目配置完毕。


8

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

1

它超出了版本控制,但需要构建项目。Gradle属性没有类似的方法吗? - Arka Prava Basu
构建时会合并多个Gradle属性文件。您可以将必要的CI属性放在项目Gradle属性中并对其进行版本控制(位于项目根目录中的gradle.properties),但不包括~/.gradle/gradle.properties。有关属性文件合并的更多详细信息,请参阅https://docs.gradle.org/current/userguide/build_environment.html。 - Achraf Amil
不想将它们提交到代码库,因此没有将它们放在项目级别的Gradle属性中。 - Arka Prava Basu
1
在这种情况下,尝试编写具有运行shell脚本的操作的属性,例如echo“your.gradle.property=value”>> gradle.properties - Achraf Amil
由于某些原因,我的Macbook上没有**~/.gradle/gradle.properties**文件。 - IgorGanapolsky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接