見出し画像

【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の公式資料

SageMaker StudioのCodeEditor
Sagemaker CodeEditorの画面
(vscodeと機能も遜色なくビビりました)

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
ghがインストールされていることが確認

Githubへの認証の追加

次に、実行している環境(aws > sagemaker > codeeditor)と自分のGithub環境をリンクさせる必要があります。
そのために、下記のコマンドをterminalで入力。

gh auth login

いろいろ質問されますが、"Github.com"、"SSH接続"だけ選択し、あとはyes or Enter連打でリンク完了します。

SSH接続を選びましょう

だいぶ省略してしまいましたが、下記の記事がよくまとまっておりました。
ssh-keygenしていたあの時代が懐かしい、、

下記コマンドでGithubと接続できているか確認できます。

gh auth status

まとめ

  • Github CLIのセットアップが完了。

  • 次回はGithub Actionsのコードを書き、実行していきたいと思います。

いいなと思ったら応援しよう!