2020年1月12日日曜日

GitHub Actionsのカレントディレクトリーの扱いでハマった話

このブログでちょいちょいGitHub Actionsのことを書いているのですが、最近カレントディレクトリーの扱いでハマったのでメモがてら残しておきます。

ハマった内容

こんな内容です。stepsのみ記載します。
    steps:
    - name: カレントディレクトリーを移動
      run: cd subdir
    - name: 移動先でスクリプトファイルを実行
      run: ./test-script.sh
思ったとおりの動作をしない。
エラーにはならないけど、結果がなんか違う

そんなこんなで半日ほどハマりました。

原因

多分みなさんは奮闘記には興味がないと思うので、結論だけ書きます。

各ステップ間で、カレントディレクトリーは保持されない

言い換えると、ステップが変わるとカレントディレクトリーはリセットされる

解決方法

一度のステップでディレクトリ移動とスクリプトファイルの実行をやればOK
    steps:
    - name: 移動&実行
      run: cd subdir; ./test-script.sh
    - name: こっちでもOK
      run: |
        cd subdir
        ./test-script.sh

ハマった理由

「え?それならスクリプト実行時にnot foundエラーになるからすぐ気づくんじゃないの?」

そう思ったアナタは正しい。

駄菓子菓子。

移動元のディレクトリーにも同名のスクリプトファイルがあった(処理内容は別)のがハマった理由です。

「それって設計がクソなだけでしょ

なにも反論できない。

教訓

同名のファイルはなるべく作らないようにしましょう。

エディタで編集しているときにも混乱します。

0 件のコメント:

コメントを投稿