受託開発の現場を支える開発生産性の定量化。HapInSがFindy Team+で実現するFour Keys向上の取り組みとは?
こんにちは、DCP事業部エンジニアの榎本です。普段の業務ではMedPeer Channelの開発を担当しています。 メドピアはKaigi on Rails 2021にRubyスポンサーとして参加し、そのスポンサーLT枠にて 『medpeer.jp 開発を加速させるエンジニアリング施策』という発表をしてきました。 今日はその内容を補足するとともに改めて本テックブログでも紹介したいと思います。 medpeer.jp の rails stats medpeer.jp (医師専用コミュニティサイト「MedPeer」のことです)自体は2007年にローンチしたサービスで、サービスの歴史としては10年以上(もうすぐ15年!)続くサービスです*1。 サービスイン当時の開発言語はPHPでしたが、2016年に medpeer.jp のRails化が開始されました。Rails化をスタートさせてから既に5年が経過
Docker images are the blueprints for containers, providing the instructions for how a container is spawned. They are used as the primary image in the Docker executor. This post will highlight some expert tips that can help you optimize Docker image development and the build process. How do you build a Docker image? The Docker build process is triggered by using the Docker CLI tool to run the docke
GitHub Actions + CircleCI でDocker HubへDockerイメージを登録、定期的にre-buildするCICircleCIDockerDockerHubGitHubActions GitHub Actions + CircleCIを利用してDocker HubへDockerイメージを登録、定期的にrebuildする方法を解説します。 実際に動いているサンプルコードはこちらで確認出来ます。 DockerイメージのビルドのCIを行う CI用途のためリポジトリにpushがあったら全てのブランチでCIが実行されるように設定します。 利用するAction Build and push Docker images · Actions · GitHub Marketplace DockerfileからDockerイメージのビルドとDocker HubへDockerイメージの
tl;dr 俺の Makefile こだわりの help タスクに依存関係を 以上 tl;dr terraform に限らずですが, コマンドのオプションとかちゃんと覚えていられないので, Makefile にまとめておいて, make xxxx で叩くのが個人的なトレンドです. Linux や macOS では特に何もしなくても make コマンドを叩けるので, Makefile に定型処理を書いておくことで, コマンドオプションのうろ覚えによるオペミスなども防げるのではないかと考えています. 俺の Makefile こだわりの help terraform コマンドはパスが通っている前提です. 環境に応じて terraform のパスは書き換えてください. help: ## ヘルプを表示する @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_L
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? こんにちは!この記事は、私が初めてAWSのS3とGitHub Actionsを使って静的Webサイトをデプロイした時の備忘録です。今回はAstroを使ってWeb作成をしてみました。結論から言うと、S3を使ったCICDは想像以上に簡単でした。ここでは、私が行った手順を説明していきます。 前提条件 このガイドを進める前に、以下のツールとアカウントが必要です: コマンドラインインターフェース(CLI)の基本的な操作スキル Git(バージョン管理システム) AWS CLI(インストール済み) AWSアカウント GitHubアカウント Node.
GitHub Actions で iOS アプリをビルドするときの Xcode のインクリメンタルビルドを有効にするためのキャッシュ設定について解説します。 CI でのビルドで Xcode のインクリメンタルビルドが使えるようになれば、毎回 CI 上でフルビルドし40分程度かかっていたプロジェクトが、差分のみのビルドでビルド時間が5分に短縮されたりすることが期待できます。 環境 この記事では、以下の環境で調査・検証した結果を記載しています。 ローカル環境 macOS Ventura 13.5.1 Xcode 14.3.1 (14E300c) APFS (Encrypted / Case Insentive) GitHub Actions 環境 macos-latest macOS Monterey 12.6.8 Xcode 14.2.0 (14C18) 結論 結論としては xcode-ca
月間10万人が読んでいるCoral Insightsのニュースレターにご登録いただくと、Coral Capitalメンバーによる国内外のスタートアップ業界の最新動向に関するブログや、特別イベントの情報等について、定期的にお送りさせていただきます。ぜひ、ご登録ください! データ活用の重要性が認識されるようになって数年。クラウドの普及や、経営指標可視化のBI(Business Intelligence)ツールの民主化、多数のSaaSの台頭といったことにより、データ蓄積や可視化は一気に進んだように感じられるかもしれません。 しかし、現実にはダッシュボードに多様なデータを一覧する手前のプロセスにおける課題が顕在化してきています。クラウドやSaaSに点在するデータを集めて集約する「統合」の工数が膨らんできているのです。 この「統合」部分のソリューション「trocco」(トロッコ)を提供する日本のスタ
ABEMAでスナップショットテストをやめてVisual Regression Testingに移行する話 こんにちは、ABEMA でフロントエンドエンジニアをしている李です。 今回は ABEMA Web でスナップショットテストをやめ、Visual Regression Testing (以下 VRT と略す)に移行する話を紹介したいと思います。 移行するモチベーション 2020年6月から ABEMA Web でテストを自動化するプロジェクトを始め、単体テストのカバー率を上げるため、 Storybook ベースの VRT を導入することが決まり、それをきっかけに、既存のテストも整理することになりました。 ABEMA Web での UI 周りのテストは主に以下の3つがあります。 AVA + react-test-renderer/@testing-library/react + sinon
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
こんにちは、Wantedly の Developer Experience Squad で生産性に関わるあらゆることに手を出している大坪です。今回は巨大化した Rails の CI 高速化手法について解説します。 CI は早ければ早いほどいい 上にリンクした DX Squad のミッションでも書いていますが、CIは早ければ早いほどよいと考えています。遅い CI は Pull Request の merge までのリードタイムを長くするという短期的なデメリットだけでなく、開発者の test を書くモチベーションを削いでしまい長期的にもプロダクトの安定性を悪化させます。 テストが早いと書きたくなる「他の人がテストを書いてくれない」「なんでこのコードはテストされていないのか」と思ったことは誰しもあるでしょう。そんな状況において自分が大事だと考えているのは「テストを書くことがお得である」と感じるこ
こんにちは、4月に入社しました広告技術部のyamaYuです。今回は21卒新卒ブログの第三弾ということで、私が入社して広告技術部に配属されてからどんなことをやってきたかを紹介します。第一弾、第二弾の記事は ↓ から読めますのでこちらも是非見てみてください! data.gunosy.io data.gunosy.io Gunosyに入る前は何をしていたのか 広告技術部とは これまで触ってきた技術 Go Kubernetes Terraform その他 どんな感じで仕事をしてくのか OJT コードレビュー 1on1 これから Gunosyに入る前は何をしていたのか はじめに私自身のバックグラウンドについて少し書いておきます。 CS系の学科の修士卒で、自然言語処理の研究をしていました。 深層学習を使ってニュースの見出しを自動生成する研究で、Pythonで深層学習のモデルやテキスト処理を実装したり、
はじめまして2022/11に入社しましたソフトウェアエンジニアの葛西です。 主にバックエンド開発を担当しています。 社内で競プロ部を立ち上げたのでいつか機会があれば記事にしたいなと思っています! はじめに チーム内で現在のプロジェクトのDB(リポジトリ層)単体テストをどういう風にやろうかという話になり、色々悩みながらやり方を検討していったのでその過程と最終的にどのように実装したかを残しておきたいと思い記事にしました。 技術スタック まずDBテスト方法を検討する際の前提条件として現在のプロジェクトで使用している技術スタックを書いておきます。 言語 Go DBマイグレーションツール sql-migrate スキーマ変更用のSQLを用意しておけばコマンドでスキーマ変更などを反映してくれるというツールです。 スキーマ変更用のSQLはこのプロジェクトのディレクトリに直接置いています。 ORMライブラ
この記事は Retty Advent Calendar 2022 Part1 の14日目の記事です。昨日は今井さんの『ストーリーポイント定規を作ってみた』でした。 今年も Part2 があるのでこちらもよろしくお願いします。自分は Part2 の16日にも記事を書きます。 はじめに aqua について チュートリアル 1. aqua のインストール 2. ツールの追加 2.1 Registry とは 2.2 aqua.yaml の生成 2.3 aqua generate によるツールの追加 3. ツールのインストールと実行 aqua のここが便利! バージョンの指定、切り替えが簡単にできる バージョン切り替え時の挙動について バージョンの指定について aqua generate -s の利用 aqua.yaml による設定の共有ができる 設定ファイルの読み込みについて Renovate に
GitHub Actions1 are programs designed to run inside of workflows2, triggered by specific events inside a GitHub repository. To date, people use GitHub Actions to do things like run continuous integration (CI) tests, publish releases, respond to issues, and more. Because the workflows are executed inside a fresh virtual machine that is deleted after the workflow completes, there isn’t much risk of
こんにちは、マッチング領域でバックエンドエンジニアをしているぽこひで ( @pokohide ) です。 冷やし中華はじめました的なタイトルですね。分かります。 今回はタイミーが本番運用しているRailsアプリケーションに対してRails edgeでCIを回すようになった話を紹介します。翌週には「〜見つけたエラー編(仮)〜」と題して、実際に弊社で見つけたエラーの例を紹介していきます。記事公開時点(2023年7月)のバージョンは下記の通りです。 $ ruby -v ruby 3.2.2 (2023-03-30 revision e51014f9c0) +YJIT [aarch64-linux] $ rails -v Rails 7.0.6 弊社ではRubyもRailsも積極的に最新バージョンにあげる活動をしています。今回の記事はRailsに関してですが、Rubyのアップグレードも同様に行って
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 AcionsのVM上でTailscaleをセットアップすると、Tailscale経由でGitHub ActionsのVMにsshできます。 Tailscale知らない人へ 事前準備 サンプルworkflow 何が嬉しいか コツ 他の選択肢 Tailscale知らない人へ Tailscaleが何かご存じない方は、過去に記事を書いているのでそちらを参考にしてください。 mstshiwasaki.hatenablog.com 事前準備 Tailscaleのアカウントを取っておくこと 作業用のPC/MacでTailscaleをセットアップしておくこと GitHub ActionsのSecretsで SSH_APIKEY SSH_PUBKEY という名前でログインに使うsshの公開鍵を登録しておくこと サンプルworkflow 事前準備が出来たら、まずは試してみましょう。GitHub
この記事は クラウドワークス Advent Calendar 2021 の18日目の記事です。 こんにちは。crowdworks.jp で、市場投入までの時間短縮を目指して日々改善活動をしている高橋です。最近はCIのテスト実行時間改善に取り組んでいますので、その際に調査した内容を紹介します。 はじめに CI(continuous integration)とは、自動でアプリケーションのビルドとテストを行うDevOpsソフトウェア開発の手法です。CIの目的は、バグを早期に発見して対処することやソフトウェアの品質を高めること、そしてソフトウェアの更新を検証してリリースするためにかかる時間を短縮することが挙げられます。 crowdworks.jpでは、CIツールにCircleCIのクラウド版を利用しており、テスティングフレームワークにはRSpecを利用しています。そのため、本記事ではCircleC
こんにちは。 SRE の @suzuki-shunsuke です。 6000 行を超える巨大な .circleci/config.yml を分割してメンテナンス性を改善した話を紹介します。 背景 我々 SRE は日々 Developer Productivity の改善に取り組んでいます。 その取り組みの一環で Developer の方から直接フィードバックをもらう機会がありました。 その中で Monorepo の .circleci/config.yml が大きすぎて修正するのが大変という意見をもらいました。 弊社では様々なサービスを一つのリポジトリで管理する Monorepo というアーキテクチャを採用しており、 CircleCI で全てのサービスのテストやビルド・デプロイなどを行っています。 それ故に .circleci/config.yml は 6000 行を超えるものになっており
September 26, 2022 GitHub Actions customers can now dynamically name their workflow runs. The new run-name feature will accept expressions and be displayed on the list of workflow runs. For more information on how to use run-name, visit the documentation. For questions, visit the GitHub Actions community. To see what's next for Actions, visit our public roadmap. We've made some improvements to aud
2021-12-14 更新 ======= Resource Class Pricing のページの情報が正しいと確認がとれました。Free プランでも、例えば Docker Executor の Medium+, Large が利用できるようになっているとのことです Docker Layer Caching (DLC) Free プランでも DLC が利用できるようになったと確認が取れました なので、このブログの絵の DLC は黄色の箱から白の箱に更新しました 英語版のドキュメントで該当部分の文言を削除しました(日本語版はしばらくお待ちください) この記事に書かれている情報は 2021-12-14 時点でのものになります! 更新内容ここまで ===== どーも。こんにちは。こんばんは。しーばです。 この記事は Calendar for CircleCI Advent Calendar 2
こんにちは!テラーノベルでiOS/Android/Webとフロントエンド周りを担当している @kazutoyoです! テラーノベルのCI/CDは、Bitriseを利用していました。(旧プランでTeamsプラン移行前のもの) BitriseはモバイルにフォーカスされたCI/CDサービスで、かんたんにモバイルでのCI/CDパイプラインを構築できる素晴らしいサービスです。 ただし、テラーノベルのアプリ開発において、以下のような問題点がありました。 テラーノベルでのBitriseを利用する問題点1: マシンタイプが現在では古い こちらは旧プランを利用していたためGen2マシンを利用できなかったからなのですが、当時のEliteプランでもMac mini 2018年モデルでした。 Model Identifier: Macmini6,2 machdep.cpu.brand: 0 machdep.cpu
皆さん、こんにちは! @hoshinotsuyoshi です。今回は、私が開発した便利なツールについて紹介したいと思います。このツールは、GitHubのCODEOWNERSファイルの変更を正確に報告し、プルリクエストのレビューを効率的に進めるのに役立ちます。 背景 プロジェクトの管理では、CODEOWNERSファイルを使用して、特定のファイルやディレクトリに対する所有者(コードの保有者)を指定することがあります。 しかし、このファイルの解釈・パースは複雑怪奇で、このファイルの内容が変更された場合、具体的にどのファイルが影響を受けるのかを把握するのは簡単ではありません。 同僚のmh4gfさんの記事 GitHubのCODEOWNERSで一部サブディレクトリだけ別のオーナーを指定する も御覧ください。 サブディレクトリだけ別のオーナーを指定するときにこんな書き方をしないといけないんです。 どうで
On 18th April 2021, a security researcher identified a vulnerability in our review-cask-pr GitHub Action used on the homebrew-cask and all homebrew-cask-* taps (non-default repositories) in the Homebrew organization and reported it on our HackerOne. Whenever an affected cask tap received a pull request to change only the version of a cask, the review-cask-pr GitHub Action would automatically revie
GitHubでのCIはActions | GitHubを使うようになりましたが、GitHub Actionのsetup-nodeにはLTSのような相対的な値を指定する方法がありません。 Support aliases like LTS · Issue #26 · actions/setup-node Support for LTS version · Issue #208 · actions/setup-node Support latest as a version alias for the latest Node version · Issue #257 · actions/setup-node そのため、GitHub ActionsでNode.jsのテストを書くには、次のようにnode-versionにそれぞれのバージョンを指定する必要があります。 Travis CIではnvmが使
Linda_ppさんが開発したactionlintというコマンドラインツールがあります。 これは GitHub Actions のワークフローファイルを静的に解析して、事前にわかる問題を指摘してくれるツールです。詳細については開発者である Linda_pp さんが書いたブログ記事を読むことをおすすめします。 私は GitHub Actions をよく使います。しかし、ワークフローファイルの記述を誤ってしまい、実際に動かしてから些細なミスに気がつくことがよくあります。これには非常にストレスを感じていました。 actionlint はこの問題を見事に解決してくれました。コマンドラインからactionlintと入力すれば、適切に問題を指摘してくれます。 作ったもの 課題 私は普段 Node.js を使って様々なものを開発しています。actionlint は Go で書かれており、Node.js
こんにちは、セキュリティチームの@sota1235です。 10Xのセキュリティチームではプロダクトに近い領域での権限管理に関して、リスク整理と対応を日々行なっています。 今回はその取り組みの一環であるGitHub Actionsのpermissionsに関しての取り組みをご紹介します! なぜやるのか そもそもこの取り組みを始めたWhyを軽く説明します。 10XではGitHubで日々の業務が行われており、守るべき資産の数多くがGitHub上で管理されています。 また、アプリケーションのデプロイや日々の運用などもGitHub Acitonsを利用しながら行われており、もしGitHub上で何かしらのセキュリティリスクが顕在化した時のダメージは大きいです。 例えば守るべき主な資産は以下が挙げられます。 Git管理されているソースコード 業務上のやり取りが行われるIssue、Pull Request
Merpay Advent Calendar 2021 の 15 日目は 2 本立てで、1 本目の記事をメルペイ Growth Platform Team のバックエンドエンジニアの@naoinaがお送りします。 2本目は Growthのオペレーションツールの歩み 〜ダッシュボード編〜 で公開されているので、そちらもよろしくお願いします。 クーポンやキャンペーンなど、Growth に欠かせない機能を実現するシステムはマイクロサービスとして構築していますが、データの登録のような人が介在するオペレーションは定常的に発生します。 その内容を設計するのは、バックエンドエンジニアではなくマーケティング、BI、プロダクトマネージャーなどの職種、部署の方であり、理想的にはそれらの方々だけで作業を完結できるような使いやすいUIを備えたシステムがあることが望ましいでしょう。 しかし、他にも様々な開発が必要に
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
So, you have been working on this new and fancy web application. Be it a recipe app, a document manager, or even your private cloud, you‘ve now reached the point of working with users and permissions. Take the document manager as an example: you don’t just want admins; maybe you want to invite guests with read-only access or people who can edit but not delete your files. How do you handle that log
SREチーム(新卒)の市川恭佑です。これはカヤックSRE連載の1月号です。 みなさんの記憶に新しいと思いますが、先日CircleCIで大きなセキュリティインシデントがありました1。 このインシデントを受けて、環境変数やContextに保存された外部サービスへの認証情報を更新しながら「自分もOIDC対応しておけば......」と後悔した方も少なくないと思います。 外部サービスの例として、Amazon Web Services (AWS)に関しては、公式OrbにてOIDC連携がサポートされていたり、AWS側のIdentity and Access Management (IAM)設定を含む情報がインターネット上に数多く公開されています。 ゆえに、CircleCIのパイプラインからAWSにアクセスする箇所について、OIDC連携に対応する難易度は比較的低いです。 これに対して、Google Clo
前回のtagprの紹介エントリの反響が思ったより大きくて喜んでいます。ということで、積み残し及び、要望やヒントから着想を得て幾つかの機能を追加実装しv1.0.0をリリースしました。 https://github.com/Songmu/tagpr/releases/tag/v1.0.0 ありがたいことに、public repoだけでも十数名の方に既にご利用いただいているようで、フィードバックから細かいエッジケースの修正も幾つかおこなって敲かれたため、だいぶ使い物になるソフトウェアになったと言って良いでしょう。 ということで、追加された機能等について解説していきます。 uses: Songmu/tagpr@v1 これまではワークフロー上で uses: Songmu/tagpr@main とブランチ直指定してもらっていましたが、uses: Songmu/tagpr@v1 と指定できるようになりま
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く