タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

githubとCIに関するKesinのブックマーク (50)

  • GitHub Actions 上での Go の Docker ビルドを高速化する

    どうも GitHub Actions 上で Docker ビルドを行うと時間がかかるなぁと感じていました。 かなり軽量の Go の Web アプリケーションを Docker イメージにしてプッシュするプロセスなのですが、全体で 3 分ほどかかっています。 今回はその速度改善を行ったので、得た知見を記事にしたいと思います。 最終的に、ケース次第では以下のような結果を出すことができました。 ※ケース = go のソースコードのほんの一部を変更してワークフローを実行する。 go.mod など依存関係に変化はない。 go build: 60秒 → 1秒 docker/build-push-action ステップ: 2分30秒 → 30秒 ワークフロー: 3分 → 1分 前提 go buildDockerfile のステップで行っており、イメージとして以下のような内容になっています。 FROM

    GitHub Actions 上での Go の Docker ビルドを高速化する
    Kesin
    Kesin 2024/05/13
    レイヤーキャッシュではなくて比較的新しいRUN --mount=type=cacheでdocker build内のgo buildを速くしている。普通はCIだとキャッシュが残らないけど、buildkit-cache-danceがhackっぽい方法でキャッシュを保存することで有効化できてる
  • actions/cache@v4ではヒットしなかったときcache-hit=='false'にならない - ぽよメモ

    cache-hitとは v4における挙動変更(?) cache-hitがfalseを返さない ワークアラウンド cache-hitとは GitHub Actionsのキャッシュ用actionであるactions/cacheは、指定したキーに完全一致するキャッシュがヒットしたかどうかのパラメータをそのstepのoutputとして保持している。 つまり以下の様にすることで、キャッシュがヒットしたかどうかを判定し、何かアクションするということが可能である。 jobs: run: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/cache@v4 id: cache with: path: ./cache-dir key: your-cache-key - if: steps.cache.output

    actions/cache@v4ではヒットしなかったときcache-hit=='false'にならない - ぽよメモ
  • 業務で使えるかもしれない…!?GitHub Actions の Tips 集 / CI/CD Test Night #7

    https://testnight.connpass.com/event/311263/

    業務で使えるかもしれない…!?GitHub Actions の Tips 集 / CI/CD Test Night #7
    Kesin
    Kesin 2024/03/27
    matrixにJSONを渡せるのは知らなかった。Github Actionsは動的に実行するジョブの制御をほぼできないのだけど、このテクニックを使えばたしかにある程度は動的に制御できそう
  • GitHub ActionsでファイルをS3にキャッシュするアクションを作りました - プログラムモグモグ

    GitHub Actionsでは依存パッケージやビルド結果などをうまくキャッシュすることで、テストやビルドの時間を短縮できます。 actions/setup-nodeやactions/setup-javaなどの各言語のオフィシャルアクションは各パッケージマネージャーのためのキャッシュ機構を提供していますし、actions/cacheを使って任意のファイルをキャッシュすることもできます。 これらは内部で@actions/cacheパッケージを使っており、キャッシュの機構はGitHub自身の機能と密に結びついています。 しかし、GitHub Actionsのキャッシュはリポジトリごとに10GBまでという制限があり、開発者の多いリポジトリではsetup-nodeのキャッシュだけでもすぐに上限に達してしまいます。 私の所属するチームのリポジトリはGitHub Enterprise Serverにホ

    GitHub ActionsでファイルをS3にキャッシュするアクションを作りました - プログラムモグモグ
    Kesin
    Kesin 2024/03/22
    大規模なリポジトリだとキャッシュ上限の10GBを超えてしまうのは見たことがある。最終的には自前のオブジェクトストレージに保存ということになるか
  • 【DeNATechCon2024】CI/CD の課題解消! GitHub Actions への移行で可能になったこと | ドクセル

    【DeNATechCon2024】CI/CD の課題解消! GitHub Actions への移行で可能になったこと スライド概要 私たちのチームは長年、Circle CI と Jenkins を活用して CI/CD 環境を構築してきました。しかし、運用の複雑さと高コストに直面し、より効率的な方法を模索していました。この問題を解決するために、GitHub Actions への移行を決定しました。その結果、運用コストの削減と操作の簡易性を実現しました。 登壇では、私たちが既存の CI/CD を GitHub Actions に移行する過程で直面した課題と、それらをどのように解決したか、なぜこのタイミングになったのかなどを共有します。登壇が、同様の問題に直面しているエンジニアの皆さんに具体的な解決のヒントとなることを願っています。 ※資料内の動画は後日公開されるセッション動画でご覧いただけ

    【DeNATechCon2024】CI/CD の課題解消! GitHub Actions への移行で可能になったこと | ドクセル
    Kesin
    Kesin 2024/03/01
    当日のAsk the speakerの内容がスライド末尾に追加されてる!その内容が一番生々しくて面白い
  • フロントエンドのGitHub Actions実行時間を削減するために取り組んだこと | PR TIMES 開発者ブログ

    こんにちは、フロントエンドエンジニアの小張です。GitHub Actionsの実行時間を削減するために取り組んだことについて紹介します。 経緯 PR TIMESではReactに関するコードを、monorepoとしてprtimes-frontendという1つのリポジトリで管理しています。 GitHub Enterprise Cloudプランでは月50,000分のGitHub Actionsを無料で実行することができますが、prtimes-frontendだけで7割近い時間を消費してしまっていました。またCIに時間がかかることで、Pull Requestを作成した後、10分近く待たないとコードレビューに回すことができず、開発効率が落ちてしまっていました。 そこで現状の使い方を見直して、billable timeの削減に取り組むことになりました。 billable time削減の改善点を探す b

    Kesin
    Kesin 2024/02/17
    CIの最適化として単純にキャッシュ、並列化を進めれば全てが解決するわけではなくてケースバイケースというのがよく分かる好例。追記:actions-timelineを使って頂きありがとうございます!!
  • Actions Runner Controller Deep Dive

    Kesin
    Kesin 2024/02/03
    Actions Runner Controllerの最新のScale setsモードの仕組みの解説。ブログの内容から厳選されていて全体的な流れはかなり分かりやすい
  • Ubicloud - GitHub Actions, ‍10x Cheaper

    GitHub Actions, ‍10x CheaperManaged Ubicloud runners for GitHub Actions. Change 1 line. Get 10x cheaper builds. Go faster.

    Ubicloud - GitHub Actions, ‍10x Cheaper
    Kesin
    Kesin 2024/01/31
    GitHub公式のランナーの1/10の値段でセルフホストランナーを提供するらしい
  • GHES の GitHub Actions で Google Cloud との OIDC 連携がしやすくなりました

    みなさん GitHub Actions の OpenID Connect (以下OIDC) 連携使っていますか? GitHub Actions はワークフローの中で OIDC の ID トークンを発行でき,これを Google Cloud などのクラウドプロバイダの認証に用いることでサービスアカウントのクレデンシャルを発行することなくクラウドプロバイダのリソースをワークフロー内で操作できるようになります.これによりクレデンシャルのローテーションなどの管理コストが減り,よりセキュアな連携が可能になります. 詳しくは GitHub の公式ドキュメントや解説記事を見ていただけると良いと思います. 基的に良いことづくめな OIDC 連携ですが,GitHub Enterprise Server (オンプレ版 GitHub.以下GHES) では OIDC 連携が難しいケースがあります.OIDC 連携

    GHES の GitHub Actions で Google Cloud との OIDC 連携がしやすくなりました
    Kesin
    Kesin 2024/01/29
    非公式ながらOIDCのためのエンドポイントを公開していないクローズドなGHESであってもGitHub ActionsからのOIDC連携を可能にする方法。一部の超ニッチなニーズがありそう
  • 1分で出来る Android Lint と GitHub code scanning の連動

    SARIF フォーマットでレポートを出力するようにします。マルチモジュール構成であっても、ルートの Android application プロジェクトで checkDependencies = true を設定(デフォルトは false)すれば、依存するサブモジュールについても解析され、結果もルートのプロジェクトの一つのレポートに含まれるようになります。 CI(GitHub Actions) name: Android Lint on: pull_request: push: branches: [main] jobs: lint: runs-on: ubuntu-latest permissions: security-events: write actions: read contents: read steps: - uses: actions/checkout@v4 - uses

    1分で出来る Android Lint と GitHub code scanning の連動
    Kesin
    Kesin 2024/01/22
    Lintの結果をGitHubのCode Scanningで管理してくれるの便利そう。privateだとGitHub Advanced Securityが必要なのはCode Scanningが元々セキュリティ関連のための機能だからかな。惜しい・・・
  • Release v4.0.0 · actions/cache

    Kesin
    Kesin 2024/01/20
    actions/cache@v4でsave-alwaysオプションが追加。通常はビルドが成功したときしかキャッシュが保存されないが、ビルドが失敗してもキャッシュに関係はないと分かっている場合は有効にすると便利な場面はありそう
  • GitHub-hosted runners: Double the power for open source

    ProductGitHub-hosted runners: Double the power for open sourceGitHub Actions continues its industry-leading support for the OSS community by doubling the Windows/Linux machine size to 4-vCPU runners at no cost for public repositories. GitHub is thrilled to announce the completion of an upgrade to our GitHub Actions-hosted runners by offering larger more powerful machines to open source developers.

    GitHub-hosted runners: Double the power for open source
    Kesin
    Kesin 2024/01/18
    publicリポジトリでLinuxとWindowsのデフォルトのランナーのスペックが今までの2倍になり4 vCPU, 16GiBメモリ、150GiBストレージとなった。太っ腹すぎる。ありがとうGitHub
  • GitHub Actionsのcomposite actionを使ってinternalリポジトリのファイルを配布する - Cybozu Inside Out | サイボウズエンジニアのブログ

    クラウド基盤部Cloud Platform部の pddg です。この前までチームだったんですが部になったらしいです。 引き続き精力的に cybozu.com のインフラ基盤の移行に取り組んでいます。 今回はKubernetesマニフェストのバリデーションのための仕組みを検討していたときに発見した、GitHub Actionsのちょっとハックっぽい、もしかしたら便利かもしれない手法について紹介したいと思います。 TL; DR 背景 テナントごとに分散しているマニフェスト kubeconformによるバリデーション テナントもNecoが使っているスキーマ定義ファイルを使いたい! internalリポジトリのclone トークンの作り方 GitHub Actionsのカスタムアクション GITHUB_ACTION_PATH には何が入っている? ファイルを配布するアクションを作る パラメータで

    GitHub Actionsのcomposite actionを使ってinternalリポジトリのファイルを配布する - Cybozu Inside Out | サイボウズエンジニアのブログ
    Kesin
    Kesin 2024/01/12
    actionsにしてしまえばトークン無しにinternal内の別リポジトリを持ってこれるので、別リポジトリのファイルを参照させたいワークロードのためにcomposite actions化してしまうアイディア
  • GitHub Actions - Tart

    Kesin
    Kesin 2024/01/06
    macVMのツールであるTartの開発元が固定料金のGithub Actionsのランナーを提供している。スペックは固定だけどVMイメージはTartが公開してるものから選択できるっぽいのでOSバージョンのバリエーションは選べそう
  • GitHub Actionsのサードパーティーマネージドランナーの紹介 - いけだや技術ノート

    この記事は はてなエンジニア Advent Calendar 2023 の 2024年1月4日 の記事です。 GitHub Actionsの実行環境であるランナーには、GitHubが提供するGitHub ホステッド ランナーと、自分でランナーを用意・管理するセルフホステッド ランナーの大きく二種類があります。 最近はGitHub ホステッド ランナーにもラージランナーが用意されるようになり、ある程度ランナーのスペックを選べるようにもなりましたが、他のCIサービスと比べてもスペックの割にコストが高めである感じは否めません。一方でセルフホステッド ランナーにはスペックを自分で調整できる自由度がありつつも、管理する手間とコストが掛かってきます。 こうした隙間を突くように、サードパーティーによるマネージドなセルフホステッド ランナーを提供するサービスが増えつつあります。基的には runs-on:

    GitHub Actionsのサードパーティーマネージドランナーの紹介 - いけだや技術ノート
    Kesin
    Kesin 2024/01/06
    Tart開発元のCirrusもセルフホストランナーを提供するビジネスしてたのか。しかも固定料金でmacが使えるのはすごい
  • オートスケールするGitHub Actionsセルフホストランナー環境 tornadeの紹介 |Subaru Nakamura(varu3)

    はじめにみなさん、GitHub Actionsは利用していますか。 先日、Github actionsのコストパフォーマンスについて検討していた以下の記事が少し話題になっていました。 この記事のデータによると、単純な料金の比較ではFargate Spotを利用してセルフホストランナーを起動するのが圧倒的にコストが低くなるということがわかります。 2022年12月現在、Fargate SpotはEKSに未対応で対応していないため、利用するためにはECSでないといけません。そのため、EKSでオートスケールするので有名な actions-runner-controller ではFargate Spotは利用できません。 そこで思いつきました。ECS上でFargate Spotを利用してオートスケールする仕組みを作れば、より安くセルフホストランナーを利用することができるのではないか、と。 初めにE

    オートスケールするGitHub Actionsセルフホストランナー環境 tornadeの紹介 |Subaru Nakamura(varu3)
    Kesin
    Kesin 2023/12/14
    “"${{ github.run_id }}", "runs-on=FARGATE", "arch=ARM64"” ラベルを実質パラメータとして扱うことで起動するランナーを選択。run_idによって違うジョブがランナーを横取りするのを防ぐのは今まで思いつかなかったな
  • 2023年のMIXIのSREのアウトプット・メディア露出まとめ

    AWS re:Invent 2023 も大盛況のうちに終わりましたね。現地参加の方々は無事に帰国されましたでしょうか。 記事では、re:Invent で盛り上がるSREのSlackを見ながらふと思い立ち、2023年のMIXI SREたちによるアウトプットをまとめてみました。 登壇数:32回(※同じイベントに2名登壇していた場合、2回とカウント)ブログ執筆数:18記事外部メディアへの寄稿:7記事※2023/11/22時点 となっています。興味があるものから、ぜひご覧ください! · 登壇 ∘ 2/7:kazeburoさんとShimizuさんに聞く、SREに必要なスキルと運用の秘訣 ∘ 2/27:CI/CD Conference 2023 前夜祭 (前夜ではない) ∘ 3/1–3/3:MIXI TECH CONFERENCE ∘ 3/13:Kubernetes Novice Tokyo #23

    2023年のMIXIのSREのアウトプット・メディア露出まとめ
    Kesin
    Kesin 2023/12/07
    タイトル含めて一覧してもらえると改めて気になる記事が見つかったりしていいいな
  • GitHub Actionsにおける一部環境変数の特殊な可視性について

    これはなに? GitHub Actions(以下、GHA)において、ACTIONS_ から始まる環境変数はGHAの実行中に見えるかどうかが実行される文脈に依存して変化します。 この記事では、この挙動が引き起こす問題として「コンテナイメージビルド時のレイヤキャッシュが効かない」という挙動を紹介しつつ、その原因である環境変数の特殊な挙動とどのようにすればそれが解決するかを紹介します。 3行まとめ GHAのrunステップでbuildkitのキャッシュのtypeに gha を選択している場合、通常ではキャッシュは利用できない 理由は ACTIONS_ から始まる一部の環境変数はrunステップやcompositeアクションには渡されないため これらの環境変数をnodeアクションなどの中で exportVariable で以降のステップで見えるようにすることでキャッシュが利用できない問題は解決できる(

    GitHub Actionsにおける一部環境変数の特殊な可視性について
    Kesin
    Kesin 2023/11/14
    docker buildx buildをactionに頼らずに素のコマンドで叩きたい人ほどはまるトラップだ。たまにこういうアンドキュメントな挙動に出くわすことがある
  • 社内用GitHub Actionsのセキュリティガイドラインを公開します | メルカリエンジニアリング

    この記事は、Merpay Tech Openness Month 2023 の4日目の記事です。 こんにちは。メルコインのバックエンドエンジニアの@goroです。 はじめに このGitHub Actionsのセキュリティガイドラインは、社内でGithub Actionsの利用に先駆け、社内有志によって検討されました。「GitHub Actionsを使うにあたりどういった点に留意すれば最低限の安全性を確保できるか学習してもらいたい」「定期的にドキュメントを見返してもらい自分たちのリポジトリーが安全な状態になっているか点検する際に役立ててもらいたい」という思いに基づいて作成されています。 今回はそんなガイドラインの一部を、社外の方々にも役立つと思い公開することにしました。 ガイドラインにおける目標 このガイドラインは事前に2段階の目標を設定して作成されています。まず第1に「常に達成したいこと

    社内用GitHub Actionsのセキュリティガイドラインを公開します | メルカリエンジニアリング
    Kesin
    Kesin 2023/10/24
    GitHub Actionsを使う上でのセキュリティの落とし穴と具体的な対策がまとめられている
  • Actions Runner Controller Deep Dive!- コード解説 後編 - - APC 技術ブログ

    こんにちは!ACS事業部の谷合です。 皆大好きGitHub Actionsにおける、GitHub社公式のSelf-hosted runnerであるActions Runner Controller(以降ARC)の紹介をシリーズでお送りしております。 前回までに以下の記事を書いておりました。 Actions Runner Controller Deep Dive!- アーキテクチャ編 - - APC 技術ブログ Actions Runner Controller Deep Dive!- 動作解説編 - - APC 技術ブログ Actions Runner Controller Deep Dive!- コード解説 前編 - - APC 技術ブログ 前回に引き続き、Actions Runner Controllerのコード解説をしていきます。 はじめに この記事のこと コード解説 AutoSca

    Actions Runner Controller Deep Dive!- コード解説 後編 - - APC 技術ブログ
    Kesin
    Kesin 2023/10/10
    actions/actions-runner-controllerの最新機能であるscale setのコード解説。いよいよ本丸とも言えるgithubへのロングポーリングとランナーのオートスケール部分。お疲れ様でした