githubgithub-actions

GitHub action for issue_comment doesn't shown in checks for PR


I created a GitHub action on:issue_comment, I can see the flow running only in the action tab, but not in the PR, where I made the comment. I want to comment in a PR and trigger a check on that PR (not on master)

here is my workflow:

name: issue-comment-CI-test 

on: 
  issue_comment:    
    types: [created]    
jobs:   
  build:    

    runs-on: ubuntu-latest  

    steps:  
    - uses: actions/checkout@v1 
    - name: Run a one-line script   
      run: echo Hello, world!   
    - name: Run a multi-line script 
      run: echo ${{ github.event.comment.body }}

currently, I'm just printing the comment body, But I plan to check the body, and if it is equal to "run integration tests" then I'll run my integration tests (maven)


Solution

  • Basically you need to checkout to the PR origin. For that, first make a API request to the pr url and fetch all ref. Then do the checkout on the fetched repo and branch.

    Step1

    - name: Github API Request
        id: request
        uses: octokit/request-action@v2.0.0
        with:
          route: ${{ github.event.issue.pull_request.url }}
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    

    Step 2

    - name: Checkout PR Branch
        uses: actions/checkout@v2
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          repository: ${{ fromJson(steps.request.outputs.data).head.repo.full_name }}
          ref: ${{ steps.pr_data.outputs.branch }}
    

    You can follow the following example, specially the GitHub API Request part. I've also implemented it in one of our workflows, you can take reference from that as well.

    https://github.com/adrianjost/workflow-trigger-comment-example/blob/master/.github/workflows/demo.yml https://github.com/TeamAmaze/AmazeFileManager/blob/master/.github/workflows/android-debug-artifact-ondemand.yml