0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

create-pull-request@v7注意点

Posted at

余計なことをしたせいでしょーもないところでハマったので備忘録
create-pull-request@v7でGitHubのPR作成を自動化しようとしたときのちょっとしたハマりどころです。

起きたこと

こんなGitHub Actionを作ってました。差分があったら自動でPRを作りたかったのです。

on:
  pull_request:
jobs:
  sample:
    runs-on: ubuntu-latest
    steps:
    - name: change
      run: |
      git branch -b "sample"
      <ファイルチェンジの処理何か>
      git add .
      git commit -m "Update!"
      git push origin sample
    - name: create pr
      uses: peter-evans/create-pull-request@v7
      with:
        branch: "sample"
        title: "auto update"
        body: "auto update dayo!"
        base: main

ただ、これを実行すると、差分が全くないPRが作成されてしまっていました。
commitもpushもうまく行っていたのになぜ?と思って調べてみると、create-pull-requestのステップで、その前のステップで作った同名のブランチを上書きしていることが判明…
つまり、create-pull-request以前のステップがなかったことになっていたのです。

これが起きないようにするために

create-pull-requestさんはPR作成だけをやってくれるツールではなく、

  • 新しいブランチ作成
  • 差分の自動検出
  • コミット
  • リモートへのプッシュ
  • PR作成

までを一括してやってくれるツールです。
ゆえに、手元で余計なことをしてはならず、ユーザーがGitHub Actionで指定すべきことはファイルを更新するべきことだけなのです。

これで問題解決。

on:
  pull_request:
jobs:
  sample:
    runs-on: ubuntu-latest
    steps:
    - name: change
      run: |
      <ファイルチェンジの処理何か>
    - name: create pr
      uses: peter-evans/create-pull-request@v7
      with:
        branch: "sample"
        title: "auto update"
        body: "auto update dayo!"
        commit-message: "Update!"
        base: main

他のステップなどで適用した、今手元にある変更を、with.branchで指定したブランチに自動的にコミット&プッシュしてくれます。with.commit-messageを指定すれば、git commit -mのメッセージに代替させることもできます。かんたんだね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?