はじめに
VS Code上でソースコードをGitHubにpushすると、サーバーへ自動アップロードされるActionを設定しています。
このActionでエラーが出るようになってしまったので、解消の手順メモです。
環境はつぎのとおりです。
- GitHub Actionsライブラリ
- SamKirkland/FTP-Deploy-Action@4.1.0
- ※mainブランチへのpushをトリガーにFTPサーバーへアップロード
- サーバー
やったこと
エラーの内容の確認
GitHubのActionsをみると、直近のworkflowがエラーでこけていました。

エラーの内容は、「そのようなファイルもしくはディレクトリーはありません」とのことです。

Error: FTPError: 550 xxx/xxx/: No such file or directory
ただ、HPはちゃんと更新が反映されており、アップロード自体は完了していそうでした。
エラーの解消
FTPアップロードする際は、差分をみて変更分だけサーバーへアップロードしており、サーバー上の.ftp-deploy-sync-state.jsonというファイルで差分を管理しているようです。
サーバーを確認したところ、.ftp-deploy-sync-state.jsonの更新日が、前回Actionが成功した日で止まっていました。
おそらくこのファイルが何らかの原因でおかしくなったと推測して、このjsonファイルを削除(は怖いのでリネーム)しました。
差分情報がないために、全件アップロードすることになり、Action完了までにいつもより時間かかりましたが、無事にエラーが解消されました。
手順まとめ
- Actionsのエラーの内容を確認する
- エラー内容:
Error: FTPError: 550 xxx/xxx/: No such file or directory
- エラー内容:
- サーバー上の
.ftp-deploy-sync-state.jsonを確認する- 更新日が前回Action実行日でとまっていた
- サーバー上の
.ftp-deploy-sync-state.jsonを削除(もしくはリネーム)する - 再度Actionを実行する
- 全件アップロードしなおすため時間がかかるので注意
おわりに
以前にも同じような内容のエラーが起きて、忘れないように手順をまとめておこうと思っていましたが、そこから1年半もたってしまっていました…。
おそらく同じエラーだろうとあたりをつけることはできましたが詳しい手順は忘れていたので、ちゃんと当時メモしておけばよかった、後回しにするとダメだなと反省です。