もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

github action でキャッシュを使う

はじめに

こんばんは。

先週から目眩と頭痛が続いていて体調が悪く死んでおりました。

今回は github action のキャッシュをつかってみたので備忘録として残しておきます。

docs.github.com

本題

本体はこちら

name: Test

on:
  push:
    branches:
      - main

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: shivammathur/setup-php@v2
        with:
          php-version: '8.1'

      - uses: actions/checkout@v3

      - name: Setup ENV
        run: |
          cp .env.example .env

      #### キャッシュのコード
      - name: Get Composer Cache Directory
        id: composer-cache
        uses: actions/cache@v3
        with:
          path: ${{ github.workspace }}/vendor
          key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
          restore-keys: ${{ runner.os }}-composer-
      - name: Install Dependencies
        if: steps.composer-cache.outputs.cache-hit != 'true'
        run: |
          composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
      #### キャッシュのコード

      - name: Execute Test
        run: |
          php artisan key:generate && ./vendor/bin/phpunit

これを使ってまず動かしてみます。

キャッシュが作られてないのでnot foundとなり、後続の composer installが実行されています。

つぎに、適当にファイルを修正して pushしてみます(mainブランチへのpushがトリガーなので動いてくれます)

キャッシュがヒットして後続のcomposer installは実行されていません!

終わりに

phpはこんな感じでできますが、jsもおんなじ要領でできます。

ただ、jsは setup-node でもキャッシュできるみたいです。

個人的には書き方統一したいなと思うので、jsもおんなじように書いちゃいたいです。

こんな感じで終わり。

来週からは体調治るといいな。。。