Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GitHub_Actionsをセルフホストランナーで導入する
Search
あるど
December 16, 2020
0
2.9k
GitHub_Actionsをセルフホストランナーで導入する
社内LT会で発表したものです、一部変えています。
あるど
December 16, 2020
Tweet
Share
More Decks by あるど
See All by あるど
Unity WebGL向けにjsでネイティブプラグイン書いた話
mizotake
0
440
OSSをゆるっとやるだけでも 楽しいなって話
mizotake
2
3.1k
手軽なトラッキング技術で遊んでみた
mizotake
0
2.7k
Kotlin/Native With Unity
mizotake
1
230
Unity開発でCI/CDを使おうと思った時
mizotake
0
1.1k
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
327
21k
Being A Developer After 40
akosma
86
590k
Become a Pro
speakerdeck
PRO
25
5k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
120
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
GitHub's CSS Performance
jonrohan
1030
460k
Practical Orchestrator
shlominoach
186
10k
Bash Introduction
62gerente
608
210k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
Transcript
GitHub Actionsを セルフホストランナーで導入した話
GitHub Actionsを 導入してみました
GitHub Actionsって何?
GitHub Actionsとは プッシュ、Issue、リリースなどのGitHubプラットフォームのイベントをトリガーとしてワークフローを起動しましょう。コミュ ニティが開発・保守し、ユーザが熟知・愛用しているサービスについて、対応するアクションを組み合わせて設定できま す。 コンテナアプリの構築、Webサービスの展開、レジストリへのパッケージの公開、またはオープンソースプロジェクトへの 新しいユーザーのウェルカムメッセージを自動化するなど、さまざまな用途で Actionsを利用できます。 GitHub PackageとActionsを連携させパッケージ管理を簡素化できます。バージョンのアップデート、グローバル
CDNによる高 速配布、既存のGITHUB_TOKENを使用した依存関係の解決なども行えます。 https://github.co.jp/features/actions
なんや色々連携しやすいCI
GitHub Actionsとは 連携できる例 • GitHub(issue/Pull request/Project..etc) • Slack • Docker
...AWS,Azure,InteliJ...etc 参考: https://github.com/marketplace?type=actions
そもそも何故導入しようと思っ たのか
きっかけ ・Jenkinsは立ち上げ済(既にビルドジョブとかは定義している) ・Docker扱ったりGitHubのapi叩けるようにするのめんどくさい ・IPアドレス制限などは案件都合上必要(セルフホストランナーがある)
やりたいこと ・GitHub Actionsをセルフホストランナーで導入する ・毎日PRを作る必要性があったので自動化 ・fastlaneを導入していたのでRubyのlintチェック
今回できたこと ・GitHub Actionsをセルフホストランナーで導入する →最終的にはDinDで解決した ・毎日PRを作る必要性があったので自動化 →cronのトリガー機能を使って自動化できた ・fastlaneを導入していたのでRubyのlintチェック →rubocopを導入してPRのコミット単位でチェック可能になった
今回できたこと ・GitHub Actionsをセルフホストランナーで導入する →最終的にはDinDで解決した ・毎日PRを作る必要性があったので自動化 →cronのトリガー機能を使って自動化できた ・fastlaneを導入していたのでRubyのlintチェック →rubocopを導入してPRのコミット単位でチェック可能になった
セルフホストランナー 実際に処理を行うマシンでJenkinsのAgentみたいなもの 対応OS - Linux(一部) - macOS - Windows セットアップ用のリポジトリがあるので手順に従う
https://github.com/actions/runner
セルフホストランナー macOSでセットアップしたがサードパーティーのActionが動かない… → 大体Linuxのホストランナーにしか対応してない → DockerでUbuntuベースのホストランナーDockerfileを定義して動かす → 動かない
どうして…
セルフホストランナー よく確認するとLinux上でDockerが動かせることが条件のActionもある → でも、Linux自体はDockerで動いてて…
???
Dockerで動いているOSの上で Dockerが動けばいい
Docker in Docker
https://www.tiuweehan.com/blog/2020-09-10-docker-in-jenkins-in-docker/
ちゃんとActionが動いた
ヨシ!
今回できたこと ・GitHub Actionsをセルフホストランナーで導入する →最終的にはDinDで解決した ・毎日PRを作る必要性があったので自動化 →cronのトリガー機能を使って自動化できた ・fastlaneを導入していたのでRubyのlintチェック →rubocopを導入してPRのコミット単位でチェック可能になった
自動でPRを作る https://docs.github.com/ja/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actio ns#onschedule
自動でPRを作る(画像はissueにコメントするやつ) https://github.com/actions/github-script
今回できたこと ・GitHub Actionsをセルフホストランナーで導入する →最終的にはDinDで解決した ・毎日PRを作る必要性があったので自動化 →cronのトリガー機能を使って自動化できた ・fastlaneを導入していたのでRubyのlintチェック →rubocopを導入してPRのコミット単位でチェック可能になった
https://docs.fastlane.tools/
Ruby製のCI支援CLI
fastlaneとは ・iOS証明書の入れ替え ・Xcode/Gradleのビルド ・AppStore/PlayStoreへのipa/apkアップロード ・Git操作 ・UITestを使ったスクリーンショット機能 などがデフォルトで搭載、サードパーティーの追加処理を入れたりも可能
fastlaneとは 処理をRubyで定義 → Ruby自体そこまで精通しなくても雰囲気で書ける → Rubyの書き方が揃わなくなる
書き方が整わないなら 揃えればいいじゃない
lintツールの検討
https://github.com/rubocop-hq/rubocop
GitHub Actionsで動かすなら
https://github.com/andrewmcodes/rubocop-linter-action
https://hai3.net/blog/github-actions-rubocop-linter-action/
まとめ
用途に合わせてCIを 使い分けるのはアリ