Search code examples
github-actionspull-request

Pull request task is success but nothing gets pushed


I have a GitHub Actions workflow as follows. I am trying to run a Gradle task to generate Kotlin files from .proto files. After generating these files, I want to push those Kotlin files to another repository.

Here is the GitHub Actions running: https://github.com/ksharma-xyz/Proto-API/actions/runs/9806185942/job/27077373188

I have verified that until Verify pushed branch, everything is fine, the commit is created and the branch is created. However, in the task Create Pull Request, the PR does not get created and nothing gets pushed. I need some help with debugging this.

The workflow file is as below:

name: Generate Kotlin

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]
  workflow_dispatch:

jobs:
  generate-kotlin:
    runs-on: ubuntu-latest

steps:
  - name: Checkout repo
    uses: actions/checkout@v4

  - name: List directory structure before building
    run: ls -R

  - name: Generate Protos
    run: ./gradlew generateProtos

  - name: List directory structure after building
    run: ls -R

  - name: List generated Kotlin files for debugging
    run: ls -R lib/build/generated/source/wire/ || echo "Directory not found"

  - name: Upload generated Kotlin files
    uses: actions/upload-artifact@v4
    with:
      name: generated-kotlin-files
      path: lib/build/generated/source/wire/**/*.kt

  - name: Checkout target repo
    uses: actions/checkout@v4
    with:
      repository: 'ksharma-xyz/Kotlin-Proto'
      token: ${{ secrets.TOKEN }}

  - name: Download artifact
    uses: actions/download-artifact@v4
    with:
      name: generated-kotlin-files
      path: ./generated

  - name: List downloaded files
    run: ls -R ./generated

  - name: Configure Git
    run: |
      git config --global user.name 'github-actions[bot]'
      git config --global user.email 'github-actions[bot]@users.noreply.github.com'
      git config --global init.defaultBranch main

  - name: Create a new branch
    run: git checkout -b kotlin

  - name: Copy generated files to target repo
    run: |
      mkdir -p kotlin
      touch test.txt
      cp -r ./generated/* kotlin/
      ls -R kotlin/ || echo "Copy failed"

  - name: Create Commit
    run: |
      git add .
      git commit -m "Kotlin Files"

  - name: Push changes to target repo
    run: git push --set-upstream origin kotlin

  - name: Verify pushed branch
    run: |
      git fetch
      git checkout kotlin
      git log -1

  - name: Create Pull Request
    uses: peter-evans/create-pull-request@v6
    with:
      token: ${{ secrets.TOKEN }}
      commit-message: "Add generated Kotlin files from ksharma-xyz/Proto-API"
      branch: kotlin
      title: "Add generated Kotlin files from main project"
      body: "This PR adds the generated Kotlin files from the main project."
      base: main
      committer: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
      author: ksharma-xyz <[email protected]>
      signoff: false
      delete-branch: false
      draft: false

Solution

  • I solved it, the issue was that we do not need to commit separately. The PR task will automatically create a commit. https://github.com/ksharma-xyz/Proto-API/blob/main/.github/workflows/gen-kotlin.yaml