書籍『GitHub CI/CD実践ガイド』はGitHub Actionsの基本構文からスタートし、テスト・静的解析・リリース・コンテナデプロイなどをハンズオン形式で学べる一冊です。Dependabot・OpenID Connect・継続的なセキュリティ改善・GitHub Appsについても解説し、実運用…
Dockerは公式にDockerfileのベストプラクティスを表明しています。 が、このベストプラクティスに沿っているかどうか?を人間がいちいちレビューしていくのは正直しんどい、というか現実的ではない… そこで「せや!静的解析したろ!」という時に便利なのがhadolintというライブラリです。 使ってみる 今回はVSCode拡張機能とGHAのCI時に静的解析してもらいたいと思います。 今回はちょうどメンテナンスしていない自分のリポジトリがあるので、これに対して静的解析をかけていきます。 まずはVSCode拡張機能で利用するための下準備として、hadolint本体をOSにインストールします。 Macの場合はこちら。 docker/php/Dockerfile:8 DL3008 warning: Pin versions in apt get install. Instead of `apt-
newmoではGitHub Actionsを自動テスト、Lint、デプロイなどに利用しています。 また、newmoではmonorepoで開発しているため、1つのリポジトリに複数のチーム/複数のアプリケーションが存在しています。 GitHub Actionsではpathsを使うことで、特定のファイルが変更された場合のみ特定のWorkflowが実行できます。 newmoのmonorepoのworkflowでは基本的にpathsが指定されていますが、それでも普段は触らないファイルを変更して意図せずにCIが落ちることがあります。 GitHub ActionsのCIが落ちたときに、そのCIの仕組みを作った人やチーム以外だと何をすべきかわからないことがあります。 この問題の解決するを手助けするシンプルな仕組みとして、GitHub ActionsにCIが落ちたときに何をするべきかを表示するPlayboo
最近になって Frontend Ops の傭兵として活動を始めました。 Frontend Ops 実践のモデルケースとして、 株式会社GiXo様で Next.js 仕事に取り組ませいただきました。今回、その内容を公開する許可を頂けたので、事例として公開させていただきます。 依頼主 株式会社GiXo様 以下、敬称略 相談内容 フロントエンド関連のリポジトリで、Next.js のビルドが遅くなってしまった。 重いことに起因して Vercel CI で OOM で確率的に落ちるようになった。CIが信用できなくなり、とりあえず再ビルドするクセがついてしまって、生産性が落ちている。 モノレポ内にとくに重いアプリケーションが一つあり、これを調査・解決してほしい。 仮ゴール: VercelCI 上のビルド時間を半分OOM が発生しないようにしたい 調査フェーズ リポジトリの閲覧権を頂き、プロジェクト構成
name: Dispatch Workflow on: workflow_dispatch: jobs: first_job: name: First Job runs-on: ubuntu-latest if: false timeout-minutes: 10 steps: - uses: actions/checkout@v3 - name: Run Shell run: echo "Hello World" second_job: name: Second Job runs-on: ubuntu-latest needs: first_job if: always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') timeout-minutes: 10 steps:
スライド概要 2024/08/22 開催 「GitHub Actionsの最適化どうしてる? 開発者体験を向上させる運用術」で発表する資料 イベントconnpassページ: https://findy.connpass.com/event/326645/
https://docs.aws.amazon.com/codebuild/latest/userguide/action-runner.html に記載のある、AWS CodeBuildをGitHub ActionsのSelf-hosted Runnerとして使用可能な機能を試します。 確認時点では英語のドキュメントのみあり、日本語版ではページごとありませんでした。 2024-05-14時点での内容です。最新情報は上記ドキュメントを参照ください。また実際に動かしてみるのが一番わかると思います。 普段はGitHub ActionsをGitHub-hosted Runnerで動かしているので、CodeBuildにはあまり慣れていません。CodeBuild使っていれば常識的な部分もあるかもしれません。 基本的な使い方 AWS CodeBuild上でGitHubに接続設定したプロジェクトを用意し
合理化されたコード変更と迅速な機能提供の必要性に対処するために、CI/CD ソリューションは不可欠なものとなっています。このようなソリューションの中で、2018 年にリリースされた GitHub Actions は、セキュリティコミュニティから急速に大きな関心を集めています。Cycode や Praetorian などの企業や、Teddy Katz 氏や Adnan Khan 氏などのセキュリティ研究者が重要な調査結果を公開しています。当社の最近の調査によると、Microsoft (Azure を含む)、HashiCorp などの企業の有名なリポジトリから脆弱なワークフローが引き続き出現していることが確認されています。このブログ記事では、GitHub Actions の概要について説明し、実例を用いてさまざまな脆弱性のシナリオについて検討し、問題を起こしやすい機能を安全に使用するためのガイ
本記事では GitHub Actions で pull_request event の代わりに pull_request_target を用い、 workflow の改竄を防いでより安全に CI を実行する方法について紹介します。 まずは前置きとして背景や解決したいセキュリティ的な課題について説明した後、 pull_request_target を用いた安全な CI の実行について紹介します。 本記事では OSS 開発とは違い業務で private repository を用いて複数人で開発を行うことを前提にします。 長いので要約 GitHub Actions で Workflow の改竄を防ぎたい GitHub の branch protection rule や codeowner, OIDC だけでは不十分なケースもある pull_request event の代わりに pull_r
はじめに さくらインターネット SRE室の久保です。 今日は「terraform (plan|apply) in GitHub Actions」というタイトルで発表させていただきます。 今日発表する内容は、画像で表すと上図のようになります。誰かがPull Requestを送ると、それをもとにGitHub Actionsを動かし、Terraformのplanやapplyを動かして、自動的にTerraform管理下にあるリソースを更新してくれる、そういう仕組みを作ったという話です。 terraform (plan|apply)を実行する際のポイント Terraformのplanとapplyを実行する際のポイントとして、まず各種秘匿情報、具体的にはAPIキーなどが必要になるので、実行結果をチーム内で共有してレビューするのが結構面倒です。何らかの方法でAPIキーを共有して使うにしても、あるいは各自
google-github-actions/authとは Direct Workload Identity Federationとは 利用方法 Workload Identity Poolを作成する Workload Identity ProviderをPool内に作成する 検証用のシークレットを作成する Workload Identity Poolに権限を付与する ワークフローを作成する まとめ google-github-actions/authとは Google Cloudの認証を実施するGitHub Actionsとしてgoogle-github-actions/authが提供されています。Actions上でgcloudコマンドなどを利用する前に認証で利用します。 このActionsではGoogle Cloud Service Account Key JSONによる認証とWorkl
ワークフローの概要 このGitHub Actionsワークフローは以下の主要な機能を持っています: 新しいイシューが開かれたときに自動的に起動 イシューの内容を分析し、不適切なコンテンツをチェック 既存のイシューとの重複を検出 必要に応じてラベルを付与 ワークフローの詳細解説 トリガーとパーミッション設定 name: Issue Review on: issues: types: [opened] permissions: issues: write contents: read このセクションでは、ワークフローの名前を定義し、トリガー条件とパーミッションを設定しています。 on.issues.types: [opened]: 新しいイシューが開かれたときにワークフローが起動します。 permissions: ワークフローがイシューの読み書きと、リポジトリコンテンツの読み取りを行うための権
どうも GitHub Actions 上で Docker ビルドを行うと時間がかかるなぁと感じていました。 かなり軽量の Go の Web アプリケーションを Docker イメージにしてプッシュするプロセスなのですが、全体で 3 分ほどかかっています。 今回はその速度改善を行ったので、得た知見を記事にしたいと思います。 最終的に、ケース次第では以下のような結果を出すことができました。 ※ケース = go のソースコードのほんの一部を変更してワークフローを実行する。 go.mod など依存関係に変化はない。 go build: 60秒 → 1秒 docker/build-push-action ステップ: 2分30秒 → 30秒 ワークフロー: 3分 → 1分 前提 go build は Dockerfile のステップで行っており、イメージとして以下のような内容になっています。 FROM
CodeBuild プロジェクトを使用して Webhook を設定し、GitHub ACtions ワークフローの yaml を更新して CodeBuild マシン上でホストされているセルフホストランナーを使用できる GitHub への認証は PAT か OAuth App を使う まとめというかわかったこと ※間違ってることや、こうすればいいよなどがあったらコメントください。 良かった点 セットアップは楽 ephemeral である 起動時間は EC2、Lambda 共に 1 分程度だった 個人的には十分速い マネージドイメージに加えて Docker カスタムイメージを指定可能 jobs.<job_id>.runs-on に -<image>-<image-version>-<instance-size> を追記すると、設定不要で様々なアーキテクチャのイメージを使える jobs.<job
Breaking the Wall between AI and DevOps with MLOps microsoftの公式GitHubアカウントにMLOpsというレポジトリがあります。 その中に、MLOps whitepaper.pdfというファイルがあり、各章の要点をまとめました。 MLOps/MLOps whitepaper.pdf at master · microsoft/MLOps · GitHub gitのcommit履歴を見るに、2019年10月に公開されたドキュメントです。 ※注意 GitHubからPDFファイルをダウンロードすると執筆時のレビューコメントがある状態なので、本ドキュメントを正式なホワイトペーパーと捉えて良いか不明です。 2024年現在、他にMLOpsに関するホワイトペーパーとしての位置付けのドキュメントがmicrosoftから出ていないので、暫定的に本ド
GitHub Actions ではデフォルトの挙動として同じワークフローの複数のジョブを同時実行できる.無駄に待つ必要がないという意味ではメリットがあるけど,ワークフローによっては同時実行したくないこともあると思う. GitHub Actions でワークフローが複数トリガーされてしまって慌てて止めたという経験もあったりする😅例えばワークフローの実行時間が長く,完了する前に次のコミットをプッシュしてしまったり,ワークフローの実行が完了する前にプルリクエストをマージしてしまったり💨 concurrency 設定 GitHub Actions ではコンカレンシー (concurrency) という設定があって,ワークフローの同時実行を制御できる.今回はワークフローレベルで試すけど,ジョブレベルで細かく制御することもできる❗️個人的にはとりあえず設定しておいても良さそうかなと思う. docs
AWS CodeBuildのGitHub Actions runnerサポートでLambdaが実行できるようになったので検証しました CTO統括室の黒崎(@kuro_m88)です。本日早朝に面白そうな発表を目にしました👀 AWS CodeBuild now supports managed GitHub Action runners AWS CodebuildがGitHub Actionsに対応したという内容ですが、要するにAWSがホストするGitHub Actions Runnerが出たということですね🎉 AWSがマネージしてくれることで、EC2(x64, arm)はもちろん、GPUとカスタムイメージも利用できるようです。 さらに注目したのはGitHub Actions RunnerとしてAWS Lambdaが使えるようです。Lambdaが使えると嬉しいポイントはActionsのjo
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く