Actionsベストプラクティスこんにちは大櫛です。Actionsになった途端*1爆発的な流行が生まれたりと、CIサービスにおいてもここ数年で色々な動きがありました。Actionsの利用が進んでいるような印象を受けます。projectで使う際に知っておいた方がいいことやactionを紹介していきます。以下の情報は執筆時点(2023-02-19)のものに基づいています。閲覧時には無効・誤ったものになっている可能性がありますので、必ず最新の情報・状態を確認するようにしてください。actions-rs(非推奨)まずはじめに、執筆時点では使用を控えた方がいいaction群であるactions-rsについて紹介します。coverage部分を簡単に扱うための存在として、actions-rsが登場しました。projectで採用されていきました。actions-rsのメンテナはsvartalf氏ただ一人であり、氏が2022年以降インアクティブになっていることでいくつかの問題が発生しています。noticeを出しており、それらの影響をactions-rsが受けているのです。trackerに起票されPRも提出されていますがmergeされる気配はありません。https://github.com/actions-rs/cargo/issues/216これらは今後動作しなくなることが決定・検討されているため、利用者は該当actionの利用をやめるか、動かなくなる前にメンテナが帰ってくることを祈るほかありません。前者の一つとして、forkしたものに自分たちで手を入れるというのも考えられますが、本当に必要なのだっけという検討をするのも手でしょう。runnerにはrustupがpre-installされているため、インストールステップを追加することなく書き換えが可能です。組み合わせてconfigを用意する方が見栄えよく管理できるという話もありそうですが、runベタ書きでも目的を達成できる部分はそのようにしておくと下手に依存関係をつくらずに済むので、一考の余地があるでしょう。usageとしてactions-rsのactionが記載されている場合があります。コピペする際には留意しておくべきでしょう。channelなどのブランチをそれぞれ用意するという荒業でone-lineでの記述を可能にしています。componentの追加やtargetの指定ももちろん可能です。Version(MSRV)を設定する際には有用そうです。Swatinem/rust-cache少し昔話をしましょう。projectで利用するのは現実的ではありませんでした。リミットが緩和されたり圧縮形式が改善されたりしたことにより、今では多くのプロジェクトで支障なく利用できるまでになっています。