2023/10/31 フロントえんどう
SREの今です。 CircleCIやGitHub Actions等のCI/CDツールでデプロイの自動化に取り組む際に、意図しない本番反映の防止策として承認アクション(Manual approval)を挟んでおくことがあります。 GitHub Actionsでは、Environmentsを利用することでワークフローの実行前にレビューを必須化することが出来ます1。しかし、この機能をプライベートリポジトリで利用するにはリポジトリの所有者がGitHub Enterpriseを契約している必要があります2。 業務の都合上、Environmentsを利用できないリポジトリでManual approvalを利用したい機会があり、ワークフロー実行履歴を利用したManual approvalを実装したのでご紹介します。 本記事はSRE連載の12月号 + 面白法人グループ Advent Calendar 20
こんにちは!コンサル部のinomaso(@inomasosan)です。 前回、GitHub ActionsからECSのCI/CDについて試してみました。 その際、GitHub ActionsにはAWS管理ポリシーによる強めの権限を付与して検証しました。 本番運用を考慮する場合は、FullAccess等の強い権限だと思わぬ事故につながります。 今回はセキュリティの観点から、GitHub Actions用にIAMポリシーの最小権限例を作成してみました。 構成図 GitHub ActionsのDeploy to Amazon ECSテンプレートからワークフロー実行する際の大まかな構成図となります。 今回はIAMポリシーのActionとResourceをメインに権限を見直していきます。 IAMポリシーの最小化権限例 今回作成したIAMポリシーは以下の通りです。 <>で囲った値は、ご自身の環境毎の値
🆙 2021/03/21 docker公式アクションを使ってイメージを作る記事を書きました sminamot-dev.hatenablog.com 🆙 2020/06/20 crazy-max/ghaction-docker-buildx の利用をv1 -> v3に更新 あらすじ 前回おうちk8sの環境がめでたく整いました 🎉 sminamot-dev.hatenablog.com さて何か動かすためにDockerイメージを作ろ、と思ってまずは適当に以下のような(なんの意味もない)イメージを作りました FROM alpine:3.11 ENTRYPOINT ["echo", "hogehoge"] Macでビルド後DockerHubに上げて、いざラズパイ上で動かしてみると… $ sudo docker run --rm sminamot/multi-arch-sample stand
はじめにGitHubはBug Bountyプログラムを実施しており、その一環として脆弱性の診断行為をセーフハーバーにより許可しています。 本記事は、そのセーフハーバーの基準を遵守した上で調査を行い、結果をまとめたものであり、無許可の脆弱性診断行為を推奨することを意図したものではありません。 GitHub上で脆弱性を発見した場合は、GitHub Security Bug Bountyへ報告してください。 要約GitHub Actionsの仕様上、デフォルトではサプライチェーン攻撃に対する適切な保護が行われないため、特定の条件を満たしたリポジトリを侵害することが出来る。 この問題の影響を受けるリポジトリがどの程度存在するかを調査した所、yay等の広く使われているソフトウェアのリポジトリを含めた多数のリポジトリがこの攻撃に対して脆弱であることがわかった。 調査理由GitHub Actionsを使
GitHub Actions 実践入門 「GitHub Actions 実践入門」発行主旨・内容紹介 「GitHub Actions 実践入門」目次 「GitHub Actions 実践入門」Amazonでの購入はこちら 「GitHub Actions 実践入門」楽天市場での購入はこちら GitHub Actions 実践入門 インプレスグループで電子出版事業を手がけるインプレスR&Dは、技術書典や技術書同人誌博覧会をはじめとした各種即売会や、勉強会・LT会などで頒布された技術同人誌を底本とした商業書籍を刊行し、技術同人誌の普及と発展に貢献することを目指し、最新の知見を発信する技術の泉シリーズ2020年6月の新刊として宮田淳平氏著書による、GitHubが提供するCI/CDサービスの「GitHub Actions」の解説書「GitHub Actions 実践入門」を発売した。 宮田淳平Pro
2024/9/17に「GitHub CI/CD実践ガイド~ Forkwell Library#67」というイベントで登壇しました。本記事ではその講演をダイジェストでお届けします。あわせて当日のFAQにも回答します。 発表資料 イベントでは拙著『GitHub CI/CD実践ガイド』のポイントを解説しました。 資料はSpeakerDeckへ公開済みです。またアーカイブ動画がYouTubeから視聴できます。 発表ダイジェスト それでは講演内容をかいつまんで説明しましょう。アジェンダは次のとおりです。 CI/CDとはなにか GitHub Actionsの基本機能と作法 持続可能性を高める習慣 意図的脅威に対する防衛術 おわりに なおFAQだけ読みたい場合は、こちらをクリックすると飛べます。 1. CI/CDとはなにか 我々ソフトウェアエンジニアの仕事は「ソフトウェアをとおして、ユーザーに価値を届け
ANDPAD バックエンド担当の原田(@tomtwinkle)です。 普段はGolangでモリモリコードを書いていますがDevOps関連の記事ばかり書いてます。 お察しの通りなんですが、今回もDevOps関連の記事だったりします。 やり方だけ知りたい人は Motivation の部分は読み飛ばして貰っても問題ないです。 Motivation AWS CodeBuild側の準備 GithubのPrivate Access Tokenを発行する AWS Systems ManagerのParameter StoreにDBとGithubへのアクセス情報を記述 CodeBuildを作成 Github Repository側の用意 Buildspecの記載 動作結果 謝辞 さいごに Motivation 私が担当しているANDPADボードではRDS(MySQL)を利用しています。 そして、DBのsc
English translation of this post: GitHub Reusable Workflows vs. Composite Actions | stefafafan's tech blog Composite Actions を触っていたところ、 Reusable Workflows との違いが分かりづらいと感じたので自分の中で考えた使い分けについて整理してまとめてみました。 使い分けイメージ Composite Actions Reusable Workflows 使い分けイメージの根拠 みなさんの使い分けや Tips も教えてください 参考 使い分けイメージ Composite Actions リポジトリ内の「この一連の steps をよくやってるな」というのを部品として切り出したいときに使うと良い Custom Actions を自作する際に、 JavaScr
バックエンドエンジニアの misu です。TENET や羅小国戦記などわりと映画を見て最近は楽しんでいます。この記事を完成させたらクイーンズ・ギャンビットを見たいところ。。! この記事について 前回、Postman を使って E2E テストを行う記事を書いたのですが、チームで運用してくとなると少し工夫が必要になったのでその辺の Tips を書いて行きます。 具体的には Postman のコレクションを git のようにフォークして、各開発者が開発ブランチごとに E2E テストを回せるようにしました。 内容 背景 下記図のように複数の開発者が1つのコレクションに対して、API を登録すると E2E のときに A は users API がないため CI が落ちてしまいます。B もまた然り。 本当に E2E 含め開発完了しているかは、落ちた E2E の結果を見て、開発スコープ以外のものだったら
GitHub Actionsでactions/setup-nodeだけでnode_modulesをキャッシュできるのか試してみた こんにちは、CX事業本部 IoT事業部の若槻です。 GitHub Actionsでは、CI/CDでよく使われる処理がActionsとして公開されており、Workflow内で自由に使うことができます。 GitHub Marketplace · Actions to improve your workflow 今回は、actions/setup-nodeを使用してWorkflowの実行時にnode_modulesをキャッシュできるのか試してみました。 actions/setup-nodeとは actions/setup-nodeを使用すると、指定したバージョンのNode.js distributionのダウンロードおよびキャッシュをしたり、npm/yarn/pnpm
AI & MLLearn about artificial intelligence and machine learning across the GitHub ecosystem and the wider industry. Generative AILearn how to build with generative AI. GitHub CopilotChange how you work with GitHub Copilot. LLMsEverything developers need to know about LLMs. Machine learningMachine learning tips, tricks, and best practices. How AI code generation worksExplore the capabilities and be
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
こんにちは。 SRE の @suzuki-shunsuke です。 Quipper では Renovate という様々なツール、ライブラリのバージョンをアップデートしてくれるツールを活用しています。 今日はこれに関する Tips を紹介します。 Reviewer を設定する 対象を絞り込む 自動でマージする renovate-approve を使って自動で approve もする Terraform のリポジトリで安全に自動マージする 正規表現を使って update する depName を使って設定を簡略化する 更新対象のファイルごとに Pull Request を分割する PR が溜まらないように PR の数を制限する CI で設定をテストする 設定方法について renovatebot/config-help で質問してみる Reviewer を設定する https://docs.re
DevOpsプラットフォームの取り組みを紹介する7回目の記事です。 Qmonus Value Stream 開発チームの奥井( @HirokiOkui )です。 連載第7回では、Qmonus Value Streamの中核を担うコンポーネントであるAssemblyLineについて深堀りします。 第2回 および 第6回 で解説したとおり、Qmonus Value Streamでは、AssemblyLineという独自のリソースを定義してCI/CDパイプラインを構成します。 AssemblyLineは、 Tekton と同様にKubernetesのカスタムオペレーターとして実装されています。 AssemblyLineは、Tekton Pipelineを実行するワークフローエンジンとしての責務に加えて、柔軟性の高いCI/CDパイプラインを構成・実行するために必要な様々な機能を有しています。 本記事
AI & MLLearn about artificial intelligence and machine learning across the GitHub ecosystem and the wider industry. Generative AILearn how to build with generative AI. GitHub CopilotChange how you work with GitHub Copilot. LLMsEverything developers need to know about LLMs. Machine learningMachine learning tips, tricks, and best practices. How AI code generation worksExplore the capabilities and be
はじめに 今回は、NearMeにおけるCIの仕組みについて説明します。 CIとは、Continuous Integration(継続的インテグレーション)の略で、 コード変更の度にビルドとテストを自動で実行するプラクティスを指します(参考)。 NearMeではCIを実現する方法として、Kubernetes(k8s)上に動作するArgoを利用しました。 k8sはコンテナ化されたアプリケーションを管理するためのオープンソースのシステムです。 Argoはk8s上でCIやCD(Continuous delivery)を実現するツール群です。 一般に、CI構築では外部サービスを利用することも多いですが、 他システムの障害や料金に依存せずCIを管理したかったのと、 既にk8sを中心にシステムを構築していたので、 多少の煩雑さはありつつも自前で構築しました。 システム構成 CIシステムはイベントの処理を
宣伝: YouTubeで初心者向けの配信をしています。よかったら覗いていってね😉 概要あなたは普段、何気なく npm install を使っていることでしょう。 しかし、 npm install が何をしているのか、実は誤解している人も多いと思います。 記事のタイトルは釣りではないので、どんな時に npm install は問題を起こすのか、説明できない人は以下を読み進めてください。これは多くの開発者が無意識に無視している、とても重要な事項だと思っています。 なお、npm 4.x系以下の方は本記事の対象ではありません。 追記: 強めに書きすぎて誤解を招く部分があったので何度か修正しています。 参考資料:npm installnpm ci npm はパッケージマネージャです。パッケージマネージャは、開発に必要なパッケージ(ライブラリとか、プラグインとか色々)を管理するためのツールです。全て
diff-notebooks Notebookの差分をArtifactとして生成するdiff-notebooksをGithub Actionsとして公開しました。 github.com 想定する使い方はpull_requestをトリガーとするGithub Actionsへの組み込みです。 実行すると画面のようにNotebookの差分結果がArtifactとして保存されます。 中身はhtmlになっておりブラウザ上で開くとこのように差分を確認できるので、プルリクを受け取ったときのNotebookの差分チェックがGithub上の操作で完結します。 nbdiff-notebooksの中身 このGithub Actionsの中では、nbdiff-webで生成した差分のhtmlをファイルとして出力する自作ツールnbdiff-web-exporterを実行しています。 github.com nbdiff
AI & MLLearn about artificial intelligence and machine learning across the GitHub ecosystem and the wider industry. Generative AILearn how to build with generative AI. GitHub CopilotChange how you work with GitHub Copilot. LLMsEverything developers need to know about LLMs. Machine learningMachine learning tips, tricks, and best practices. How AI code generation worksExplore the capabilities and be
ソースコードリポジトリーサービスのデファクトスタンダードと言っても良いGitHub。その日本法人であるギットハブ・ジャパン合同会社が、GitHub上で実装されたCI/CDソリューションGitHub Actionsに関する説明会を実施した。GitHub Actionsは、2018年のGitHub Universeで発表されたGitHubのワークフローを実装するための仕組みだ。 GitHub Actionsは発表の当初から「ワークフロー」というキーワードから連想される「CI/CD」領域への応用が噂されていたと言える。筆者は2018年11月に開催されたGitHub Universeにおいて、製品担当のVPに「GitHub ActionsはCI/CDツールになるのか?」という質問を行っていた。これに対しての回答は「YesでもありNoでもある」というものであった。 そもそもGitHub社内では「Sc
オブザーバビリティツールを手掛けるhoneycomb.ioの共同創業者でCTO(最高技術責任者)を務めるチャリティ・メージャーズ氏が2021年1月19日(米国時間)、開発者向けのQ&Aサイト「Stack Overflow」のブログに記事を寄稿し、コード作成から本番環境へのデプロイまでの時間の短縮にフォーカスしてCI/CD(継続的インティグレーション/継続的デリバリー)に取り組むべきだと提言した。 以下では、メージャーズ氏の主張の概要を紹介する。 CI/CDは導入が進んでおり、特にCIはこの10年で取り組みレベルが向上している。だが、その一方で、CDは立ち遅れている。 CI/CDはプロセスと方法論を指す用語だ。メインリポジトリにマージした全てのコードをテストし、いつでも本番環境にデプロイ可能な状態にしておき、自動的にデプロイできるようにする設計を目指す。 CI/CDの目標はソフトウェア変更の
こんにちは!2017年11月にAndroidエンジニアとしてJoinした関根です。 最近、髪の毛を金髪にしました。近々Android Studioへの敬意を評して緑色に染め直そうかなーと考えております。 今回は、コネヒトのAndroidチームでGitHub Actionsを利用して実践している事例を紹介したいと思います。 この記事はコネヒト Advent Calendar 2019 7日目の記事です。 GitHub Actionsとは 本題に入る前に、簡単にGitHub Actionsについて紹介します。 GitHub Actionsは2019年11月に正式版となったGitHubの機能の一つです。 特定のイベントをトリガーにして、自動で一覧のプロセスを実行してくれます。 例えば、GitHubにブランチが作られた際にプルリクエストを自動で作成するというようなプロセスを実現できます。GitHu
新しいチームに入ったとき、最初に軽めのタスクをもらえると、Pull Request を作ってCIのテストが落ちることで、開発に必要なことが色々と知れるので便利です。 会社で異動があって、2/1付で別のチームに異動になりました。 軽めのタスクをもらって、とりあえずこの辺を変更したらいいかな?くらいで変更して Pull Reqeuset を作ると、CIで実行しているテストが失敗して、このファイルの変更をしたらスナップショットを更新しないといけない、GraphQLのスキーマファイルを変更するとGraphQL Code Generator で型生成をしないといけない、というようなことを指摘してくれます。 最初に全部の説明を聞くのは疲れるし、聞くだけで理解するのは大変です。説明する方も大変だと思います。作業しながらテストが落ちる様子を見ながらやると、手を動かしながら、コードを見ながらなので頭に入って
AI & MLLearn about artificial intelligence and machine learning across the GitHub ecosystem and the wider industry. Generative AILearn how to build with generative AI. GitHub CopilotChange how you work with GitHub Copilot. LLMsEverything developers need to know about LLMs. Machine learningMachine learning tips, tricks, and best practices. How AI code generation worksExplore the capabilities and be
GitHub Actions: Skip pull request and push workflows with [skip ci] actions February 8, 2021 GitHub Actions now supports skipping push and pull_request workflows by looking for some common keywords in your commit message. If any commit message in your push or the HEAD commit of your PR contains the strings [skip ci], [ci skip], [no ci], [skip actions], or [actions skip] workflows triggered on the
GitHub Actions Job Summaries 先日 GitHub からアナウンスがあり、GitHub Actions から簡単に Job Summary を扱えるようになりました。 公式のドキュメントでは、頑張って YAML からマニュアルで環境変数を通じて操作する方法が紹介されていますが、これだと書くのが少々辛いです。 - name: Generate list using Markdown run: | echo "This is the lead in sentence for the list" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY # this is a blank line echo "- Lets add a bullet point" >> $GITHUB_STEP_SUMMARY ech
Mackerelチームでアプリケーションエンジニアをやっているid:lufiabbです。 Mackerelでは、ホストのメトリックを送信するためのエージェントや各種プラグインなどをOSSとして公開しています。現在の公式サポートはヘルプにある対応環境の通りですが、サポート外ではあるもののFreeBSDや32bit Windowsなどにもプログラムを提供している場合があります。 こういったOSSの一部、特にGo言語で書かれたプログラムのCIをGitHub Actionsへ移行した際に、32bitバイナリの生成についていくつか調べたことがありますが、あまりインターネットで見かけない情報だったので、今回は一般的な情報として共有してみようと思います。 この記事では、ディスクの残り容量を調べるプログラムの64bit版と32bit版をLinux用とWindows用にビルドする方法を例に、以下の場合にそれ
本稿について 2019年11月、GitHub上で利用できる無料のワークフローツールのGitHub Actionsが正式にリリースされました。1 これを使って、CI/CDなどの処理を自動化することができます。 本稿では、GitHub ActionsでTerraformを実行し、Google Cloud Platformの構成管理を行う方法を紹介します。 また、GitOpsによるインフラCI/CDの作業フローも紹介します。 昨日、Bitbucket PipelinesでGCPに対してTerraformでインフラCI/CDする - Qiitaという記事を書きましたが、そのGitHub Actions版となります。 共通する内容が多いので、以降ではその記事を「Bitbucke Pipelines版」として参照させて頂きます。 更新履歴 20200504 .github/workflows/terr
追記 年末にこの記事の内容も含めてgithub actionsをどう再利用するか総まとめしたのでそちらも併せてどうぞ!↓↓↓ この記事について 2021/11/24についにgithub actionsにReusable workflowsが実装されました。 まずは簡単にドキュメントをさらいながらポイントをまとめていこうと思います。 そもそも何が嬉しいのか これまでのgithub actionsではworkflowからactionを呼ぶことは可能だったものの、workflowから別のworkflowを呼ぶことはできませんでした。 workflowがひとつだけの場合そう問題にはならないのですが、同じworkflowの記述を使い回したい場合にはこれが問題になっていました。 例えば下記のようなworkflowを複数のリポジトリで使う場合、actions/checkout@v2とactions/se
発端 きっかけは調べ物でこちらのブログを閲覧したときです。ぜひアクセスしてみてください。9 割以上の方は何も気づかないでしょう。 Chrome でのスクリーンショット なぜなら Firefox 以外のブラウザでは表示されないからです。 Firefox でのスクリーンショット Firefox でアクセスすると、“Woah! What's this?” と書いてある右側のミニマップに気づくはずです。 Firefox でのスクリーンショット これの驚くところは、なんと要素の状態がリアルタイムでミニマップにも反映されます。上記スクリーンショットはテキストを選択した状態ですが、ミニマップにもテキストが選択された状態で表示されていることが確認できます。 実装 どのように実装されているかというと、なんと CSS の element() 関数のみの 1 行で実装できます。そして、Firefox は ele
広告技術部の yamayu です。 ホグワーツレガシーが気になっているのですがまだ手を出せていません。 映画はファンタビ以外は全部見ており、原作は 7 巻の上巻まで読んでいるため楽しめそうとは思っています。 さて、弊社ではこれまで CI/CD ツールとして CircleCI をメインに利用していたのですが、最近は GitHub Actions でも同等の機能が提供されるようになりつつあり、また GitHub の他の機能との連携が容易である等の理由から徐々に切り替えていくような動きがあります。 広告技術部で管理しているリポジトリも少しずつ GitHub Actions への移行を進めており、その中で CI/CD のプロセスの見直しを行いました。 結果として、CI の実行時間を大幅に短縮することができたので、今回はそのことについて書いていきます。 長い重い多いテスト テストの並列化 マルチノー
LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog LINE株式会社OA SREチームのhasebeです。 今回の記事ではQodanaについて、導入した背景、導入するにあたってのテクニック、得られた効果などを紹介したいと思います。 背景 私の所属する開発4センターでは、近年、サーバーサイドの言語としてKotlinを採用しています。(LINE社全体としても同じ傾向があるように思います。) 理由については今回の記事では深堀りはいたしません。簡単にいうと、昔からJavaを採用しており、Javaのエコシステムが社内に整っているためです。 われわれ開発4センター以外でも、海外や国内においてKotlinをサーバサイドで利用するケースを見聞きする機会が増えてきました。ですが、歴史的理由からも
アジャイルやDevOpsなど迅速なシステムの改善~リリースが求められる開発で、懸念されることはデグレードを起こしてしまうことかと思います。 今回はそういったミスを軽減させるためのブラウザテストの自動化に関して書いていこうと思います。 自動テストのサービスとしてDatadogのSynthetic Testのブラウザテストを使用します。 ブラウザテストのテストシナリオとしては複雑な条件を使用しないことが大事です、テストデータが必要、単体試験で検知されるべきレベルのシナリオをここで作成することはメンテナンスの限界が発生して、余計に時間を掛けてしまうことになります。 今回は下記のシナリオをテストします。 ・画面遷移が問題なくできること ・画面に期待通りのテキストが表示されていること さらに今回は最終的に自動化したブラウザテストがCI/CDの一部として組み込まれ、 毎回のリリースでデグレが発生してい
元ラーメン屋店長プログラマのObjective-ひろC(@hirothings)です🍜 GitHub Actionsで個人アプリのデプロイを自動化したのでその手順を書きます。 目次 GitHub Actionsとは? なぜGitHub Actionsをデプロイ環境に選んだか? 実装の流れ GitHub Actionsとは? 「GitHub上で動作するサーバレス実行環境」で、GitHub関連のイベントをトリガーにCI/CD様々な処理を実行できます。 中の人がGitHubの概要について説明しているわかりやすい記事があるので、それを読むのがオススメです。 以下、抜粋。 Actionの実体はDockerコンテナ Actionを組み合わせて独自のワークフローを構築できる コンテナ実行環境がコンパクトで重い処理の実行には向いていない 特徴 GitHub Marketplaceに、actionがたくさ
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く