【CI/CD 第1話】Github CLIのセットアップ
みなさん超お久しぶりです。
最近、本業の方が超忙しくて全然更新できておりませんでした。(bot開発も全然進んでおりません。。)
来年は記事の更新もしつつ、bot開発も進めていきたいです。
今回の記事ですが本業の方でgithub actionsを用いたCI/CDを行う必要性が出てきました。
しかしシステム開発系はほぼno知識ですので、年末年始に学んだことを備忘録として残していこうと思います。
前提知識
以下は現在の私の知識・スキルセットです。
git, Githubは使っている。
ただし一人開発なので、ブランチを切ったりしたことはない。
当然プルリクもしたことない。(してもレビューしてくれる人がいない)
コードのバージョン管理や紛失予防のために使っている。
CI/CDって単語は知っている。
なんかテストとかデプロイとかを自動でしてくれるやつでしょ?
でもGithubと何の関係があるの?
本業はデータ分析なので、本格的なシステム開発はしたことない。
作ったモデルを実務に入れたことはあるが、職場にある共有PC(redhat)で動くシステム。(最悪動かなくても業務は回るレベル)
典型的な「分析してnotebookでモデルを作ることはできるけど、自分で実運用までしたことないデータサインティスト」です。
参考書籍
今回参考とさせていただく書籍は以下となります。
Xで「網羅的でわかりやすく、実運用にも利用できる!」って投稿を見かけて即ポチりました。
CI/CDの目的
そもそものCI/CDの目的は以下と記載されていました。
SDGsみたいな謳い文句だなと思いました。
まー言いたいことは下記なのかなと私は理解。
多くの企業はソフトウエアを通してユーザーに価値を提供している。
でもユーザーの価値観は常に変化し続ける。
長期にわたってユーザーに価値を提供しようと思うと、ソフトウエアもアップデートし続ける必要がある。
アップデートし続けるための作業(デプロイ・テストetc)を自動化・省力化し、品質向上&バグ低減を図ろう!
実行環境
仕事で使っている環境とリンクさせたいので、本記事ではsagemaker環境でコードを書き、検証していきます。
このsagemakerですが、以前まではnotebook形式がメインでしたが、最近は統合開発環境として大幅にアップデートされておりまして、vscodeチックな環境まで用意されております。
なので今回はsagemaker のCodeEditor上であれこれ作業をしていこうと思います。
参考:sagemakerの始め方
参考:CodeEditorの公式資料
Github CLIのセットアップ
急に本題が始まりますが、github actionsを用いてCI/CDを行いたい場合、Github CLIなるものをセットアップしておく必要があるようです。
なのでまずはCodeEditor上のterminalでGithub CLIをインストールします
ghコマンドのインストール
まずは下記のコマンドでGithub CLIをインストールします。
※ ghはgithubの略
type -p curl >/dev/null || sudo apt install curl -y
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \
&& sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& sudo apt update \
&& sudo apt install gh -y
Githubへの認証の追加
次に、実行している環境(aws > sagemaker > codeeditor)と自分のGithub環境をリンクさせる必要があります。
そのために、下記のコマンドをterminalで入力。
gh auth login
いろいろ質問されますが、"Github.com"、"SSH接続"だけ選択し、あとはyes or Enter連打でリンク完了します。
だいぶ省略してしまいましたが、下記の記事がよくまとまっておりました。
ssh-keygenしていたあの時代が懐かしい、、
下記コマンドでGithubと接続できているか確認できます。
gh auth status
まとめ
Github CLIのセットアップが完了。
次回はGithub Actionsのコードを書き、実行していきたいと思います。