タグ

CIに関するmazinlabsのブックマーク (18)

  • 社内用GitHub Actionsのセキュリティガイドラインを公開します | メルカリエンジニアリング

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

    社内用GitHub Actionsのセキュリティガイドラインを公開します | メルカリエンジニアリング
  • ZOZO TECH BLOGを支える技術 #2 執筆をサポートするCI/CD - ZOZO TECH BLOG

    はじめに こんにちは、CTO/DevRelブロックの堀江(@Horie1024)です。記事はZOZO DevRelチームによる連載「ZOZO TECH BLOGを支える技術」の2目の記事です。 前回の記事ではZOZO TECH BLOGの概要とその運用について紹介しました。今回の記事ではTECH BLOGの運用プロセスのうち記事の執筆に焦点を当て、執筆とそのレビュー体制を支えるCI/CDフローの整備について紹介します。 目次 はじめに 目次 ZOZO TECH BLOGでのCI/CDの活用 記事の静的解析と文章校正 記事のプレビュー環境へのデプロイ CI/CDフローの構築 CI/CDフローの概要 文章校正 プレビュー環境へのデプロイ フォーマット・画像のアップロード プレビューへの記事の反映 公開済みの記事一覧を取得 記事の新規投稿または更新 事例紹介 文章校正 textlint-di

    ZOZO TECH BLOGを支える技術 #2 執筆をサポートするCI/CD - ZOZO TECH BLOG
  • GitHub Actions self-hosted runners のオートスケーリング構成の紹介(クラウドサービス開発を支える CI の裏側) - NTT Communications Engineers' Blog

    はじめに こんにちは、クラウド&ネットワークサービス部で SDPF のベアメタルサーバー・ハイパーバイザーの開発をしている山中です。 先日 NTT Engineers' Festa という技術イベントが開催され、多くのエンジニアで賑わいました。 NTT Engineers' Festa は NTT グループのエンジニア技術交流するイベントであり、ハンズオンやディスカッション、登壇発表など様々なセッションが数日に渡って行われます。 私もこのイベントに参加し、自分のチームで行っている GitHub Actions の self-hosted runners を活用した Continuous Integration(以下、CI)事例について発表をしました。 概要としては、オンプレミスの VMware vSphere(以下、vSphere)環境上で自作の Ruby アプリケーションと Docke

    GitHub Actions self-hosted runners のオートスケーリング構成の紹介(クラウドサービス開発を支える CI の裏側) - NTT Communications Engineers' Blog
  • [DevOpsプラットフォームの取り組み #7] 独自のKubernetesカスタムオペレーターを用いたCI/CDエンジン - NTT Communications Engineers' Blog

    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パイプラインを構成・実行するために必要な様々な機能を有しています。 記事

    [DevOpsプラットフォームの取り組み #7] 独自のKubernetesカスタムオペレーターを用いたCI/CDエンジン - NTT Communications Engineers' Blog
  • [DevOpsプラットフォームの取り組み #6] CI/CDにおけるパラメータの課題とQmonus Value Streamの取り組み - NTT Communications Engineers' Blog

    DevOpsプラットフォームの取り組みを紹介する6回目の記事です。 Qmonus Value Stream 開発チームの奥井 ( @HirokiOkui ) です。 連載第6回では、パラメータを効率的に管理するためのQmonus Value Streamの取り組みについて紹介します。 第3回 で解説したとおり、Qmonus Value StreamではInfrastructure as Code(以後IaC)およびCI/CDパイプラインを記述するためにCUE言語を用いています。 CUE言語は洗練されたデータ記述言語であり、CUE言語が有する型システムやプログラマビリティにより、宣言的マニフェストを高品質かつ効率的に記述することが可能になります。 しかしながら、CUE言語を用いても改善できない領域が存在します。 それは、パラメータです。 記事では、IaCおよびCI/CDパイプラインの構築に

    [DevOpsプラットフォームの取り組み #6] CI/CDにおけるパラメータの課題とQmonus Value Streamの取り組み - NTT Communications Engineers' Blog
  • GitHub ActionsにおけるStep/Job/Workflow設計論

    この記事について GitHub Actionsには、以下3つの実行単位が存在します。 Workflow Job Step パイプラインを組む中で出てくる複数個の処理を、1つの実行単位でまとめてしまうか、それとも分割するのかというのは悩むポイントかと思います。 一つのstepのrunフィールドにコマンドを詰め込む?それともstepを分けた方がいい? 一つのJobの中のstepとして記述した方がいい?それとも別のJobに定義した方がいい? 一つのWorkflowの中にJobをたくさん定義する?それともWorkflowを別にする? この記事では、Workflow・Job・Stepそれぞれの性質を踏まえた上で、ベストな処理単位の選び方を考察します。 使用する環境・バージョン GitHub Actions: 2022/5/15時点での機能をもとに考察 読者に要求する前提知識 GitHub Actio

    GitHub ActionsにおけるStep/Job/Workflow設計論
  • - 継続的インテグレーション

    継続的インテグレーション 原題: Continuous Integration Martin Fowler Chief Scientist, ThoughtWorks Matthew Foemmel ThoughtWorks 「確実なビルドを行う」 -- これはどんなソフトウェア開発プロセスであれ重要なことだ。そのわりには、このことがきちんとされていないことに驚かされる。論文では、Matt が ThoughtWorks 社でのある大規模プロジェクトにおいて採用したプロセスを紹介する。このプロセスは全社的な広がりを見せつつある。テスト部分も含めて「全てが自動化された」「再現可能な」ビルドを、「日に何度も」行うことに力点がおかれている。このプロセスを用いれば、開発者はインテグレーションを毎日行うことになるので、インテグレーションに伴う問題を減らすことができる。 継続的インテグレーションの恩恵

  • 基礎からわかるDevOps #devfesta

    2. 吉羽龍太郎 / Ryuzee.com ✤ アジャイル開発/DevOps/クラウドに関する 従量課金型コンサルティングサービスを提供 ✤ http://www.ryuzee.com @ryuzee 4. 時価総額ランキング 2016 2006 1. アップル (6091億ドル) 1. エクソンモービル (4470億ドル) 2. アルファベット (5434億ドル) 2. GE (3840億ドル) 3. マイクロソフト (4487億ドル) 3. マイクロソフト (2940億ドル) 4. Amazon (3969億ドル) 4. CITIグループ (2730億ドル) 5. Facebook (3683億ドル) 5. ガスプロム (3680億ドル) 5. 現在のビジネス状況 ✤ ビジネスの変化がどんどんはやくなっている ✤ VUCA => Volatility (不安定) / Uncertain

    基礎からわかるDevOps #devfesta
  • インフラの継続的デリバリー - naoyaのはてなダイアリー

    事前に断っておくがここでいう「インフラ」はレイヤ的には OS より上の話。 少し前に GitHub 時代のデプロイ戦略 - naoyaのはてなダイアリー で、GitHub を介したデプロイを実践しているということを紹介した。普段の開発を Pull Request ベースでやっているので、デプロイもまた Pull Request を契機に実行させると色々捗る、という話。 このプラクティスの対象領域をインフラにまで拡大してみました、というのが今回の話。 DNS レコードを Pull Request を merge した契機に自動で更新 AWS を利用している場合、ドメインの管理も Amazon Route 53 を使うといろいろと都合がいい。 Route 53 での DNS レコードの更新はこれまでブラウザから操作していた。これだと誰がいつ作業したかわからないし履歴もトラックしづらい。また変更

    インフラの継続的デリバリー - naoyaのはてなダイアリー
  • rubocopによる静的コード解析でRubyのコード品質を保つ | Act as Professional

    rubocopRubyの静的コード解析ツールです。このコード解析を通すことによって、一定のRubyの書き方に統一することができます。また、不要な変数やメソッド名が長すぎるなど、一般的にRubyとして読みやすいコードにするための警告もされます。 こういった警告はRuby coding style and best practicesとしてRuby coding style guideにまとめられおり、Rubyを書くのであれば基的にはRuby coding style guideを一読しておくことをおすすめします。英語が苦手であれば、翻訳された日語版も存在します。 なぜ静的コード解析をするのか?静的コード解析し一定の読みやすいコードに統一することによって、人間が誤読する確率を下げることにより、バグなどの混入させる確率を下げる効果があります。また昨今ではGitHubコードレビューをするよ

    rubocopによる静的コード解析でRubyのコード品質を保つ | Act as Professional
  • kintoneを支えるKAIZENの技術 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、kintone開発チームの佐藤鉄平 (@teppeis) です。 今回はkintone開発チームのKAIZEN(改善)活動について紹介します。 技術的負債が減らない! サービスの開発を続けていくと、次第に技術的負債が溜まっていきます。kintone開発チームでは、開発期間中に溜まってしまった技術的負債kintoneアプリ に登録しておき、あとで時間があるときに返済するようにしていました。 このあたりの開発プロセスについてはこちらの記事をご覧ください。 超速で開発・リリースするための6つのこと | Cybozu Inside Out | サイボウズエンジニアのブログ ところが、最近技術的負債がなかなか減らないという課題に直面していました。kintone開発チームでは主にメンバーの自主性に任せて負債を返済していましたが、この方法だと、 ビジネスサイドからのプレッシャー(もっと新

    kintoneを支えるKAIZENの技術 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • テスタブルコードの書き方 - 基本戦略編 - ブログなんだよもん

    今のチームにテストコードの導入を格的にしようと思ってるので、思考の整理がてらメモ。内容は初学者向け。 テストの必要性をとくのは比較的簡単である程度できた。既存のレガシーコードはとりあえず忘れることに(特定メンバーでプロジェクト的に実施)。 というわけで、新規コードはみんなテスト書いてね! と、これだけでテストを書いてくれるでしょうか? 答えは否でした。 原因として自分の書きたいコードをどうテストすれば良いかわからないというものです。 新規コードなのでテストをしやすいように設計をすれば良いだけです。TDDはそれを支援してくれる有効な手法です。 しかし、テストが無い環境に慣れた人間はそもそもテスタブルコードを見慣れてません。なので、自分の書きたい実装をどう書けばテストが書きやすくなるかが分からないのでテストコードが非常に複雑になったり、立ち止まったりしてしまいます。 なので、テスタブルコード

    テスタブルコードの書き方 - 基本戦略編 - ブログなんだよもん
  • ドキュメントからコードへ - ブログなんだよもん

    From document-to-code from Hiroaki Koduki 最近「ドキュメントからコードへ」というのをキーワードに考えています。 その辺に関してつらつらと書いてみました。例のごとく英語で書いた資料より日語の方が詳しいよ>< 「ドキュメントからコードへ」って? 例えばいくつかの種類のドキュメントは下記のようにコードに置き換えることが出来ます。 詳細設計書、テスト仕様書 => 自動テスト JUnit/rspec Selenium/Cucumber サーバの構成定義書 => サーバテストツール serverspec インストールマニュアル => プロビジョニングツール系 chef/puppet 運用手順書 => デプロイツール, JOB管理ツール, CI ツール Capystrano Fabric Jenkins 他にも要件定義や基設計をAlloy等で作るのもこの範疇

    ドキュメントからコードへ - ブログなんだよもん
  • 第8回Jenkins勉強会で「Jenkins with Docker」というLTをしました #jenkinsstudy - Yahoo! JAPAN Tech Blog

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog LT の中で触れた環境を構築するデモコードを Vagrantfile にまとめて GitHub においていますのでよければ触ってみてください。ジョブ登録済の Jenkins が立ち上がるので全く同じ環境を試してもらえます。 yahoojapan/jenkins-with-docker-demo LT は5分でざっと流してしまったため、このエントリで補足します。 ジョブ実行毎にクリーンな環境がほしい 特に説明の必要もなく普段 Jenkins を使っていればジョブ毎にクリーンな環境がほしいと思うはずです。スレーブノードをジョブ毎に新規でインスタンスを立ちあげて実行することもできますが インスタンスの作成、起動はそれなりの時間がかかりま

    第8回Jenkins勉強会で「Jenkins with Docker」というLTをしました #jenkinsstudy - Yahoo! JAPAN Tech Blog
    mazinlabs
    mazinlabs 2013/12/21
    後でじっくりみる
  • GoogleのCIとテスト自動化の取り組み [GTAC 2013] - ワザノバ | wazanova.jp

    [Video] http://www.youtube.com/watch?v=nyOHJ4GR4iU [Slide] http://goo.gl/76Ggf Google Test Automation Conference 2013のキーノートスピーチで、GoogleのAri Shamashが同社のCIツール & 自動化されたテストプロセスを紹介しています。 [最初の前置きが13分。GoogleのCIの紹介の内容ではないので割愛。お話としては面白いのでVideo見てみてください。] エンジニア1,5000+人が5,000プロジェクトにアサインされている 1億行のコード。50%が毎月更新。 1日当たり5,500+件がサブミッションされ、1億件以上のテストケースが実行されている。 Googleのクラウドテストシステムは多機能。ビルド作成、特定のターゲットをテストでき、テストカバレッジ計算、依

  • CI で稀に失敗してしまうテストへの対処方法 - クックパッド開発者ブログ

    技術部の福森です。 クックパッドでは RSpec と Jenkins を利用して CI による自動テストを行なっています。 テストの数は 12000 examples を越えていて、テストによっては稀に失敗する物が出てきています: 時間帯依存で失敗してしまうもの 他に同時に実行されるテストに依存しているもの (並列実行で組合せが変わり再現する) インテグレーションテストでの ajax リクエストの微妙なタイムアウト etc また、番環境を壊さないよう、 CI で成功したリビジョンのみデプロイ可能となっており、開発者が push しデプロイしたいと思っている時に無関係な原因で失敗する事を避けたいという欲求があります。 なぜなら、再度ビルドを実行する時間 (およそ 10 分) の間待たされる事になるからです。 そこで、そのようなテスト起因での失敗を減らし、かつ開発者にそれらを修正してもらうた

  • 「自動受け入れテスト」を考えてみる - 日々常々

    きっかけは XP祭り関西2013 の @StoneGuitar777 さんのLTからです。 LTスライド: XP祭り2013-LT-Codeer @ITの記事: 特集:受け入れ検査の自動化手法の考察:Windowsアプリの受け入れテストを自動化しよう (1/5) - @IT 「継続的デリバリー」に貼付けた付箋を抜き出してみる 【大阪】継続的デリバリー読書会(8回目) - connpassの範囲でもありました。 受け入れ=ビジネス的な受け入れ基準=ユーザーの価値 ユニットテストとの色分け ユニットテスト: 作り手の意図 受け入れテスト: 顧客の意図 うまくやらないとコストが高すぎる 適切に作成して保守すれば自動のほうがはるかに安上がりになる ユニットテストやコンポーネントテストではどれほど包括的にやっても検出出来ない問題がある 手動テストはアプリケーションの複雑さに関わらずきわめて高くつく

    「自動受け入れテスト」を考えてみる - 日々常々
    mazinlabs
    mazinlabs 2013/05/08
    読ませる
  • Rubyアソシエーション: Jenkins

    継続的インテグレーション 継続的インテグレーションツールとは、バージョン管理システムにある最新ソースを定期的に取得してビルドおよびテストを実行し、テスト結果を出力するものです(参考)。継続的にテストを行うことで、システム全体の品質改善が期待され、統合に伴う問題を減らすことができます。ここでは代表的なツールであるJenkinsを使って、RSpecのテストコードを定期的に実行するための設定方法と結果表示を紹介し、継続的インテグレーションの概要を説明します。 以下の条件を前提とします。 ・Ruby1.9.3 ・Rails2.3.1 ・RSpec2.8.0 ・Subversionによるコード管理 1.対象とするアプリケーションの準備 既にRSpecのテストコードが含まれたアプリケーションがあれば、このセクションをスキップしても構いませんが、JenkinsでRuby1.9系を用いてカバレージを取得す

  • 1