Search code examples
gradlegithub-actions

GitHub action fail gradle build


Java GitHub action based on Gradle fails with the error:

Run ./gradlew build --scan
  ./gradlew build --scan
  shell: /usr/bin/bash -e {0}
  env:
    JAVA_HOME: /opt/hostedtoolcache/Java_Adopt_jdk/17.0.3-7/x64
Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain
Caused by: java.lang.ClassNotFoundException: org.gradle.wrapper.GradleWrapperMain
Error: Process completed with exit code 1.

GitHub actions config .github/workflow/github-actions.yml

name: CI

on:
  push:
    branches: [ prod, test, dev ]
    paths:
      - 'story/**'
  pull_request:
    branches: [ prod, test, dev ]
    paths:
      - 'story/**'

jobs:
  build-without-cache:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Set up JDK 17
        uses: actions/setup-java@v3
        with:
          java-version: 17
          distribution: 'adopt'
      - name: Build with Gradle
        run: ./gradlew build --scan
  build-with-setup-java-cache:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Set up JDK 17
        uses: actions/setup-java@v3
        with:
          java-version: 17
          distribution: 'adopt'
          cache: gradle
      - name: Build with Gradle
        run: ./gradlew build --scan --no-daemon
  build-with-gradle-build-action-cache:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Set up JDK 17
        uses: actions/setup-java@v3
        with:
          java-version: 17
          distribution: 'adopt'
      - uses: gradle/gradle-build-action@v3
        with:
          arguments: build --scan
  build-with-upload-artifact:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Set up JDK 17
        uses: actions/setup-java@v3
        with:
          java-version: 17
          distribution: 'adopt'
          cache: gradle
      - name: Build with Gradle
        run: ./gradlew build --scan --no-daemon
      - name: Archive test report
        uses: actions/upload-artifact@v3
        with:
          name: Test report
          path: build/reports/tests/test

REPO LINK

What is the mistake and how to fix it?


Solution

    • name: Run chmod to make gradlew executable run: chmod +x ./gradlew

    use above job