为什么当我将 github 操作 CI 用于 gradle 项目时,我会遇到“./gradlew: Permission denied”错误?

Moh*_*ini 17 continuous-integration github gradle github-actions

我有一个非常简单的 gradle 项目,当我设置 GitHub Actions CI 时,我遇到了这个错误:

Run ./gradlew clean dependencies
  ./gradlew clean dependencies
  shell: /bin/bash -e {0}
  env:
    JAVA_HOME: /opt/hostedtoolcache/Java/8.0.222/x64
    JAVA_HOME_8.0.222_x64: /opt/hostedtoolcache/Java/8.0.222/x64
/home/runner/work/_temp/8f29e484-fbb4-4e29-a02a-679519aec24c.sh: line 1: ./gradlew: Permission denied
##[error]Process completed with exit code 126.
Run Code Online (Sandbox Code Playgroud)

Moh*_*ini 25

我找到了答案!

我只需要更改 git 存储库上的 gradlew 文件权限即可使用以下命令使其可执行:

git update-index --chmod=+x gradlew
git commit -m "Make gradlew executable"
Run Code Online (Sandbox Code Playgroud)

这很简单,但浪费了我的时间!


TSB*_*99X 17

要解决此问题,您可能需要chmodgradle一个之前添加操作。像这个:

- name: Change wrapper permissions
  run: chmod +x ./gradlew
Run Code Online (Sandbox Code Playgroud)

因此整个工作流文件可能如下所示:

name: Java CI

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1
    - name: Set up JDK 1.8
      uses: actions/setup-java@v1
      with:
        java-version: 1.8
    - name: Change wrapper permissions
      run: chmod +x ./gradlew
    - name: Build with Gradle
      run: ./gradlew build
Run Code Online (Sandbox Code Playgroud)