タグ

ブックマーク / bufferings.hatenablog.com (24)

  • 「Jestではじめるテスト入門」を書きましたー #Jest本 - Mitsuyuki.Shiiba

    Jestではじめるテスト入門 日「Jestではじめるテスト入門」がついに発売されました 🎉🎉🎉 peaks.cc CircleCI時代の同僚の伊藤さん @ganezasan が「Jestの自動テストの執筆を手伝ってくれませんか?」と声をかけてくれて「これからテストを書きたいって人に向けたJestの入門書を書きたいんですよ!!」って熱く語ってくれて「いいなぁ」と思ったので参加しました。を書くなんて初めてのことなので、自分なんかに書けるかなぁとドキドキしてたのですが、周りの方々の助けのおかげで、なんとか書き上げることができました。 そして、監修はなんと和田さん @t_wada です。自分が自動テストについて書いた文章を、和田さんに監修していただけるなんて、それだけでとても幸せだなぁと思っていたのですが、「むちゃくちゃ面白かったです!」って言ってもらえたので、もう出版しなくても満足し

    「Jestではじめるテスト入門」を書きましたー #Jest本 - Mitsuyuki.Shiiba
  • CircleCI の Runner に入門した - Mitsuyuki.Shiiba

    CircleCI には Self-hosted Runner と呼ばれる機能がある circleci.com 「CircleCI のジョブを CircleCI が保持している実行環境ではなくて、自分たちが持っている環境上で実行する機能」ってことくらいしか知らなくて。「ビルドやデプロイを自分たちの閉じた環境の中でだけ扱いたい」って場合に便利なんだろうなぁ、って遠くから見てたのだった でも、昨日突然「Runner 触ってみたいな」と思ったので触ってみることにした。仕事としてではなくて、個人的な趣味として公式ドキュメントを読みながら触ってみた。インストール方法とかは公式ドキュメントがあるのでここでは書かない。自分の理解をメモとして残しておく Self-hosted Runner? Self-hosted Runnerを使うと、ジョブを自分たちの持っているマシン上で実行できる。コントロールプレーン

    CircleCI の Runner に入門した - Mitsuyuki.Shiiba
  • 🌀CIclone で CircleCI と IntelliJ IDE を連携させるの便利! - Mitsuyuki.Shiiba

    サムライズムから CIclone (サイクロン)というプロダクトが発表された samuraism.com 🌀CIclone? JetBrains IDE と CI を連携させるプラグイン 有償プラグインなんだけど、リーズナブルな価格だし、サムライズムでパーソナルライセンスを契約してる場合は追加費用無しで利用できるので、とても良いー。自分はサムライズムでAll Products Packのパーソナルライセンスを契約してるのだ JetBrains 製品の僕の紹介リンク貼っとくー。割引されるので良かったらどうぞー!そしたら僕も更新のときに割引してもらえるー JetBrains製品を割引価格で! #侍割 はい。ということで、CIclone が CircleCI と連携できるってことなので触ってみた!とても便利そう! 実行結果を通知してくれる コードを push したら、それをトリガーにして Ci

    🌀CIclone で CircleCI と IntelliJ IDE を連携させるの便利! - Mitsuyuki.Shiiba
  • GitLab と CircleCI の連携を試す - Mitsuyuki.Shiiba

    昨日、GitLab SaaS と CircleCI の連携が発表されたので試すー! www.publickey1.jp CircleCIエンジニアとして働いてるけど、今日のこれは単に CircleCI のことが好きで触ってみて書いてる。趣味 参考ドキュメント 英語: GitLab SaaS integration - CircleCI語: GitLab.com との連携 - CircleCI 英語版は「プレビュー」の文字がなくなってるから、日語版も近いうちに更新されるんじゃないかと思います! → (2022-07-29 追記) すでに更新されてました!はやいー! ドキュメントを参考にしつつ、自分の好みの流れで書いてみる 1-1. GitLabプロジェクトを作る GitLab 使うの初めてだからドキドキしつつサインアップしてフリープランで 空のプロジェクトでもいいんだけどちょ

    GitLab と CircleCI の連携を試す - Mitsuyuki.Shiiba
  • CUE で YAML をマージするときの動きを確認 - Mitsuyuki.Shiiba

    CircleCI の config.yml を分割できる(というかマージできる)Orb を作ったので bufferings.hatenablog.com 今日は、その Orb の裏側の「CUE で YAML をマージするときの動き」を確認してみるー! CUE で YAML をマージする こんなファイルがあるときに foo.yml sample: foo: "foo value" bar.yml sample: bar: "bar value" こう書くと CUE で YAML をマージすることができる ❯ cue export foo.yml bar.yml --out yaml sample: foo: foo value bar: bar value --- を使って、↓こう書いても同じなので、今日の記事の中ではこの形式で書こうと思う foobar.yml sample: foo: "

    CUE で YAML をマージするときの動きを確認 - Mitsuyuki.Shiiba
  • CUE で YAML をマージするときの動きを確認 後編 - Mitsuyuki.Shiiba

    前編はこちら bufferings.hatenablog.com CUE で YAML をマージするときのルールを自分の言葉で説明すると以下の通りだった YAMLYAML の Leaf までのパス: 値 と捉えたときに、それらのすべての Leaf が任意の順番でマージされる ただし、その Leaf に対するスカラー値またはシーケンス値がひとつに決まらなければエラーになる 今回は、どうしてそうなるのか?について簡単にメモを残しておこうと思う いったん CUE 形式に変換される YAML を マージするときに僕が使っているのは、こういうコマンド ❯ cue export a.yml b.yml --out yaml 流れはこう YAML ファイルを CUE 形式に変換する 変換した複数の CUE 形式のデータをマージ マージされた CUE 形式のデータを YAML で出力 コマンドの最後

    CUE で YAML をマージするときの動きを確認 後編 - Mitsuyuki.Shiiba
  • CircleCI の大きな config.yml を分割しちゃおう! - Mitsuyuki.Shiiba

    config.yml を分割できる Orb を作ったよー Split Config Orb という Orb を作った こないだからちょこちょこ試してたやつを Orb にしたのだ。この Orb を使うと config.yml を分割できる。Orb にしたから簡単に使えるよー! config.yml が大きいから分割したいー!って場合や、モノレポで複数サービスを入れてるから各サービスごとに config.yml を書きたい!って場合に使えるかなぁって思ってる もしちょっとでも興味があったら、実際に使ってみてフィードバックをいただけると嬉しいです。フィードバックを元にして機能をブラッシュアップできるといいなと思ってます!GitHub の Issue でも Twitter でメンションくれても OK です! GitHub Issue: Issues · bufferings/orb-split-c

    CircleCI の大きな config.yml を分割しちゃおう! - Mitsuyuki.Shiiba
  • CircleCI のパスフィルタリングと設定ファイル分割を組み合わせる実験 - Mitsuyuki.Shiiba

    三話目の今日は、パスフィルタリングと組み合わせてみるぞー! 第一話:設定ファイル分割の紹介 bufferings.hatenablog.com 第二話:モノレポ用の実験 bufferings.hatenablog.com 前回の最後に こんなことを言ったので、今日ぼけーっと考えてた ブランチごとに合成方法を変えたりできるかなぁ?か、変更があったサービスのジョブだけ実行したりできないかなぁ?のどっちかを考えてみたいな。できるかどうか分かんないけど! ブランチは別にいっか でも、ブランチは別に考えなくていいなと思った。main だったらこの設定ファイルだけを合成に使う、feature ブランチだったらこの設定ファイル、みたいにブランチごとに合成する設定ファイルを変えるのは、あんまりユースケースが思いつかない あるかもって思ったのは「ブランチごとの設定を別ファイルに分けてわかりやすく管理したい」

    CircleCI のパスフィルタリングと設定ファイル分割を組み合わせる実験 - Mitsuyuki.Shiiba
  • CircleCI の設定ファイル分割をモノレポ的な構成で実験 - Mitsuyuki.Shiiba

    昨日(というか今朝)書いたやつの続きー! bufferings.hatenablog.com 昨日の記事を書きながらこんなことを考えてたので、今日はモノレポっぽいものを思い浮かべながら試してみた↓ ダイナミックコンフィグとCUEのやつをごにょごにょしたら、ブランチごとに違う設定を生成したり、モノレポの各サービス毎に.circleciフォルダを持っておいて合成したり、変更があったサービスのジョブだけ実行したりできないかなーと、ぼやーっと思い中— Mitsuyuki Shiiba (@bufferings) July 17, 2022 ダイナミックコンフィグの有効化 と、その前に、昨日書き忘れてたやつを最初に CircleCI のダイナミックコンフィグはデフォルトでは無効になっているので、そのままだとこういうエラーになる Use of setup workflows must be enabl

    CircleCI の設定ファイル分割をモノレポ的な構成で実験 - Mitsuyuki.Shiiba
  • CircleCI の設定ファイルを分割して CUE で合成してみたら割と簡単で便利そう - Mitsuyuki.Shiiba

    ぼーっと CUE のドキュメントを読みながら CUE という設定用の言語・・・と呼んで良いのかな?のドキュメントを読みながら https://cuelang.org/ 「これ、いろんな機能があるけど、それは置いといて、YAML の合成が簡単にできるのでは?・・・とすると、CircleCI の設定を簡単に分割できて面白いかもなぁ」 と思ったので試してみた。わりとアリかもしれない 今回のサンプルコードはここ: github.com どういう感じ? こんな感じに適当に分割した設定を ❯ tree .circleci/configs .circleci/configs ├── header.yml ├── job1.yml ├── sample │ ├── job2.yml │ └── mixed\ sample.yml ├── workflow1.yml └── workflow2.yml 1

    CircleCI の設定ファイルを分割して CUE で合成してみたら割と簡単で便利そう - Mitsuyuki.Shiiba
  • 意識低めの成長 - Mitsuyuki.Shiiba

    とても雑記 個人の成長は必須かなぁ? よーはつのツイートを見て、古川さんのスライドを見て、「グループや会社は成長して欲しいなぁって思うけど、個人の成長はどうなんだろう?僕は『今、自分が持ってるチカラで会社の成長を支える』ぐらいがいいなぁ」みたいなことをぼやーっと考えた ここ数年、こういう組織の支援もやっているけど、ほんとに難しい… 開発組織の持続可能性について https://t.co/8HpulzqngQ pic.twitter.com/Jx9LFuH0p2— yoh nakamura (@yohhatu) July 12, 2022 意識低い 最近の自分は「成長しなきゃ!」「そして自分の成長で会社の成長を支えなきゃ!」みたいなのはあんまりなくて、意識は低い方かなぁと思う。「それはそれ、これはこれ」な気持ち 単純に、新しいことを学ぶのは楽しいし、昨日できなかったことが今日できるようになる

    意識低めの成長 - Mitsuyuki.Shiiba
  • GitOps とデプロイ - Mitsuyuki.Shiiba

    昨日はトランクベース開発とデプロイについて書いたので bufferings.hatenablog.com この勢いで GitOps とデプロイも書いてしまうー。先に言っておくと、自分は GitOps の経験はない。でも、よさそうだなぁと思う手法なので、機会があれば挑戦してみたい気持ち GitOps? GitOps は2017年に Weaveworks の Alexis によって提唱された手法で、Kubernetes を対象としている Guide To GitOps Git のリポジトリーに入れてある設定ファイルを Single Source of Truth として、Kubernetes のクラスター管理とアプリケーションデリバリーを行う。上記の記事には次の4つの原則が書かれている システム全体が宣言的に記述されていること 正規の望ましいシステムの状態が Git でバージョン管理されている

    GitOps とデプロイ - Mitsuyuki.Shiiba
  • トランクベース開発とデプロイ - Mitsuyuki.Shiiba

    前回は Git-flow とデプロイについて書いたので bufferings.hatenablog.com 今回は、トランクベース開発とデプロイについて考える。LinkedIn, Facebook, Google などもトランクベースの開発をしてるんだね 参照: Agility Requires Safety | Y Combinator トランクベース開発は Git じゃなくてもいいと思うんだけど、この記事では Git 前提で考える トランクベース開発? 幹(trunk)となるブランチにみんなが小さな変更を加えていくブランチモデル。寿命の長いブランチを作らないようにすることで、マージでつらい思いをしなくて済むようになって、ビルドも壊れないようにできて、ヤッター!というもの trunkbaseddevelopment.com Git-flow みたいに develop ブランチで開発をする

    トランクベース開発とデプロイ - Mitsuyuki.Shiiba
  • Git-flow とデプロイ - Mitsuyuki.Shiiba

    前回 は継続的にデプロイしてるよって話をしたので、その流れで今日からちょっと Git を使った開発フローに対するデプロイについて考えてみたいと思う。まず最初はやっぱり Git-flow からかな。と、その前に 前置き 自分は CircleCI だとどうなるかなぁとか考えながら書いてるけど、どの CI サービス・ツールを使っても大丈夫 自分の頭の中にあるのはウェブ系の自社サービス。スマホアプリとか組み込みとかは経験がないから分かんない どんな風にテストを実行するかみたいな話も面白いけど、今回は CI のことは忘れてデプロイだけ考える どのフローが良い・悪いという話ではない Git-flow ということで Git-flow 。この絵は有名ですね どこが始まりなんだろう?って思ったら2010年のこの記事みたい: https://nvie.com/posts/a-successful-git-br

    Git-flow とデプロイ - Mitsuyuki.Shiiba
    mfunaki
    mfunaki 2022/04/08
  • 毎日何度も本番環境にデプロイをしている話 - Mitsuyuki.Shiiba

    CircleCI に入って色々と面白いなぁって思いながら毎日楽しんでる。その楽しんでることのひとつに Git のブランチモデルがある。最初はびっくりしたけど、慣れるととても良い 最初に言っておくと、この手法がどこにでも当てはまるとは思ってない。業種や、開発形態、プロダクトのタイプなどによって合うやり方は違う。単に CircleCI には、この手法がとても合ってるなぁと思う トランクベースのブランチモデル タスクに着手するときは、まずメインブランチからそのタスク用のブランチを作る。develop ブランチや release ブランチみたいな長く生きてるブランチはない。そのタスク用のブランチにコミットをプッシュしたらプルリクエストを出す。そして、レビューが終わればメインブランチにマージされる。タスクに着手してからマージまで、はやければ1時間ぐらい。長くてもだいたい2,3日くらい そして、メイン

    毎日何度も本番環境にデプロイをしている話 - Mitsuyuki.Shiiba
  • Pixela の Increment/Decrement/Put をする CircleCI Orb を作った - Mitsuyuki.Shiiba

    CircleCI の勉強として作ってみた CircleCI Developer Hub - bufferings/pixela ↓この3つの環境変数を CircleCIプロジェクトにでも設定しておいたら PIXELA_TOKEN (Pixela のトークン) PIXELA_USERNAME (Pixela のユーザー名) PIXELA_GRAPH_ID (Pixela のグラフのID) ↓こんな感じで、例えばジョブが実行される度に Pixel を Increment できる version: 2.1 orbs: pixela: bufferings/pixela@1.0.0 workflows: example: jobs: - pixela/increment 単にジョブの実行回数や、デプロイ回数を取りたいなぁってときに使えるかな?Decrement と Put も用意しておいた。

    Pixela の Increment/Decrement/Put をする CircleCI Orb を作った - Mitsuyuki.Shiiba
  • 最近 Fitbit つけて散歩してるので CircleCI + Pixela で見えるようにしてみた - Mitsuyuki.Shiiba

    歩数で草を生やしてみたのだー。これで散歩の楽しみが増えたなー やってること やってることはシンプルで、こう↓ FitbitAPI で歩数を取得 Pixela に記録 というスクリプトをつくって CircleCI で定期的に実行 Fitbit? 最近 Fitbit Sense というスマートウォッチをつけて散歩してる www.fitbit.com 会社の福利厚生で健康のための補助があるので、それを利用して手に入れたのだ。散歩やジョギングをしたら勝手に記録されてるので便利。睡眠のログも取られてるので面白い Pixela? Pixela は日々の活動を記録して見えるようにしてくれる API サービス。いちばん最初に貼った画像みたいに GitHub の草を生やすやつみたいにしてくれる。操作が全部 API 経由なのも楽しい pixe.la せっかく散歩してるから せっかく散歩してるから Fit

  • 僕は新人なのだ - Mitsuyuki.Shiiba

    CircleCI に入社して3ヶ月たって、ぶじにonboardingもほぼ終わって、ちゃんとエンジニアとして役に立ちそうでほっとしてる金曜日。次の3ヶ月間は、プロジェクトを無理せずにがんばってこ 基的に毎日楽しく過ごしてるのだけど、苦労してることも少しある。それは、主に自分の中の課題。今日はそれについてちょっと書いてみようと思う。自分のこれまでの経験が邪魔をするってところ 違いに反応してしまう 良い悪いとかじゃなくて、単純に色んなことが自分の過去の経験と違う。環境も文化も方針もビジネスもフェーズも違うので当然そう そして、つい、そういう違いに反応してしまう。コードの書き方とか、プロジェクトの進め方とか、コミュニケーションとか、いろいろ。「あ、今までと違う」ってなる これまで当然だと思っていたものが違ったりして「あれ?どうして自分はこっちが良いと思ってるんだろう?」って考えさせられたり、「

    僕は新人なのだ - Mitsuyuki.Shiiba
  • CircleCI でコードを書いてる話、デッドラインがない開発の話、EMの話 #小粋fm - Mitsuyuki.Shiiba

    小粋fm でお話をしてきました!いつも散歩中に聴いてる好きなポッドキャストなのだ。とても嬉しい。藤井さんと久しぶりにゆっくりお話できて楽しかったし、ずっと一方的に知ってた星さんと初めてお話できてとても嬉しかった。これで僕も小粋ファミリーの一員だー。わいわい。全3回です。 twitter.com その1:全体を見るエンジニアからコードを書くエンジニアへ、の巻 #51【ゲスト:@bufferings】しいばさん@CircleCIのご経歴とお仕事を聞いてみたら、気になることがありすぎました by Koiki.fm #小粋fm 前職では全体を見るエンジニアを楽しんでたなぁ、今は CircleCI でコードを書くエンジニアを楽しんでる、リモートファーストだったり、CI/CD が最初から組まれてたりするの面白いよーみたいなお話。 リモートファーストの話のところで「明文化された文書や文化みたいなのある?

    CircleCI でコードを書いてる話、デッドラインがない開発の話、EMの話 #小粋fm - Mitsuyuki.Shiiba
  • CircleCI の設定を絵に書いて頭の中を整理 - Mitsuyuki.Shiiba

    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

    CircleCI の設定を絵に書いて頭の中を整理 - Mitsuyuki.Shiiba