Github Actionsを触ってみた

# 概要

- Github Actionsを触ってみたので体験記としてまとめる。

# 前提

- Githubとのpush/pullなどのやり取りはssh接続を用いる。
- Githubにご自身のPCのsshキーが登録され、アクセスできる状態になっている。

# 方法

1. 準備
    1. テスト用のリモートリポジトリを作成する。

        ![Create_a_New_Repository.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/3a1cd1a6-2ab9-63ce-c83e-98e8cb7891e2.png)

    1. ローカルPCの任意のディレクトリで下記コマンドを順に実行して空コミットをPushするところまで行う。

        ```shell
        git init
        git config --local user.name 'ご自身のお名前'
        git config --local user.email 'ご自身のメールアドレス（githubに登録されているものとは別でも良い）'
        git commit -m 'first commit' --allow-empty
        git remote add origin リモートリポジトリのアドレス
        git puh origin master
        ```

1. 体験
    1. 下記コマンドを実行してActionsで動作させる命令を記載したファイルを格納するディレクトリを作成する。

        ```shell
        mkdir -p .github/workflows
        ```

    1. 下記コマンドを実行して`.github/workflows`ディレクトリ直下に`github-actions-demo.yml`というファイルを作成し開く。

        ```shell
        vi .github/workflows/github-actions-demo.yml
        ```

    1. `.github/workflows/github-actions-demo.yml`に下記の内容を記載する。（下記の内容は参考文献先のページに最新のものが記載されている。）

        ```yml
        name: GitHub Actions Demo
        run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
        on: [push]
        jobs:
          Explore-GitHub-Actions:
            runs-on: ubuntu-latest
            steps:
              - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
              - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
              - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
              - name: Check out repository code
                uses: actions/checkout@v3
              - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
              - run: echo "🖥️ The workflow is now ready to test your code on the runner."
              - name: List files in the repository
                run: |
                  ls ${{ github.workspace }}
              - run: echo "🍏 This job's status is ${{ job.status }}."
        ```

    1. 下記コマンドを実行して変更をコミットしてpushする。

        ```shell
        git add .github
        git commit -m 'Actions テスト用'
        git push origin master
        ```

    1. 当該のGithubのメインページを開き、「Actions」をクリックする。

        ![miriwo0104_github_actions_test.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/5ac10199-b826-5669-7817-bcef507b9832.png)

    1. 「All workflows」の中に今追加したテスト用のワークフローがあるのでクリックする。

        ![miriwo0104_is_testing_out_GitHub_Actions_🚀_·_miriwo0104_github_actions_test_b67fc19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/a40ba2a0-3f39-bc30-652f-a25eb1296b80.png)

    1. 開いたページには最後に実行されたワークフローの情報が表示されている。（トリガーの情報やステータスやかかった時間等）「Explore-Github-Actions」をクリックすると実行時のログを確認する事ができる。

        ![miriwo0104_is_testing_out_GitHub_Actions_🚀_·_miriwo0104_github_actions_test_b67fc19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/cb2d5ee1-592f-2c5a-9436-b24fa1965213.png)

    1. 「Explore-Github-Actions」をクリックすると下記のように表示される。

        ![miriwo0104_is_testing_out_GitHub_Actions_🚀_·_miriwo0104_github_actions_test_b67fc19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/a047e980-b29a-f73c-a936-fbbaf3f93a24.png)

    1. ymlに記載された内容を見るとブランチに関係なくpushが行われたときに当該のワークフローが動作するように設定されている。試しに適当なブランチを作ってワークフローが動作することを確認してみる。

        ```shell
        git branch workflow_test
        git switch workflow_test
        git commit -m 'ワークフロー確認用空コミット' --allow-empty
        git push origin workflow_test
        ```

    1. workflow_testブランチをpushしたところ下記の様にワークフローが実行された。

        ![Actions_·_miriwo0104_github_actions_test.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/19d1b221-32cc-6c9d-bbf1-28056609f49a.png)


# 参考文献

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