LoginSignup
4
1

More than 3 years have passed since last update.

自動でcomposer updateしてPull Requestを作るGitHub Actionsを作った

Posted at

composer使ってるプロジェクトなら何でも使えるはず。
https://github.com/kawax/composer-update-action
https://github.com/marketplace/actions/composer-update-action

PHP7.4が下限なので7.4ではインストールもできないプロジェクトではcomposer.jsonでconfig.platformの設定が必要かも。

プライベートリポジトリでも使える。プランごとに月に何分までの制限があるけど。

使い方

.github/workflows/update.ymlを作るだけ。

UTCの0時は日本時間で9時。好きなように変更する。

name: composer update

on:
  schedule:
    - cron: '0 0 * * *' #UTC

jobs:
  composer_update_job:
    runs-on: ubuntu-latest
    name: composer update
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: composer update action step
        uses: kawax/composer-update-action@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

GITHUB_TOKENは自動的に使える

ymlにこれさえ書けばいい。

        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

パーソナルアクセストークンの作成は不要。Secretsは使わなくていい。

composer.jsonがルートにない場合

COMPOSER_PATHでcomposer.jsonがあるサブディレクトリを指定。

        env:
          COMPOSER_PATH: /subdir

composer.jsonが2つある場合

2回に分けて実行。

      - name: 1st
        uses: kawax/composer-update-action@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - name: 2nd
        uses: kawax/composer-update-action@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          COMPOSER_PATH: /subdir

コミットユーザー

        env:
          GIT_NAME: cu
          GIT_EMAIL: cu@composer-update

Secretsを使ってもいい。

        env:
          GIT_NAME: cu
          GIT_EMAIL: ${{ secrets.GIT_EMAIL }}

GitHub Actionsのバージョン

@v1で指定してる例が多いからcomposerの^1.0と同じかと思ったけど違った。v1というタグをわざわざ付け替えてる。そんな面倒なことしたくないのでv1はブランチで使用することにした。@v1ならv1ブランチから使う。タグは普通にv1.0.0

steps:    
  - uses: actions/setup-node@74bc508 # Reference a specific commit
  - uses: actions/setup-node@v1.0    # Reference the major version of a release   
  - uses: actions/setup-node@master  # Reference a branch

終わり

自動composer update自体は1年以上前から毎日動かしてたけど結構負荷が高いので自分のサーバーで動かすと色々辛い。
GitHub Actionsに移したのでかなり楽になった。

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