6

我正在尝试自动化 android 应用程序的构建过程,我已将 baseUrl 存储在 local.properties 文件中,并通过 Github 机密传递文件内容,但 Github 操作一直失败,

构建.gradle:

    def propFile=rootProject.file("./local.properties")
    def properties = new Properties()
    properties.load(new FileInputStream(propFile))

    def baseUrl = properties['BASEURL']
    //getProperty("BASEURL", "")


    debug {
        buildConfigField 'String', "BASEURL", baseUrl
        resValue 'string', "base_url", baseUrl
    }

YML:

name: Android CI

on:
  pull_request:
    branches: [ master ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: set up JDK 1.8
      uses: actions/setup-java@v1
      with:
        java-version: 1.8
    - name: Decode BASEURL
      env:
        BASEURL: ${{ secrets.BASEURL }}
      run: echo BASEURL="$BASEURL" > ./local.properties


    - name: Clean
      run: ./gradlew clean
    - name: Build with Gradle
      run: ./gradlew build

我如何通过 Github 秘密传递 BASEURL

在此处输入图像描述

这是 Github 操作控制台的日志输出

在此处输入图像描述

4

1 回答 1

3

我解决了我的问题,我从 Github 秘密传递了错误的论点,应该像

\"http://fakeapi.com"\

而且我在动作文件中做错了,而不是 ./gradlew build 它应该是

./gradlew assembleDebug --stacktrace

然后只有它会从 build.gradle 调用下面的部分,并用 local.properties 中的新值替换 BaseUrl

debug {
            buildConfigField 'String', "BASEURL", baseUrl
            resValue 'string', "base_url", baseUrl
        }

我还使用https://github.com/juliangruber/read-file-action来查看 local.properties 的内容,并验证此文件中的一切是否正常。

于 2020-06-10T06:14:57.477 回答