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
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