Github上で職務経歴書の継続的インテグレーションを行う方法を真似てみた

# 今回利用させていただいた機能に関する記事
今まで職務経歴書はずっとGoogleドキュメントで管理していましたが、
Githubで管理するという大変興味深い記事を見つけましたので、勉強がてら引用させていただきました。

https://zenn.dev/ryo_kawamata/articles/resume-on-github

こちらの記事内で公開されているリポジトリを、GitHub templateを利用して自分用のリポジトリとして作成し、編集を行いました。

Githubの機能に触れる良い機会になったので、今回の実装経験を自分なりにまとめてみようと思います。

:::note warn
説明にあたって、Githubの項目表記は英語名で記しております。
:::
# 完成品
https://github.com/hagiohagi/resume

# 手順
## ①GitHub templateでリポジトリを作成
GitHubのTemplate Repository機能では、基本的な設定ファイルやコードベースをそのまま継承して新しいリポジトリを作成することができます。
1. 引用元のリポジトリのトップページから、Use this templateを押下し、Create a new repositoryを選択
1. 以下のように項目を入力したら、Create repositoryを押下する。
    - Owner: 自分のアカウント
    - Repository Name: 任意のリポジトリ名
    - 公開設定: Public 

これで、トップページにgenereted fromと引用元が表示されたリポジトリが作成されるでしょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678858/245463d2-e370-51b3-9f41-77c547b56a8e.png)
## ②GitHub Pagesで表示するコンテンツを作成
リポジトリの引用ができたら、職務経歴書の中身を書いていきます。
ファイル構成を確認すると、`/docs`配下に`_config.yml`と`README.md`ファイルがあるはずです。
`_config.yml`は、jekyllによるGithub Pagesのデザインの設定ができます。
`README.md`は、マークダウン書式でGithub Pagesに表示するコンテンツを入力できます。
ありがたく`docs/README.md`には職務経歴書の記入テンプレートが予め記載されているので、内容を埋めていきましょう。

また、ルート部分の`README.md`は引用元そのままなので、自分のリポジトリ名に合わせるよう適宜内容を書き換えてください。

Github Pagesを公開するためには、以下の手順を踏みます。
（参考元：[GitHub Pages サイトを作成する](https://docs.github.com/ja/pages/getting-started-with-github-pages/creating-a-github-pages-site#creating-your-site)）
1. リポジトリ名の下にあるSettingsを押下する。
1. 左サイドバーのCode and automationからPagesを押下する。
1. Build and deploymentのSourceの箇所をDeploy from a branch、BranchをMaster・/docsに設定し、Saveを押下する。
1. もう一度Pagesのページで、上部に表示されたVisit siteを押下し、`https://{アカウント名}.github.io/resume/`にアクセスできれば成功
## ③タグ付きでプッシュしてGithub actionを起動

`v`で始まる名前のタグを付けた状態でプッシュした場合、Github Actionが稼働して以下の処理が自動で行われるようになっています。
- タグのバージョンに応じたreleaseの作成
- `docs/README.md`に記された内容のPDF出力
- textlintによる文章の校閲

コミット・プッシュを行う際は、以下の手順で行いましょう。
```
$ git commit -m "コミット内容"
$ git tag v1.0   # vの数値は状況に応じて設定する
$ git push origin --tags
```
この方法でプッシュを行った後は、Github Actionsの`build pdf`・`lint text`・`pages-build-deployment`の各ワークフローが動くかと思います。
リポジトリ名の下にあるActionsを押下し、All workflowsのリストを見て動作状況を確認してみましょう。
また、ワークフローがうまく動作したか以下の方法で確認してみましょう。
- **lintの校閲結果**
  1. Actionsのページから左サイドバーのlint textを選択
  1. workflow runsにリストから、実行に失敗した項目を選択
  1. 左サイドバーのjobsの欄にあるlint textを押下し、ログのエラーになっている箇所を確認する
- **Github Pagesが更新されているか**
  1. 以下のリンクを確認し、`README.md`に記載した内容が反映されていれば成功   
  `https://{アカウント名}.github.io/resume/`
- **PDFが更新されているか**
  1. リポジトリのトップページ右側にあるReleasesをクリック
  1. Releases+タグ名のAssetsにpdfファイルがあるので開いて確認する
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678858/7ac987fa-17da-a3ca-c8ed-6f2853bd450d.png)

## つまづいた点
### build pdfのワークフローでエラーが発生
ジョブreleaseを作成する箇所で、`Resource not accessible by integration`というエラーが発生した。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678858/ea83b7b2-ddca-9bd1-a983-99967b937c76.png)
原因は、Github Actionsに書き込み権限が付与されていなかったからっぽい。
（参考元：https://docs.github.com/ja/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository）
- 解決方法
  1. リポジトリ名の下にあるSettingsを押下
  1. 左のサイドバーでActionsを押下して、Generalを押下
  1. Workflow permissionsの箇所をRead and write parmissionsを選択し、その下のSaveを押下
# 最後に
ご覧いただきありがとうございました。
Github Actionsを使いこなせたら業務効率化もますます捗るんだろうなと、改めて感じられました。
手探りでGithubの設定画面を探し回った経験が、今後活かせるようになれたらと思います。