🎈

GitHubのプロフィールをかっこよくしたい気持ちから始まる GitHub Actions の調査

2022/08/31に公開

はじめに

GitHubのプロフィールにPrivateレポジトリのコミット数等を反映させて、強そうなページにしたい!という気持ちから、
https://zenn.dev/yutakatay/articles/kirakira-github-profile
のページに辿り着きました😆
💭 なので、かっこよくしたい!という方は↑のページに飛んでください!

そこから自分が欲しいと思ったActionだけ拾い、以下のような.github/workflows/main.ymlファイルができたのですが…
https://github.com/hatsumihayashi/hatsumihayashi/blob/main/.github/workflows/main.yml
どうしてこのymlを書くだけで全てうまくいくの🤔?と思い、ちゃんと調べてみることにしました

公式ドキュメント

https://docs.github.com/ja/actions

いざ調査🔍

階層・ファイル名

GitHub Actionsとして認識させるためには、.github/workflowsフォルダ内にymlを作る必要があります!
私のレポジトリでのファイル名は、main.ymlとしましたが、どんなファイル名でも動くようです
ファイル名はGitHub Actions上では表示されないみたいなので、そこまでこだわらなくても良いのかも…?

💭 途中で2つのymlファイルを1ファイルにまとめたりしたのですが、問題なく動いたのに納得!

yml

ymlファイルを詳しくみていきます
https://docs.github.com/ja/actions/using-workflows/about-workflows#ワークフローファイルを理解する

💭 公式ドキュメントがとても頼もしいので、再説明ではなく、自分が気になったところだけ摘んで紹介します!

GitHub Actions上に表示nameについて

ymlファイルの直下で書いたnameがWorkflowの名前として
jobs > [job名] > nameがJobの名前として表示されます

ymlファイル GitHub Actions

じゃあ、[job名] (ymlファイルにて薄緑で囲ったgithub-profile-card-actions)はどこにいったの?!と思ったら
https://docs.github.com/ja/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idname
今回は、私が jobs > [job名] > nameを定義したことで、[job名]が表示される機会がなくなってしまった ようでした
なるほど…

uses: Action名

肝心の、どうしてymlファイルを書くだけで、全てうまくいくのか…のところです
https://github.com/marketplace?type=actions
答えは、誰かが作ったActionがGitHub Marketplaceにて公開されているから!
Workflow用のツールとして公開されているため、1行uses: Action名と書くだけで誰かが考えたActionを自分のものとして使えちゃうわけですね
JavaScriptにとってのnpm、Rubyにとってのgemにあたるものと認識しています👀

💭 ここが個人的に1番疑問というか感覚的に使ってしまっていたところで、しっかり紐解けて納得感が深まりました!

例えば、uses: actions/checkout@v2であれば
Actionは https://github.com/marketplace/actions/checkout を元に行われていることがわかります

💭 そして、このページに飛んだことで、v3が既にリリース済みということに気がつきました!
(コード修正済みですが、スクショはv2のままです🙇)

おまけ

この記事をわかりやすく書くためにスクショを撮ろう!と思い、GitHub上でGitHub Actions用のymlファイルを編集してみたら、右側に公式ドキュメントの簡易版が表示されていました😲!

しかも、GitHub Marketplaceへの導線もありました…!
ずっとローカルで編集してたから気づかなかったです…

Discussion