副題:CircleCIでdocker-composeを使うのをやめた。 1年前くらいには、CircleCIでdocker-composeを動かす方法についての記事を書いてた。 patorash.hatenablog.com しかし、これが遅い。まぁ自分のやり方が悪いというのはあったのだけれど。ライブラリのキャッシュを1コンテナでやってから、次のジョブで複数コンテナに配布するようにしたほうが無駄がなくていいかなと思って、そうしていたのだけれど、docker-volume内にあるからキャッシュするためには一旦取り出さなければならないし、キャッシュを反映するにはdocker-volume内にインポートしなければならず、これがすごく遅かった。 最近ではresource_classがmedium、parallelismが4で、parallel_testsを使っても40分くらいかかっていた。遅すぎる。
CircleCIのmachine Executorでbuildジョブからdeployジョブへとファイルの受け渡しを行う(Workspace)GitHubCircleCIDockerCICDkokura.ex 概要 CircleCIのmachine Executorを使用して「Dockerビルド〜デプロイ」を行なっているプロジェクトにおいて、build jobで生成したファイル/ディレクトリをdeploy jobに渡す手順をメモ書きします。 方法(結論) job間にWorkspaceを介してdeployに必要なファイル/ディレクトリを共有します。 persist_to_workspace 後続のdeploy jobへ提供したいファイル/ディレクトリをWorkspaceへアップロードします。 具体的には、build jobの最後のstepでpersist_to_workspaceを実行します。
はじめに 久しぶりにyml職人していたら、CircleCIの書き方を忘れてしまったので、備忘録として残します 折角なので冗長なymlをCircleCI Orbsでスッキリさせてみました CircleCIで設定する環境と、実際にアプリを運用する環境をできるだけ合わせることがポイント GithubでPull Requetを作成したら、masterにマージする前に自動でビルドされてテストやリンターが走ったら便利。 前提 Githubのアカウントをもっていること、既にRailsのプロジェクトがあること Rspec & Rubocopが設定済みであること Mysqlをつかった例を説明します 開発環境 Rails6 Mysql8 Docker AWS ecs config.ymlの設定 🔽全体はこんな感じ ・commitした時とmergeした時にRspec&RUbocopが走る ・mergeしたらe
はじめに 2017年に書いた「SQLServerだからといって諦めずに、CircleCIでテスト自動化する」が色々古かったので、アップデートしてみました。 尚、記事と合わせてソースコードも更新しました。 imunew/php-with-docker-mssql 変更点 変更したポイントを列挙していきます。 Microsoft SQL Server on Linuxが新しくなった 詳しくは「Docker内の php から SQL Server に接続する(2020年版)」を参照いただきたいのですが、DockerイメージとPHP用のドライバを更新しました。 FROM php:7.4 # Install basic packages and extensions RUN apt-get update \ && apt-get install -y zlib1g-dev libzip-dev wg
こんにちは。BASE BANK 株式会社 Dev Division にて、 Software Developer をしている東口(@hgsgtk)です。 TL;DR July Tech Festa 2021 winter に「TDD から ATDD へ歩みをすすめる」というタイトルで登壇しました アジャイルテストとその中で有効なプラクティスとされる ATDD (Acceptance test-driven development) ATDD を実践するための E2E テスト基盤を gauge と CircleCI を用いて構築する July Tech Festa 2021 winter July Tech Festa はインフラエンジニアのための祭典と題したイベントです。昨年からオンラインでの開催となっており 500 名超えの参加者が集まった大規模イベントになっています。 jtf2021w
CircleCI Orbsを利用して、AWS CLIを超簡単に導入してみました。 おすすめの方 CircleCIでAWS CLIを使いたい方 CircleCI用のIAMユーザを準備する IAMユーザの作成 まずは前準備としてCircleCI用のIAMユーザを作成します。 aws iam create-user \ --user-name circleci-test-user IAMユーザにIAMポリシーをアタッチ さきほど作成したIAMユーザに対して、S3に対するRead権限を付与します(動作確認用の権限)。 aws iam attach-user-policy \ --user-name circleci-test-user \ --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess なお、実際にCI/CDを構築するときは、
==================================== ERRORS ==================================== ________________________ ERROR collecting test_apis.py _________________________ ImportError while importing test module '/home/circleci/myapp/test_apis.py'. Hint: make sure your test modules/packages have valid Python names. Traceback: test_apis.py:4: in <module> from utils import HOGEAPI E ModuleNotFoundError: No mo
CircleCIで環境変数の登録を自動化するプログラムを書いたので、作成した内容を書いていきます。 課題 CircleCIの環境変数の設定の際にブラウザからポチポチして登録していたのですが、単純作業で登録が面倒なのと、誤操作により設定ミスが発生することがありました。 CircleCIの環境変数について まず環境変数の設定方法のバリエーションについてです。 大きくは、以下の6つのレベルで環境変数を設定することができます。今回の対象は、Project Environment Variablesの設定に関しての記事になります。 登録方法は、Build > Project > Settings で設定します。(もしこれ以外の登録方法をご存知の方がいらっしゃいましたら教えていただきたいです。) Global Environment Variables Project Environment Vari
pyproject.toml を書く まずはインストールしたいパッケージを書いていきます。今回はCircleci 上でインストールしたパッケージが正しく動くかを確かめるために、Pytest をインストールします。 [tool.poetry] name = "circleci-poetry" version = "0.1.0" description = "" authors = ["ssab"] [tool.poetry.dependencies] python = "~3.8" pytest = "^6.2.1" [tool.poetry.dev-dependencies] [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" lock ファイルを生成する po
腹筋ローラーで徐々に立ちコロができるようになってきました。やっさんです。 GolangCI-LintとCircleCIで静的解析チェックを自動化してみました。 そもそもLinterとは? Linterとはプログラミング言語の静的解析を行うツールです。事前のコンパイルエラーの検知や、ふさわしくない構文などを検知するために利用します。言語毎に存在しており、例えばJavaであればCheckstyle、RubyではRuboCopが有名ですね。 GolangCI-Lintとは Go言語は複数のLinterが乱立しており、どのLinterを使うべきか悩むこともあるかと思います。GolangCI-LintはLinterを一元管理し高速にLinterを実行することが出来るツールになります。 GolangCI-Lintのメリット GolangCI-Lintを使うことで以下のメリットがあります。 1. Lin
業務にてRuby on Railsの Webアプリケーション開発していて、DB設計資料やER図を必要に応じて手で作って説明に利用したりしていました。 システムの運用も始まり、そろそろ手で作ることによる更新が厳しくなってきた感じがするので、自動生成できないかなあと思っていました。 今回は、CIプロセス(CircleCI)の中でSchemaSpyというツールを用いて、ドキュメントを自動生成してみたので、学びを書き残しておきます。 SchemaSpy schemaspy.org SchemaSpyというものを見つけました。 テーブル、カラムの構成情報やER図といったドキュメントをHTML/JS/CSSとして静的に出力してくれるツールです。実際にサーバー上で動いているDBを指定するとドキュメントを生成してくれます。 Javaで作られていているツールですが、公式でDockerコンテナイメージを公開し
はじめに こんにちは, Sansan株式会社プロダクト開発部エンジニアの北見です. 最近, 個人開発でCircleCIを使ったビルド&デプロイを構築することができました. 構築過程で「CircleCI Orb」という機能を見つけたのですが, これが非常に有用だったので, 紹介させて頂きます. CI/CDパイプラインの歴史と構築時の悩み Jenkins プロダクトをビルド/デプロイするためのCI(Continuous Integration)やCD(Continuous Delivery)がもつ重要性は昔から叫ばれてきました. CI/CDサービスでまず皆様が思いつくのは「Jenkins」ではないでしょうか? www.jenkins.io オンプレミスサーバーへ簡単にインストールでき, CI/CDの走りとなった最も有名なソフトウェアですね. GUIをオペレーションのメインとし, 簡単にパイプラ
はじめに 最近、CIの実行に6分~17分かかるようになっており、開発効率が低下しています。Bundle installの結果をキャッシュすることで3分30秒短縮できたのでメモ。 困っていたこと CIを構築した前任者が不在であるため、情報が不足していました。 CI実行を少しでも早くするために、依存関係のあるbundle install結果をキャッシュするようにしていたのですが、常に3分30秒かかっており、キャッシュが有効化されているように見受けられませんでした。 repo/venv 配下にキャッシュを生成・取得するようにしていたため、下記ページも参考にしつつ、キャッシュの格納先を vendor/bundle 配下に修正したのですが、状況は変わりませんでした。 circleci.com キャッシュされない原因 vendor/bundle 配下にキャッシュがないため。同じキーでキャッシュの再作成
こんにちは、taskeyの田代です。 21年始まってしまいましたが、20年でやったことで書いていないことがあったので、一足遅いですが、こちらに残して行きたいと思います。 弊社サービス こちらのサービスではサーバーサイド技術としてRuby on Railsを採用しております。 多くの場合、Railsを採用した現場では、Ci上でRspecやRuboCopを回して、合格した場合のみmaster(main)ブランチへのmergeが可能、という開発フローを用いていることが多いと思います。 Rspec on Ciではテスト数が多くなるに比例して速度が落ちていくという問題があります。「Rspec 遅い」で検索するととても多くの記事がヒットするのが裏付けとなっています。また、ランダムに落ちるというRspecも厄介ですね。 先に結果から書かせていただきますと、いくつかの技術と札束を用いた結果30分 => 5
はじめにこの記事は DevRel Advent Calendar 2020の19日目の記事 であり CircleCI Advent Calendar 2020の25日目の記事 です。 縁あって、2020年6月15日、CircleCIというCI/CDの会社にDeveloper Advocateとして転職してきました。以前は別の会社でDigital AdvisorというDAつながりなコンサル寄りのお仕事をしてきたので、より開発者寄りな、我が家のような場所に帰ってきたと思いながら、半年ほどお仕事してきました。 コロナ禍で面接もすべてオンラインという中でのDeveloper Advocateへの転職だったのですが、しばらくは同じような状況であれば、私の「立ち上がり」を残しておけば、後に続く後輩たちに何か残せるかと思い、クイックに書いてみました。 これまでの履歴との重なりは?Developer Ad
はじめに この記事はCircleCI Advent Calendar 2020の24日目の記事です。 CircleCIでカスタマーサクセスをしている鈴木と申します。 CircleCIには、ワークフローを一時停止し、手動承認のジョブを経て、ワークフローを再開する機能があります。この承認ジョブの機能を利用することで、他のチームや責任者が承認したうえで本番環境へのデプロイを行うといったことが可能です。 承認ジョブの承認を実行するApproveボタンはCircleCIのUIで以下のように表示されます。 この機能にはそのリポジトリのWrite権限を持っているCircleCIユーザーなら誰でもこのApproveボタンを押すことができるという大きな注意点があります。 誰にでも承認できてしまうのでは利用にふさわしくないという場面もあるでしょうが、承認ボタンを特定のユーザーにのみ表示させる方法はありません。
( ノ゚Д゚)こんにちわ。これはCircleCI Advent Calendar 2020 23日目、かしゆかの誕生日を CircleCIで祝おうのコーナーです(n‘∀‘)η ヤァーッホォー はい、めでたい。 さて今年は、ゆかちゃんとはまったく縁もゆかりもなさそうなHerokuとCircleCIの共演です。 Bitbucket からの自動デプロイができない HerokuはGithubと連携をして、特定のブランチがコミットされたら、自動的にHerokuへデプロイすることができます。また、PR(Pull Request)と連携するレビューアプリ機能もあります。Githubさえ使えれば、Herokuの多くの機能と連携して利用できるようになります。 しかし、これらの特徴的機能は残念ながらGithub「だけ」です。そのほかのVCSでは、連携する機能を持っていません。残念。 Privateがたくさん持
この記事は CircleCI Advent Calendar 2020 22 日目の記事です. 本日は makotom こと CircleCI の DevOps Customer Engineer 水上がお届けします. 本当はこの記事で私がここ 2 か月ほど取り組んでいる新しい Windows ビルドの話をしようと思っていたのですが (なのでタイトルも伏せていたのですが), あいにく諸々が間に合わず, マージ・リリースの前に共同作業者であるレビュアーがクリスマス休暇に入ってしまったので, 急遽突貫工事で別の内容をお届けします. いかついサンプル コードとかファンシーな画像とかが全くなく, ただただエモだけで語っているのにはそういう背景があります. はじめに さて, 私は現在 CircleCI で DevOps Customer Engineer として活動しています. このロールは, 主に
version: 2.1 jobs: build: machine: image: ubuntu-1604:202010-01 steps: - checkout - run: name: Build Docker containers command: | set -x docker-compose build docker-compose run --rm app bash -c "mix --version" docker-compose run --rm app mix archive docker-compose run --rm db bash -c "psql --version" docker-compose run --rm app bash -c "node --version && npm --version" - run: name: Mix deps.get co
愚直:正直なばかりで臨機応変の行動をとれないこと。また、そのさま。ばか正直。 - goo国語辞書 はじめに こんにちは、Masuyama です。 CircleCI Advent Calendar 2020 の 20 日目を担当させていただきます。 今回、自分が個人開発として作った Web アプリケーションで使っている設定ファイル config.yml を解説する記事を書こうとしたのですが、 16日目の方の記事と内容が丸かぶりでした。 そこで、今回は私が CircleCI を使うにあたり初めて書いた設定ファイルを解説してみたいと思います。 先に申し上げておくとそのコードには スタイリッシュな様相や、実運用を重視した工夫 はございません。 あえて 初めて書いた設定ファイル をテーマとすることで、 CircleCI を使ったことが無い人でも「これなら分かるかも」と思ってもらえることを目的としてい
この記事はCircleCI Advent Calendar 2020 - Qiitaの19日目の記事です。 qiita.com 今回はCircleCIのManual Approvalを使用してAzure App Serviceのデプロイスロットをスワップさせるところをやっていきたいと思います。 やりたいこと Dockerイメージのビルド、Azure Container RegistroyへDockerイメージをPush StagingのDockerイメージの参照先の変更(Dockerイメージのバージョン変更) SlackにManual Approvelの通知 Manual Approvelが承認されれば、ProductionとStagingのデプロイスロットのスワップを実行 Azure App Serviceのスロットの機能に関してはこちらを参考にしてください。 docs.microsof
31歳未経験からwebエンジニアへの転職を目指している@naota7118と申します。 この記事は『CircleCI Advent Calendar 2020』の16日目の記事です。 はじめに 転職活動用ポートフォリオでCircleCIを使いました。使う前から「CircleCIは難しそう」というイメージを持っていましたが、実際使ってみると、「使うだけならそんなに難しくないが、ちゃんと細かい部分まで理解するのは難しい」というのが正直な感想です。「使うだけならそんなに難しくない」理由は「Rails CircleCI」などで検索すれば、先人の記事がいくつも出てきて、それらを参考にすれば設定できてしまうからです。本記事では、一応使っているけれどほとんど理解できていないCircleCIの設定ファイルの中身を調べてわかる範囲で説明してみたいと思います。 想定する読者 これからポートフォリオでCircl
2019年8月:初じめてのCircleCI 自分の勉強のために Ruby の gem を作成しようというところから始まります。 テストとデプロイを自動化したい という思いから業務でも使用していた CircleCI を導入すること にしました。 そもそもこの時点では CI/CDの構築を一回もしたことがなく ほぼ知識がない状態からの導入です。 導入方法 そもそも知識がない状態でどうやって導入したんだっけ? 思い出してみると初導入に関しては Qiita に記事 として残してあります。 Rubyのgemを公開しつつCircleCIでCI/CD(継続的インティグレーション/継続的デリバリー)を体験しよう 基本的には 公式のドキュメントを読んでそのままコピペしたものに不必要なものを削除、必要な機能を追加していき作成 しました。詳しくは Qiita の記事を読んでください。 config.yml 初めて
この記事はCircleCI Advent Calendar 2020の13日目の記事です 2.1以上であればOrbを使うとechoで特定のファイルに書き出して…とかそういうのをよしなにやってくれるので楽できる CircleCI Developer Hub - circleci/gcp-cli circleci.com 準備 サービスアカウントは事前に作っておく、鍵ファイルはJSONで用意する GCLOUD_SERVICE_KEYにJSONのキーの内容をそのまま入れる 他の記事などでbase64でエンコードしたものを入れるというのもよく見るが 少なくとも今回のOrbを使ううえではそのまま入れることでサービスアカウントのActivateが行える あとはGOOGLE_PROJECT_IDを入力しておく GOOGLE_COMPUTE_ZONE or GOOGLE_COMPUTE_REGIONどちら
はじめに push時にCircleCIでテストを行っていますが、テストが終わるのは1秒でも速いほうがよいので以降の処理に依存関係がないテストをbackgroundモードで実行し、非同期っぽいテストにしました。 利用環境 CircleCI Enterprise version 2.0 並列で実行できるテスト CircleCIでテストをするとき、このような流れでテストを行うことが多いのではないでしょうか。実際にはこれ以外にテスト用コンテナやDBコンテナなどを起動する処理が必要ですが、ここでは省略しています。 よく考えてみるとLintとユニットテストは独立した関係なので、Lintをしながら平行にDBマイグレーションをしたっていいはずです。 Backgroundオプションによる並列化 CircleCIの場合Lintのジョブとユニットテストのジョブを分離させて並列テストを行うことができますが、無料プ
Increments × cyma (Ateam Inc.) Advent Calendar 2020 の7日目は、 Increments株式会社 プロダクト開発グループ Qiita開発チームの @atm-snag が担当します! 閑話 この記事を書いているときに,前日の記事がアップされていて, それが CI 関連だったので, CI が連続するなあと思った(小並感 はじめに Increments では,build や deploy などに circleci を使っています. circleci には DLC(Docker Layer Cache) という機能があります. 今回は,DLC を使わなくなった話をします. DLC とは… circleci の executer を跨いで /var/lib/docker を共有する仕組みです. docker のイメージレイヤをジョブをまたいで使うこと
【オンライン】【改善してほしい・欲しい追加機能LT大会編】CircleCI コミュニティミートアップ 登壇資料Read less
概要 CircleCI Advent Calendar 2020 の7日目の記事になります。 最近めっきり寒くなりましたね。 trocco1ではCI/CDのツールとしてCircleCIを利用していますが 今回 git-pr-release というライブラリを導入し、リリース運用の効率化を試みました。 背景と課題 開発チームメンバーが増え、開発スピードが増えて嬉しい反面、 リリースの回数も増えたことで、開発スピードに追いつけず遅れが生じやすくなっていました。 また、当時はmasterブランチへのpushをフックにstagingへのリリースが行われており、 masterブランチに未リリースのコミットが含まれるタイミングがある状態でした。 もちろん、ステージング環境でのチェックをした後、本番環境へのリリースが行われていたのですが、 この状態だと、hotfixなどの差し込みリリースができない状態で
アプリケーションが動作する環境を含め、アプリケーションを構築します。 今回のように Docker 環境だと Docker イメージのプル、各モジュールのインストールなどを行います。 事前に指定しておいたテストを実行します。 今回は Rails の RSpec でテストを実行しますが、テスト結果に失敗(failure)が含まれていなければデプロイまで進むことになります。 デプロイ 今回はデプロイまでは行いませんが、テストまでパスしたコードを本番環境へ反映させることができます。 Docker環境構築 まずはDockerでRailsのサーバを立ち上げるところまで準備します。 環境情報 Ruby: 2.7.2 Rails: 6.0.3.4 データベース:Postgres 設定ファイル作成 適当なフォルダを作成し、その下に以下のファイルを作成していきます。 Dockerfile docker-com
[CircleCI][ECS/Fargate]API v2を使って気楽にステージング環境をデプロイさせる投稿者: adachin 投稿日: 2020/08/272020/08/27 おっしゃ。CircleCIのAPI経由でデプロイできた。 あとはSlackでリリースできるようになったら神 — adachin👾SRE (@adachin0817) August 27, 2020 以下のように、今までCircleCIでECS/Fargateでのステージングデプロイはfilters branchesでdevelopブランチに対してマージを出していました。それに本番反映するためにdevelopブランチをmasterブランチに対してプルリクマージを出すというgit flowで運用していました。(なかなかの手間が…) ※今回はWordPress
Carview Advent Calender 2日目の記事を担当しますnbappsです。 1日目の@zwtinくんがいい記事を書いてハードルを上げてくれたので、ハードルを下げる役を担いたいと思ってます。 本題 アプリの審査提出って地味に時間がかかりますよね。 ビルドして、アップロードして、ストアから選択して、リリースノート書いて、提出して。。 作業と待ち時間が交互に繰り返されるので全部終わるまで地味に時間がかかります。 この記事ではそんな課題を解決すべく、「Macのターミナルでコマンドを一つ打つだけで、ビルドして審査提出までしてくれる」ところまでを解説します。 Fastlaneとは、「iOS/Androidアプリのリリースに関わるあれこれを自動化してくれる」便利なライブラリで、証明書やプロビジョニングプロファイルの更新、ベータ配布、テスト、ビルドバージョン管理などもFastlaneで自動
はじめに この記事はCircleCI Advent Calendar 2020 - Qiitaの4日目の記事です。 CircleCIは残念ながら商用利用経験は無く、個人利用に留まっています。 縁あってCircleCIの中の人にコミュニティ運営をリードするコミュニティリーダーグループ(大阪)に混ぜてもらい、そろそろ活動履歴を作らねば…!との思いから先日行われたミートアップに登壇しました。 その登壇資料を作成する過程で得た知見を再アウトプットしようと思います。 SpeakerDeck - CircleCI AWS-SAM-SERVERLESSを使ってみた ミートアップで話したこと ざっくりこの3つです。 CircleCI Orbs CircleCI + AWS 環境変数の設定方法 CircleCI Orbs CircleCIにはOrbsと呼ばれるconfig.ymlに定義するいくつかの設定をパ
この記事を読むと、以下についての説明をする。 新規リポジトリに対してCircleCIを設定し、リモートへプッシュしたら、serverless-frameworkによってGolangで書かれたAWS LambdaやAPI Gatewayが自動更新されるまでの設定方法。なお、Githubアカウントの作成及びserverless-frameworkの初期設定は済んでいるものとする。serverless-frameworkが未設定の方及び基本的な使い方を知りたい方は下記記事をご参考に。 設定手順 1. GitHubで新規リポジトリを作成する。右上の+ボタンから、New repositoryを選択。 Repository nameの欄にリポジトリ名を記入。今回はわかりやすくcircleci-testとしている。その後左下緑ボタンCreate repositoryで新規作成完了。 その後、出てきたコマ
はじめに この記事はCircleCI Advent Calendar 2020 - Qiitaの3日目の記事です。 自分のチームではLambdaを使って、バッチなどを動かしています。 LambdaはAWS SAMで管理していましたが、デプロイを自動化しておらず、手動で反映していました。 そんな状況をCircleCIを使って改善した話をしていきます。 改善前 改善前のデプロイフローが下記になります。 このデプロイは下記のような課題を抱えていました。 ローカル上で依存解決して実行しないといけない 変更セットをレビュアーが隣で確認しないといけない このような作業を行っているため、環境変数の書き換えがミスがあったりし、ダブルチェックに緊張感がある状態でした。 開発中はこの状態で進めていましたが、本番運用を始める前にはなんとかしたいという思いがあり、自動化の構築を始めました。 AWS SAMとLam
30代未経験からRails, AWS, Docker, CircleCIを使って減量アプリを作りましたRailsAWSCircleCIDocker プログラミング未経験の31歳男がRuby on Rails, jQuery, AWS, Docker, CircleCIといった技術を使ってWebアプリを作りました。 この記事では、最初にアプリの紹介をした後に、 どれくらいの時間かけて作ったのか なぜこれらの技術を使うことにしたのか 特に大変だったところ どのように学習したのか といったことについて、お伝えできればと思います。 どんなアプリを作ったのか 減量アプリです。(筋トレしてる人が健康的に体脂肪を減らすためのアプリ) 「これなら自分でも続けられる」をコンセプトに「PFC MASTER」というアプリを開発しました。 アプリのURLはこちらです。 https://pfcmaster.work
はじめに 2020年6月から縁あってCircleCIという会社でDeveloper Advocateを拝命しています 舟木将彦 と申します。そのCircleCIですが、ウェブサービスやモバイルアプリのビルド自動化(CI/CD)に関しては、こちらQiitaにもさまざまな体験例を投稿いただいているのですが(投稿して下さった皆さま、ありがとうございます)、.NET系の例はあまりないのが現状ということでやってみました。 作ってみたもの コマンドラインで指定した数字までのフィボナッチ数の総和を表示するだけのプログラムです。ちなみに、フィボナッチ数列をプロットするとアンモナイトではなくて、Sybaseのマークになります。 リポジトリはGitHub上にありますので、そちらをご覧ください(https://github.com/mfunaki/FiboNetApp)。 ライブラリコード フィボナッチ数に関わ
並列処理をするために 並列処理をするには、有料プランへの切り替えが必要です。 30ドル支払えば、テストが高速化します! 実際の設定ファイル 以下が実際のファイルです。 本記事では、並列テストと関連する部分だけを説明します。 それ以外の基本的な書き方については、以下のQiita記事か公式サイトの記事を参考にしてください。 https://qiita.com/yassun-youtube/items/2a09d5b1b56feace8156 version: 2.1 jobs: test: docker: - image: circleci/ruby:2.7.2-node parallelism: 4 steps: - checkout - restore_cache: keys: - bundle-{{ .Environment.CACHE_VERSION }}-{{ checksum "G
が! CircleCIの2.0からTriggerという機能を使ってcronで定期実行できるようになってから触ったことがなかったので、せっかくなのでサーバーレスになるし移行してみました。 ■Scheduling a Workflow https://circleci.com/docs/2.0/workflows/#scheduling-a-workflow https://circleci.com/docs/2.0/configuration-reference/#schedule ■Add Projects とりあえずcron用のプライベートリポジトリを作ってみました。AnsibleとTerraformやら管理しているリポジトリにまとめようかなと思いましたが、無料プランということもあって、Terraform CIが動いており、2つコンテナが同時に動作することができません!(制限かかる) そ
拡張子jksは、KeyStoreファイルです。(ここではAndroidアプリ開発で利用) CIの環境変数に入れようと思ったところ、中身がバイナリでした。
CI(継続的インテグレーション)/CD(継続的デリバリー)環境も含めて今すぐにRails6の開発環境が欲しいんだ……しかも無料で…… いろいろと設定するのめんどくさいな……あぁー後なんとなくDockerで開発したいよね…… そんな要望を叶えるために作成したのがこの記事になります! CI(継続的インテグレーション)/CD(継続的デリバリー)環境なしだったらコマンド3つでRails6の開発環境を立ち上げることができます! またCircleCIとHerokuを使用してCI(継続的インテグレーション)/CD(継続的デリバリー)環境も構築できるように説明しています 詳しくはtemplate_sample_rails_6のリポジトリを見てください! 改修箇所 自分が使いやすいようにいくつか改修しました Docker化 コマンド1つで開発ができるようにDocker化しました Docker内ではよく使う
先日Circle CIのチュートリアルに「Automated testing with continuous integration for Electron applications」という記事が追加されていたのでやってみました。 ちょっと前にGithub ActionsでSpectronのE2Eテストを自動で動かせるようにならないか試してみたところ、以下のようなエラーが発生していてChromeが起動しなかったので、今度はCircle CIでやってみたいと思っていたので良いタイミングでした。 また、今後CypressはElectronをサポートする予定とないGithub issueでコメントしているので、改めてSpectronを試してみようと思いました。 Client initialization failed after ***0 attempts: RuntimeError Clie
また、現在私はwindows10を利用しており、macの方は適時置き換えて進めていってください。 といってもaws-ecs-cliのインストール方法が異なるぐらいで他は同じだと思います。(windowsだとインストールするのに少し手間がかかりました。) それと、筆者はAWSのコンソールの言語はあえて英語で設定しているので、英語で設定していただいた方が本記事は進めやすいと思います。 (AWS CLIのコマンドの名前とコンソールの英語表記が一致するので、お勧めです。) 対象となる人 AWSのアカウントを持っている人 すでにDocker化されたRailsアプリがあり、インフラにAWSや、CI/CDツールを取り入れることにチャレンジしたい人 就活のポートフォリオとして上記の技術を取り入れたい人 AWSに興味がある人 macばっかでwindowsの記事がなくて困っている人 前提知識 VPC、サブネッ
概要 1リポジトリに、バックエンドとフロントエンドにフォルダを分けて入れた場合のcircleci設定ファイルの書き方例を紹介します。 下記のようなディレクトリ構造 project/ ├ .circleci/ │ └ config.yml ├ backend/ │ └ manage.py │ └ requirements.txt ├ frontend/ │ └ package.json │ └ yarn.lock ├ is_changed_dir.sh シェルスクリプトを使用して、バックエンドフォルダ内のファイルを修正した場合バックエンドのテスト、フロントエンドフォルダ内のファイルを修正した場合フロントエンドのテストが実行されるように設定しました。 構成 バックエンド Python3.9 Django3.1.3 Postgresql9.6.2 フロントエンド React17.0.1 全体 最
TL;DR CircleCIでビルド, テスト, デプロイを順序立てて実行するにはWorkflowsを使う Workflowsはローカル実行できないため、どうしてもローカルで確認したい場合は各ステップを build に切り出す デプロイ先となるAWSのアクセスキーなどはCircleCIのEnvrionment Variablesに登録する CircleCI CLIのローカル実行ではEnvrionment Variablesを -e オプションで設定できる サンプルプロジェクト 今回はNuxt.jsで作ったフロントエンドプロジェクトをビルド/テスト/デプロイします。 create-nuxt-app は次の設定で作りました。 create-nuxt-app v3.4.0 ✨ Generating Nuxt.js project in . ? Project name: map-sample ?
はじめに 以前、CircleCIの始め方を解説しました。 初心者必見! CircleCIでHello Worldしてみよう! 今回はCircleCIの基本設定のうち、JOBについて詳しく解説していきます。 YouTube解説 Qiitaの記事だけでなく、YouTubeでも解説しています! 動画で確認したい方はこちらもどうぞ! 【YouTube動画】 CircleCI を使いこなす! JOBの設定方法を徹底解説!! 設定ファイルの復習 まず、設定ファイルを確認しましょう。 version: 2.1 jobs: <job_name>: docker: ... steps: ... workflows: <workflow_name>: jobs: ... 次のようにjobs以下に名前付きで実行したいjobを設定します。 jobには実行したいコマンド群を記述していきます。 そのjobの実行タイミ
CircleCI 2.0 Capistrano 3.14.1 Ruby 2.6.5 Rails 6.0.0 ① rspec_junit_formatterがないと言われる テストを走らせた時に出たエラー Error reading historical timing data: file does not exist Requested weighting by historical based timing, but they are not present. Falling back to weighting by name. No examples found. bundler: failed to load command: rspec (/home/circleci/circleci-demo-ruby-rails/vendor/bundle/ruby/2.5.0/bin/rsp
- run: name: run rspec command: | mkdir /tmp/test-results TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | \ circleci tests split --split-by=timings)" bundle exec rspec \ --format progress \ --format RspecJunitFormatter \ --out /tmp/test-results/rspec.xml \ --format progress \ $TEST_FILES no_output_timeout: 15m このように、 no_output_timeoutパラメーターを記述することでデフォルトの設定を変更できます。 上の例では15分です。 例えばですが、サービスの規
結論 2020/11/03 17:00時点で、まだ 100回/6時間 の制限は適用されていませんでした。 公式のアナウンス によると 日本時間で11/05 02:00-05:00に適用完了するようです。 (2020/11/08追記) 誤訳でした。ごめんなさい。公式のアナウンスは11/02を境に段階的に制限を適用していき、その過程で時々完全に制限をかける時間帯を設けるという趣旨でした。(追記にて詳細) (2020/11/03 17:00時点) 上が認証情報なし(匿名ユーザ)、下が自分の個人のDockerHubアカウントで確認した結果です。 どちらも制限はかかっているものの、6時間で5000回まででした。 ちなみにCircleCIは一部の例外を除きユーザが今すぐ対応すべきことはないと発表しています。 Download rate limitが完全に適用された後、このジョブでは(匿名ユーザの場合)
はじめに Happy Halloween! 例年ならコスプレして街に繰り出したくなるところですが、今年はそれも叶わず。 であるなら、開発中に感じた恐怖な体験でも語ろうかと。本当なら日が沈んでから明かりを消した部屋でノートPCのバックライトだけを灯して書き込みたいところですが、翌日まで誰の目にも止まらないと悲しいので、朝、書いてみました。 config.ymlにおけるアンカー(&)とエイリアス(*)とは 実は私、CircleCIの中の人(Developer Advocate)をしているのですが、CircleCIについてのご相談のうち「コンフィグ(config.yml)が巨大になってしまうの、どうにかならない?」というものが結構多いです。 config.ymlは一部をサブルーチンとして切り出して呼び出すとか、オブジェクト指向言語よろしくメソッド定義して追加実行は派生クラスでsuper()した後
aws-cli2系で発生した[Errno 2] No such file or directory: 'less': 'less'が意味不明だったCircleCIaws-cliECSCircleCI2.0 環境 CircleCI2 aws-cli 2.0.30 ハマるまでの経緯 いろいろあってCircleCIのバージョン2を使ってデプロイスクリプトを書かなければならなくなりました。 今まではバージョン2.1でorbsというとっても便利なものを使っていたので、aws-cliのバージョンやaws-cliのコマンドそのものについて意識していませんでした。 で、awsコマンドで以下を実行しようとしたら、 aws ecs register-task-definition --family ${ENV_PREFIX}-app --cli-input-json file://app-task.json
合同会社 EXNOA(DMM GAMES):Recommendations AI の活用で PC パッケージの売上を約 2 倍に拡大 ゲームを通じ、趣味のあう仲間たちが集まって遊べるコミュニティ サービス DMM GAMES を運営する合同会社 EXNOA(以下、EXNOA)では、オンライン ゲームや PC パッケージ ゲーム、ゲーム内で利用するアイテムなどを販売する EC サイトのプラットフォーム、およびレコメンデーション機能の開発に Google Cloud を採用しています。このプロジェクトについて、データ戦略部のリーダーと 3 名のエンジニア、およびマーケティング担当者に話を伺いました。 利用している Google Cloud サービス:AI Platform、Recommendations AI(ベータ版)、BigQuery など BigQuery による高速なデータ解析に期待し
【オンライン】【ソフトウェアテスト自動化LT大会編】CircleCI コミュニティミートアップにてお話しました。
負荷テストとサーバレス 負荷テストに対する考え方は時代とともに変化してきました。従来はサーバスペックやシステムの限界性能を測るという考え方でしたが、クラウドネイティブなシステムではそれに加えて、システムの弾力性(スケールアウトのしやすさ)も考慮する必要があります。 本記事では、負荷テストによるシステムの弾力性の評価と、改善する方法についてツールの具体的な使用方法やアプリケーションのチューニング Tips を交えて説明します。システムの弾力性を評価するために、プロダクション環境でのユーザからのリクエストを想定したロードテストを検討します。 ロードテストでは以下の項目を検証します。 ドリップテスト ドリップテストは通常、数日間にわたって行われます。通常のバックグラウンド負荷レベルをシミュレートします。遅延またはエラー率の増加が見られる処理を特定します。 スラムテスト スラムテストは、トラフィッ
> Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover In PackageManifest.php line 122: Undefined index: name Script @php artisan package:discover handling the post-autoload-dump event returned with error code 1 Exited with code exit status 1 CircleCI received exit code 1 この問題はLaracastでも報告されている。 原因としては10/24にcomposer2がリリースが影響している。 circleciから提供されるコンテナイメージはcomposerを
CircleCIとしてもDocker社との協議等含め、影響の有無や影響範囲等、公式なドキュメントは取りまとめを進めていますが、現在の状況等、(公式扱いではなく)速報として、こちらのスレッドで説明させていただいております。 10/23日本語訳追加 Docker Hubのレート制限に関するFAQ 10/23追加 CircleCIからの匿名イメージプル、Docker社とのパートナーシップにより当座は制限の対象外 (なお、アカウントの中で言語を設定し、ログインした状態で地球儀アイコンをクリックすると、機械翻訳された投稿を見ることができます) また、FAQはこちらになります。 英語: https://support.circleci.com/hc/en-us/articles/360050623311-Docker-Hub-rate-limiting-FAQ 日本語: https://support
追記 Amazon EventBridge経由でスケジュールタスクの設定を行うと自動で最新リビジョンを参照してくれるようです 参考:https://dev.classmethod.jp/articles/ecs-schedule-eventbridge/ 前提 CircleCIのOrbsを使用する為、CircleCIのバージョンは2.1以降であることを前提とします jobsの設定 jobs: update-ecs-scheduled-task: executor: aws-cli/default steps: - checkout - aws-cli/setup - run: name: update ECS Scheduled Task command: | aws events put-targets \ --rule {更新するルールの名前} \ --targets "[ { \"I
1.はじめに ※ 本投稿は、Jenkinsの具体的な導入方法等を説明するものではありません。 個人開発の中で、「Jenkins」や「Travis CI」は以前から使っていましたが、今回初めて実際の業務でJenkinsの導入を行う機会をいただきました。 その中で見えてきた問題点と課題を戒め(本当に失敗ばかりでした.....)として、そして同じような境遇で導入を検討している方に対して、少しでも私が体験したような失敗を繰り返さないように、参考になればという思いで書かせていただきます。 2.概要 WindowsServer 2016 がJenkinsを導入するインテグレーションサーバー 開発手法はウォータフォール型の開発手法を採用 CI環境構築の話はプロジェクト開始当初から話題に上がってはいたが、設計等が優先されサーバーの提供が遅れた。 自動化だけに焦点が当たっており、Jenkinsの本格的な導入
はじめに 担当しているプロダクトでは CircleCI 経由で ECS へデプロイしているのですが、今回「あれ、本番反映されてないぞ?」というところで調査が始まりました。 エラーログ ログを確認したところ、Webpack のビルドがこけていたためアプリの Docker イメージが ECR に push されていなかったためでした。 Step 9/9 : RUN npm run ****uction ---> Running in a49599abd805 > @ ****uction /myapp > cross-env NODE_ENV=****uction node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.con
問題 Docker Hubは、無料アカウントと認証なしユーザーで、11月からpull数に制限がかかります。CircleCI上で認証無しで運用しているとIPアドレスベースの制限がかかり、CircleCIのIPアドレスはユーザーと比較して多くないので影響が懸念されます。 CircleCIチームはDocker社と会話してる模様なので、今後もしかしたらユーザーの対応は不要となるかも知れません。しかしCI/CD環境が止まれば影響は大きいので回避策を押さえておきましょう。 解決策 ひとまずDocker Hubのユーザー認証を噛ませれば、IPアドレスでは判断されなくなるので無料アカウントでも200 pulls/6hまでは利用できます。これ以上になるならDocker Hubへの課金が必要ですが、どのみちCircleCI上でユーザー認証を行う必要があるので同様の作業が発生します。 作業手順 以下の作業でCi
はじめに CircleCIの動作確認を毎回Web上でポチポチ確認していましたが,ローカルで実行やバリデーションが出来ないのか気になり,調べたところ,CircleCI CLIがありました. 公式docによると, CircleCI CLI は、CircleCI の高度で便利なツールの多くを、使い慣れた端末から利用できるコマンドライン インターフェイスです。 CircleCI CLI を使用すると、以下のような作業が行えます。 * CI の設定ファイルのデバッグとバリデーション * ローカルでのジョブの実行 * CircleCI API のクエリ * Orbs の作成、パブリッシュ、表示、管理 とのことで,なんか良さそうです. インストール 公式docをみて入れます.Dockerなりご自由に使って環境を用意してください.curl,homebrew,Snapを用いてインストールができます. 本記事
CircleCI のジョブ結果を Slack に通知する場合,今までは CircleCI の Webhook と Slack の Incoming WebHooks を組み合わせて実現していた.最近読んでいる「CircleCI 実践入門」に「Slack Orb」を使う方法が載っていたので,プライベートで使っている GitHub リポジトリの通知を移行することにした.実際に「Slack Orb」で試した内容を整理しておきたいと思う.なお「CircleCI 実践入門」の書評記事は別途書く. CircleCI Orb Registry - circleci/slack GitHub - CircleCI-Public/slack-orb: Create custom Slack notifications for CircleCI job statuses 「Slack Orb」を試す まず,C
こんにちは。 DSOC R&D グループの高橋寛治です。 アルゴリズムの考案と実装が主業務ですが、最近は少し幅を広げたテストを始めとしたコードの品質管理・運用など継続的インテグレーション(CI)に興味を持ち、少し取り組んでいます。 新しくアルゴリズムを実装する際に、CIツールのCircleCIとPythonのテストツールpytestを導入してみました。 今回はその導入方法について簡単に紹介を行います。 今回の目標 GitHubにプッシュした際に、次の項目を実現することを目標とします。 テストの実行 テスト結果をGitHubレポジトリに表示 カバレッジを出力 別環境でのビルドやテストが実行されることで、手元では動いたがほかの環境ではうまくいかない、などという事態を防ぐことができるようになります。 また、コミットに紐付いて実行されるため、ファイルのコミット漏れなどの失敗も気づきやすくなります。
9月に出版された「CircleCI 実践入門」を読んだ.素晴らしかった!なぜ CI/CD が必要なのか?という背景から,CircleCI 入門,CircleCI 実践まで,網羅的に解説されている.ボリュームは多く,読みごたえはあるけど,必要な箇所から読むこともできる.また「継続的デリバリー」と「継続的デプロイ」の違いが明確に解説されているのも良かった.今回は著者の1人である CircleCI の Kim さん (@kimhirokuni) に献本をいただいた.ありがとうございます!出版おめでとうございます! CircleCI実践入門──CI/CDがもたらす開発速度と品質の両立 (WEB+DB PRESS plus) 作者:浦井 誠人,大竹 智也,金 洋国発売日: 2020/09/14メディア: 単行本(ソフトカバー) 目次 第1章「なぜ CI/CD が必要か」 第2章「CircleCI の
こんにちは。Eight でフロントエンドエンジニアをしている鳥山(@pvcresin)です。 最近は UI デザインとアプリケーションのパフォーマンス改善、ビルド時間の短縮に興味があります。 Eight の Web フロントエンドは JavaScript(JS)で書かれていましたが、2020 年 5 月に TypeScript(TS)を導入しました。 今回は TS 初心者だった私が、どのようなステップを経て TS を学び、実際に導入していったのかについてお話ししたいと思います。 目次 TypeScript TS 導入の背景 導入の準備 導入・移行方針の検討 導入手順 移行手順 TS を導入してみて まとめ TypeScript はじめに TypeScript の紹介をします。 TS は Microsoft が開発したオープンソースの静的型付け言語です。 型システムによって、コードの品質を向
この記事は、今年イチ!お勧めしたいテクニック by ゆめみ feat.やめ太郎 Advent Calendar 2019 21日目の記事です。 昨日は、「業務で使うツール(iTerm2,SequelPro,Chrome)をShellScriptでハイパーテクニックする」でした。 シェルスクリプトすごい。まさに効率化 是非ご一読ください。 はじめに この記事では、CircleCi でテストコード(PHPUnit)を実行する方法を紹介します。 なお、記事の内容やスクリーンショットは、 2019年12月時点のものとなります。 ソースは以下 CircleCi とは 継続的インテグレーション/デリバリー を提供する SaaS です。 Git ホスティングサービスへの push イベントやスケジューリングした時間に、任意の処理を実行できます。 主に xUnit の実行、ソースコードのビルド、ビルド成果
はじめに Salesforceの最近のサンプルアプリはみなCircle CIを使っています。 ご存知「DreamHouse」 https://github.com/dreamhouseapp/dreamhouse-sfdx 最近公開されたLWCのサンプル「ebikes-lwc」 https://github.com/trailheadapps/ebikes-lwc 先日紹介したISVパッケージ開発テンプレート「SFDX-Falcon」 https://github.com/sfdx-isv/sfdx-falcon-appx-package-kit Circle CIの手順はSalesforce DX開発者ガイドの「CircleCI を使用した継続的インテグレーション 」に書いてありますが、ebikes-lwcで設定を試してみましたので、手順をまとめておきます。 ドキュメントのsfdx-ci
はじめに 先日発売されました「CircleCI実践入門」を読みました。2020年9月現在、唯一日本語で書かれたCirecle CI本ということで期待して購入したところ、取り扱われている情報の質・量ともに大変満足のいく本でした。そこで、今回本書籍について簡単に書評を書こうと思った次第です。 この記事で取り扱う内容 本書籍をオススメする人について(同時に、この本のユースケース) 読むうえで必要な前提知識 各章のポイント、特にCircleCIを理解・実践する上で意識した方がよいと思ったこと オススメの読み方 この記事では取り扱わない内容 具体的なconfig.ymlの記述や各種設定の仕方について(書籍には書かれています) 誰向けの本か CI/CD周りの知識が欲しい CIrcleCIをまだ使っていないが使ってみたい CircleCIを使うかはわからないが、とりあえず機能を知ったうえで検討したい C
TL;DR ECS の RunTask を実行でマイグレーション込みのデプロイが自動化できた いきなりですが 2 ヶ月前ぐらいまで下記の手順でデプロイを行っていました @ローカル コンテナ作成 (docker build) コンテナにタグづけ (docker tag) ECR のコンテナイメージを更新 (docker push) AWS の RDS にマイグレーション実行 (rails db:migrate) AWS コンソール画面で ECS の手動でリビジョン更新 サービスでタスク定義の更新 新旧タスクが入れ替わるのを見守る 現在は・・・ デプロイブランチ(production や statging)にプッシュ slack で結果を待つ 一番の壁、マイグレーション実行 実は、今回のこの記事でお伝えしたいのは前述の中でも 「4 の RDS のマイグレーション」の部分です ローカルで実行して
CircleCI / CircleCI Orbとは? CircleCIとは、継続的インテグレーション(CI)/継続的デリバリー(CD)をSaaS形式で提供するサービスです。ソースコードを修正すると、自動でビルドしてデプロイするという一連の流れをサポートします。同種のツールに、最も有名なツールの一つであるJenkinsがあります。 CircleCI Orbは、CircleCI中の設定を流用するための仕組みです。Orbをうまく活用すると、各プロジェクトごとに記述する必要があった同種の設定を劇的に減らすことができます。Orbは公式で提供されているものもありますが、独自にOrbを作成して公開したり、公開されたOrbを各ユーザーが利用できたりもします。 Typetalk Orbとは? Typetalk Orbは、今回私たちが作成したOrbです。CircleCIからTypetalkにメッセージを送信す
こんにちは!オールアバウトでSRE(サイト信頼性エンジニア)をしている@numa_numaです。 さて今回は、当社のクラウドネイティブな開発の加速・さらなるDevOps推進を目指し、デプロイツールにCircleCIを採用し移行しましたので、そのお話をご紹介したいと思います。 以前に、2016年くらいまでのオールアバウトでのリリースの歴史をご紹介しております。 興味のある方はぜひご参照ください。 allabout-tech.hatenablog.com 当社では2016〜2017年頃にGKE(Google Kubernetes Engine)を利用しはじめ、Dockerコンテナで本番運用を行うノウハウを確立しました。 また、その時採用したのがWerckerというCIツールでした。 allabout-tech.hatenablog.com クラウド移行とその後のリリースの変遷 オールアバウトで
概要 christina04.hatenablog.com でCircleCIの使い方を説明しましたが、2.1からconfigの記述がよりシンプルになりましたので説明します。 環境 CircleCI 2.1 設定 CircleCI側 まずはAdvanced Settingsで2.1の機能が使えるようにします。 古いプロジェクトだとOFFのままなのでONにしてください。新しいプロジェクトだと最初からONになっています。 configの修正 before 以前の記事のconfigは以下の感じでした。 yamlのエイリアスを使った共通化 defaults: &defaults working_directory: /go/src/github.com/jun06t/sample-api environment: TZ: "/usr/share/zoneinfo/Asia/Tokyo" jobs
9月14日に技術評論社のWEB+DB PRESS Plusシリーズから『CircleCI実践入門──CI/CDがもたらす開発速度と品質の両立』が発売されます。 執筆終盤にコロナ禍の影響を多大に受け、ギリギリまで完成するかどうか瀬戸際の状況が続きましたが、なんとか無事に完成を迎え出版することができて、みなさまのお手元に届けられることができたことを本当に嬉しく思います。 なお、今回は3冊目にして初の共著、初のエディタ以外の本になりましたが、くくりで言えば、またもや開発環境ということで、どうやら僕は開発環境(そして最適化)が本当に好きなのだということを、今更ながらようやく自覚しました。 なぜ本書を執筆したのか # 本書を執筆することになったきっかけはWEB+DB PRESS Vol.107でCircleCI特集を寄稿したのがきっかけです。自身3度目の寄稿となりましたが、お陰様で読者から高評価を頂
はじめに 先日、Capistranoを使って自作のポートフォリオをAWSにデプロイしたので、CircleCIと組み合わせて自動デプロイしてみました。 筆者はプログラミング学習を始めて4ヶ月ぐらいですが、一週間ほどで実装できました。 ポートフォリオにCircleCI/CDを組み込んでみたい!という方の参考になれば嬉しいです。 ご指摘等あれば、コメントいただければ幸いです。 前提 Railsアプリ作成済 CIrcleCIによる自動テストを導入済 Capistranoを使ってAWSにデプロイ済 CircleCIとCapistranoに関しては別の記事でまとめています。 CircleCIでSystemSpec(RSpec)とRubocopを走らせる) Capistrano + AWS(EC2) + Rails で簡単デプロイ 手順 複数の設定をする必要があるので、順を追ってやっていきましょう。 C
技術評論社様から本日 9/14 発売の『CircleCI実践入門』を、著者の一人である金さんから献本いただきました。一通り読んだので、印象に残ったところなどをまとめておきます。 CircleCI実践入門──CI/CDがもたらす開発速度と品質の両立 (WEB+DB PRESS plus) 作者:浦井 誠人,大竹 智也,金 洋国発売日: 2020/09/14メディア: 単行本(ソフトカバー) 本の概要 『CircleCI実践入門』は、WEB+DB PRESS Vol.107 で特集『実践CircleCI』を執筆した浦井さん(@uraway_)と大竹さん(@tomoyaton)に加え、CircleCI 社 SRE の金さん(@kimhirokuni)の 3 名で執筆されています。 CircleCI の使い方の解説はもちろんのこと、CI/CD とはなにか、近年のアジャイルや DevOps の文脈の
テックブログの更新通知をRSSから取得してDiscordに投稿するbotをGCPで作ったので解説します! GCP・Terraformをしっかり触ったのはこれが初めてなので、ご指摘などあればぜひコメントいただきたいです。 botの動作イメージ ソースコード(★ください!) 全体像 アーキテクチャ デプロイフロー 一応上記のアーキテクチャの元ファイル 手順 1. リポジトリの作成 手元にリポジトリを作成します。↓をフォークしても良いと思います(★ください!) また、GitHubリポジトリをCircleCIに接続しておいてください。この時点のビルドは失敗しても大丈夫です。 2. プロジェクトの作成 メニューからプロジェクトを作成します。 3. サービスアカウントの作成 IAMからサービスアカウントを作成します。 権限はとりあえずプロジェクト編集者、としています。本当は利用するリソースにしぼった方
こんにちは。Garoonチームの杉山(@oogFranz)です。 以前 #PHPerKaigi 2020 にて、「静的解析の育て方」というタイトルで発表いたしました。この発表ではレガシープロダクトにおいて静的解析が有効であることと、「育てる」という比喩表現で静的解析のルールを強くしていく戦略についてお話ししました。 発表後のAsk the Speakerでは様々な方から講演へのフィードバックをいただき、特に既存のプロダクトに静的解析の導入・運用する大変さやその改善方法に関して議論を深めることができました。議論に参加いただいた皆様大変ありがとうございました。 議論の中でルールを自動的に強くしていく方法のヒントをいただきました。そのヒントを元にCircleCIで勝手に強くなる静的解析が実現ができたので紹介したいと思います。 勝手に育つ静的解析の作り方 通常、レガシープロダクトにおいて静的解析を
フロントエンドエンジニアの小林です。今日はスペースマーケットのフロントエンド環境のdeploy基盤をご紹介します。 背景 スペースマーケットのフロントエンドアプリケーションはNode.jsで書かれており、ECS上で動いてします。ここ最近はSwiftやkotlinを書いていたアプリエンジニアがメインでフロントエンドのコードを書くようになりました。 deployはdocker image bulidサーバに入って下記コマンドを実行する方式でした。 1. 最新コードの取得 2. docker image build 3. ECRにdocker imageをpush 4. ecs-deployを使ってECSを更新 してECSに反映する方式でした。 課題 アプリエンジニアにサーバにsshしてdeployしてもらおうと思っていたのですが、サーバの知識やdeployの知識など、自分の中にしかない属人化し
こんにちは、メルカリの自動化&品質保証グループ(Automation & QA Group:通称AQA)の 根本 征 です。 私は普段、テスト自動化・CI / CD改善・その他社内の生産性を上げるための自動化を行っています。 今回はiOSのUIテスト自動化について、最近の改善をまとめてご紹介したいと思います。 ざっくり言うと HTMLレポートに出力し、失敗原因を見やすくするようにしました リトライ実行するためのfastlaneプラグインを作りました テスト実行環境をJenkinsからCircleCIに移行しました Slack Commandを使って、簡単に実行できるようにしました これまでのiOSのUIテスト自動化 AQA(旧QA-SET)では去年から、JP版アプリ(iOS / Android)のUIテスト自動化に取り組んでいます。 去年のMercari Tech Conf 2017では、
この記事は、Mercari Bold Challenge Month の 7 日目の記事です。 こんにちは。メルペイの Android チームでネット決済 (オンラインでの決済手段) の機能開発や開発基盤の改善に取り組んでいる @KeithYokoma です。 メルペイの Android チームでは CI (Continuous Integration) ツールとして Bitrise と CircleCI を使っています。それぞれを使い分けており、日々の開発フローの中でリポジトリに変更をプッシュする場面で CircleCI を、それ以外に開発に必要な成果物の生成 (たとえば API の定義から各言語用のライブラリを吐き出す) 場面で Bitrise を利用しています。 この記事では、Android プロジェクトのビルドにあたって CircleCI をどのように活用しているか、またどんな工夫
こんにちは、メルカリの自動化&品質保証グループ(Automation & QA Group:通称AQA)で、自動化をぶりぶりしている tadashi0713 です。 私は普段、テスト自動化・CI(継続的インテグレーション) / CD(継続的デリバリー)改善・その他社内の生産性を上げるための自動化を行っています。 今回は、最近行なっている Android CIの高速化・改善 についてご紹介したいと思います。 ◆ これまでのAndroid CI / CD 去年、私はJP版メルカリAndroidのCI / CDサービスをCircleCI1.0からBitriseに移行しました。 Bitrise – Mobile Continuous Integration and Delivery Android Test Night #1 というイベントでもLTをしましたので、そちらのスライドも参考にしていただ
CircleCIのManual Approval機能を触ってみました。 設定方法と注意点について記載しておきます。 公式サイトはこちら。 https://circleci.com/docs/2.0/workflows/#holding-a-workflow-for-a-manual-approval 設定ファイルの記述方法 大まかな枠組みを記述しました。 version: 2 jobs: build: # buildの処理 deploy: # deployの処理 workflows: version: 2 build_and_deploy: jobs: - build - approval-deploy: type: approval - deploy: requires: - approval-deploy type: approval type: approval を記述すると、そのj
「CI/CD戦国時代」と言われる今日この頃、弊社でも案件によって CircleCI を使用してきたのですが、見よう見まねでよく分からないまま使用してきたため、ちゃんと勉強したいなと思っていました。 CircleCI Japan で 入門ハンズオンセミナーを定期的に行っているということで参加してきました。 会場は CircleCI Japan 東京オフィス が入居している WeWork アイスバーグ でした ハンズオンの内容は以下の通りで Circle CI の基本からビルドの仕組み、高速化するためのテクニックなど、順序立てて学ぶことができました。これから Circle CI を使っていこうという方には是非オススメしたい内容です。 Circle CI Hands-on for Developer ハンズオンの内容 Circle CI を使っていくと `.circleci/config.yml
ごきげんよう、CI日和ですね。技術部の谷脇です。 先日Jenkinsでテストを実行したり、Slack Botからトリガーして実行していた業務ワークフローの必要なタスクをえいやっとCircleCIに持っていったのでその話をします。 長いので要約すると ヘビーにJenkins使ってたのを全部CircleCIに持っていきました。自動テストとSlack Botからトリガーされるジョブです CircleCI 2.1の機能をつかって設定を書きました。いい感じです テスト以外でBotからキックするようなジョブはそのままだと難しいので、プレビューリリースのCircleCI API v2を使いました。必見です 自前運用のJenkinsさんお疲れ様でした テストを継続的に動かす環境といえばJenkinsです。カヤックでも多くのプロジェクトでテストや、その他様々なタスクを実行する環境として利用されてきました。
CircleCI 2.0 には、環境変数の設定方法がいろいろあります。同じ環境変数を別の方法で設定した場合は、どれが優先されるのでしょうか?設定の種類と優先される環境変数についてまとめます。 メモ的な内容なので、間違っていたら指摘してもらえると助かります。 環境変数の設定方法CircleCI 2.0 の環境変数を設定方法は、いろいろなレベルで提供されています。どのレベルで環境変数を設定すれば良いのか?同じ環境変数でもテスト、デプロイなどの実行するジョブ毎に異なる値を設定したい事はよくあります。環境変数を設定したレベルによって、上書きされるのか?されないのか?把握しておく必要があります。 まず、それらを把握する前に、環境変数の設定方法のバリエーションについて理解しておきましょう。 大きくは、以下の6つのレベルで環境変数を設定することができます。 Global Environment Vari
分類については独断です。また、こつこつ「ひとこと説明」を追加していく予定です。 Selenium関連については Awesome Selenium : 素晴しい Selenium ライブラリの数々 - Qiita が参考になります。 FAQ なんで***を除いているのか 恣意的に除いていることはないので、編集リクエストかコメントをください GUIテスト自動化ツール モバイル・デスクトップアプリ・ブラウザのうち複数の対象のGUIを操作できるテスト自動化ツール。 有料 インストール型 UFT One QTP(Quick Test Professional)→UFT(Unified Functional Testing)→UFT One Silk Test UFT Oneと同じくMicroFocus製で、UFT Oneのほうがメジャーな印象(筆者主観) Ranorex TestComplete W
[CircleCI][AWS][ECR][private Docker images]独自コンテナを使ってCI回す!!投稿者: adachin 投稿日: 2018/11/062018/11/06 今回独自コンテナでCI回せないのか(ECR)と思いきや、 CircleCI 2.0で実現できたので今回試してみました。 ■AWS EC2 Container Registry (ECR) Support https://circleci.com/blog/aws-ecr-auth-support/ CircleCIのDeveloperである Ricardo N Felicianoさんは以下のように答えています。 (どう見てもラッパー) TL:DR; CircleCI 2.0 now supports authenticating to AWS EC2 Container Registry (ECR
はじめに CircleCIを使ってSystemSpec(RSpec)とRubocopを走らせてみました。 基礎的な学習から実際に使ったソースコードをまとめたので参考になれば幸いです。 基礎学習 教材: 入門ガイド - CircleCI いまさらだけどCircleCIに入門したので分かりやすくまとめてみた 基本的な使い方を知るために公式で用意されている入門ガイド - CircleCIをやりました。 手を動かしながら学習できて、30分ぐらいで終わるのでおすすめです。 次に、いまさらだけどCircleCIに入門したので分かりやすくまとめてみたを読みました。 こちらの記事は、CircleCIについてかなり詳細に説明されています。 最初にざっくり読んだ後、わからないことがあったらこの記事を読み直していました。 CircleCIの実装 参考文献 公式のCircleCI-Public/circleci-
準備 eksのkubectlをCircleCIから叩くので、準備として以下の環境変数をCircleCIのプロジェクトセッティングで設定しておく。 ・AWS_ACCESS_KEY_ID ・AWS_SECRET_ACCESS_KEY 可能であれば、以下も環境変数にしておく。 ・AWS_DEFAULT_REGION(リージョン) ・CLUSTER_NAME(クラスタ名) kubectlのインストール1.14.6バージョンを/usr/local/bin/kubectlへインストールしている例 *ただし、もうこれは古い。以下スクリプトではaws-iam-authenticatorをインストールしているが現在のawscliにはeks get-tokenコマンドが含まれているのでaws-iam-authenticatorのインストールは不要となっているようです。 https://docs.aws.ama
CIって? CIはContinuous Integration(継続的インテグレーション)の略です。 継続的インテグレーションとは、ソフトウェア開発手法において、プロジェクトメンバーがそれぞれ開発した結果を頻繁に結合し、定期的にビルドやテストを行うことである。問題点を早期に摘出することができ、効率的な開発に役立つ。 不具合は早く見つける方が対策費用が抑えられるため、ソフトウェアのビルドを頻繁に行うのが好ましく、ビルド結果が正しいことを検証するためにすぐにテストを行う。このような手続きは出来る限り自動化するのが好ましい。そのため、継続的インテグレーションを実践するためには、結合のためのビルドとテストの自動化のために「CIサーバー」などと呼ばれる専用コンピュータを用意することが推奨されている。 ちなみに、ソフトウェア開発手法のひとつである「エクストリームプログラミング」では、継続的インテグレー
初心者でも分かりやすい関数とテスト、そしてCircleCIの設定ファイルで解説していきます。 今回のファイル構成はこのようになっています。 . ├── requirements.txt ├── src │ └── a.py └── tests ├── __init__.py └── test_a.py まずはじめに、簡単に数値計算する関数を書きます。 src/a.py def b(a, b): return a * b 次に、テストをする関数を書きます。 test_a.py from src.a import b def test_b(): assert 2 == b(1, 2) ようやくお待ちかね、CIrcleCIの設定ファイルを書きましょう。コメントアウトで簡単な説明を書いたので、わかりやすいかと思います。 これが今回の設定ファイルです。 詳しくはCircleCIのサイトを見てくだ
「misspell」は,Go で実装された typo 検出ライブラリで,手軽に実行できるので,英語のドキュメントに対してよく使っている.例えば,以下のようにワンライナーで "World" の typo を検知することができる. $ echo 'Hello Worls!' | misspell stdin:1:6: "Worls" is a misspelling of "World" 機能は他にもいろいろある.ディレクトリに対して実行することができたり,オートコレクトができたり,検知した結果を CSV 形式で出力することもできる.また,実際に使うときに必要になる除外リストの指定もできる.もし Go の lint で gometalinter を使っている場合,gometalinter から misspell を呼び出すこともできる. github.com CircleCI + misspe
はじめまして。10月に入社しました、エンジニアのsugitaです。 こういう記事を書くときにテーマ設定で時間をかけてしまう性格なので、技術的なことなら何でも書いていいと言われて逆に迷ってしまいましたが、今回はCIを使って開発しているときの小ネタを紹介します。 TL;DR CIサービスのビルドを無駄に回さないようにする方法を紹介します。 コミットメッセージに[ci skip]を含める commit.templateの設定 .git/info/excludeの設定 背景 私はコードを書くとき、細かい単位でコミットしてremoteへのpushも頻繁にするほうなのですが、今のプロジェクトでは、GitHubレポジトリへのpushをフックとしてCIのビルドが動く設定になっています。そのため、pushするたびにビルドが動いてしまいます。 本当はpull requestのレビュー前だけ動いて、自動テストと
参考 https://circleci.com/docs/2.0/custom-images/ やりかた Dockerfileを作る ビルドしてDockerHubにアップロード 「.circleci/config.yml」にイメージを設定 実際にやってみる 1. Dockerfileを作る どんな言語でも良いですが、とりあえずGoでやってみます。 今回は「AWSで運用しているアプリで、CircleCI経由で自動デプロイをする」という 体のアプリを想定して書いてみました。 FROM golang:1.9 ADD . /go/src/github.com/your-repository WORKDIR /go/src/github.com/your-repository ENV DEBIAN_FRONTEND noninteractive # depを使っている場合 RUN go get -u
サービスを新規開発する際に、フロントの開発で必要なAPIをスタブサーバーとしてサクッと作成できれば、と思ったことはないでしょうか? 今回は、swagger-codegenを使ってAPIスキーマからスタブサーバーのコードを自動生成する方法をご紹介します。 スキーマ作成 まず、SwaggerのAPIスキーマをyamlで作成していきます。 今回は公式のサンプルを使用します。 openapi: "3.0.0" info: version: 1.0.0 title: Swagger Petstore license: name: MIT servers: - url: http://petstore.swagger.io/v1 paths: /pets: get: summary: List all pets operationId: listPets tags: - pets parameters
CircleCIでAWSに対するCI/CDパイプラインを組むとき、AWS CLI (v2)を使ってみました。 CircleCIからAWSにデプロイするCI/CDを組んでいます。 その際に使っているAWS CLI(v1)をAWS CLI(v2)に変えてみようとなりました。 そこで、CircleCIでAWS CLI(v2)を簡単に使ってみました。本記事では、CircleCIでaws s3 lsコマンドを実行してバケット一覧を取得します。 本記事よりも、下記のほうが簡単に導入できます。 おすすめの方 CircleCIからAWSにアクセスしたい方(AssumeRoleを使う) CircleCIでAWS CLI(v2)を使いたい方 事前準備 アクセスキーが流出しても被害が最小限になるIAMユーザを作成して使います。 CircleCIで使うIAMユーザとIAMロールを作成 CloudFormation
はじめに 本記事はCircleCIを利用して、PHPUnitでCIの自動化を実施することを目的とし、以下の図をワンシーケンス通す備忘録とする。 GitHubのリポジトリはこちら 環境 macOS Catalina:10.15.5(19F101) php 7.4.9 composer 1.10.10 PHPUnit 9.3.7 目次 前提条件 CircleCIを登録する GitHubでCI連携用のリポジトリを作る composerを取得する composerでPHPUnitをインストールする PHPUnitで手動実行するテストファイルを作成する PHPUnitを手動実行する CircleCIとGitHubで作成したリポジトリを連携する CircleCIでPHPUnitを動作させるためにGitHubにTestコードを修正してプッシュしてみる おまけ・・・config.yml作成時につまづいた点
はじめに 弊社では、ソフトウェアの品質を高めるために、継続的な自動テスト・E2Eテストを実行しています。 その際、CircleCIというSaaSのCIサービスを利用しています。 また、AWSを利用しているサービスでは、開発用のAWSアカウントと本番用のAWSアカウントを分けて利用しています。 開発用アカウントでは、エンジニアが比較的自由に実験・開発を進めつつ、本番はセキュリティガチガチで守っていこうという方針です。 そのため、サービスの開発環境は開発用AWSアカウントに配置し、本番環境は本番用AWSアカウントに配置したいという要望が生まれます。 そのような複数AWSアカウントをCircleCIでどのように扱えばよいのかという記事です。 結論 CircleCIのContexts機能が便利。 結果は以上です。 その過程で試した方法があるのでまとめておきます。 方法1: ProjectのAWS
CircleCIでテストを実行しましたが、ファイルが見つからないエラーが起きたので解決法をまとめました。 とてもシンプルなエラーです。 結論から言うと、指定したファイルがリポジトリ直下に無かった事が原因でした。 1. 前提 CircleCIと連携させたときに自動で作られたconfig.ymlをそのまま実行しました。 2. エラー内容 エラー1:Restoring cache error computing cache key: template: cacheKey:1:19: executing "cacheKey" at <checksum "composer.json">: error calling checksum: open /home/circleci/project/composer.json: no such file or directory #!/bin/bash -e
概要この記事はCircleCI Advent Calendar 2020の9日目の記事です。 スタディスト開発部の笹木です。今年に入ってからは開発基盤チームという位置づけで、開発環境の整備や、CI含むテスト自動化周りを担当しています。 本記事では、RSpecのテスト実行時間を半減させ、CircleCIの消費クレジットを大幅削減した取り組みについてご紹介します。(消費クレジットについては後述します) 改善の結果が以下のグラフで、定点観測しているジョブの消費クレジットが、ピーク時の半分にまで落とせていることがわかります。もちろんテストコードを減らすといった本末転倒なことはしていません。 RSpecジョブ実行時の、CircleCI消費クレジットを時系列で表したグラフ実施した取り組みは以下の通りです。 CircleCIの料金体系を知る問題を認識するCircleCIの利用状況を可視化するRSpecの
Effective AppSync 〜 Serverless Framework を使用した AppSync の実践的な開発方法とテスト戦略 〜JavaScriptAWSGraphQLserverlessAppSync AppSync は AWS が提供するマネージド GraphQL サービスです。Amplify と統合することにより、スキーマさえ宣言すれば GraphQL の Query, Mutation, Subscription コードを自動生成します。バックエンド GraphQL エンドポイントやデータソースを構築し、即座に動く環境が手に入ります。 こちら は過去の記事ですが、リアルタイム掲示板アプリの主要機能を 15 分で作った例を紹介しています。 PoC のように使用する分には Amplify CLI を使用してサクッと開発してしまう方法が効果的ですが、実際のプロダクト開発で
これは何? AndroidアプリのCI(継続的インテグレーション)環境を作って運用をしたときの経験を書き出したものです。 2019年7月時点でのものになりますので、時間経過によっては動作しない可能性もありますので予めご了承ください。 更新履歴 2019/7/18 関連記事「Espresso, UI AutomatorでAndroidのUI Testを書く」を公開 2019/7/16 関連記事「Firebase Test LabでUI Testを実行する」を公開 2019/7/12 関連記事「AndroidアプリでのUnit Testについての解説」を公開 2019/7/7 DeployGateのローカル環境からの配信を追記 2019/7/6 公開 概要 AndroidアプリのGitHubへのPushから、CircleCIでビルド、単体テスト、UIテスト(UI Animator & Espr
私は現在CircleCIを使って自動テストの実行、検証環境のデプロイ、本番環境のデプロイを自動化しています。 babel などでビルドしたファイルをサーバーから配信する必要があり、後続のJobにビルド結果を共有する必要が出てきました。 それをCircleCIの機能を使って実現したたため記事としてまとめます。 CircleCIのWorkflow とは CircleCI2.0から追加された機能で、以下のように設定したJobを組み合わせて処理を実行する事ができます。 workflow 設定自体はyaml形式で記述することができます version: 2.1 jobs: test: docker: - image: circleci/node steps: - run: name: example command: | echo 'test' build: docker: - image: cir
2020年2月における note Androidアプリの開発現場について、ざっと書きました。 「あれについて聞きたい」、「これについて聞きたい」など質問・疑問などあれば、ぜひ記事にコメントしていただけると嬉しいです。 2019年1月の状況は以下の記事を参照してください。 開発体制Androidエンジニア 1名(私) デザイナー 1名(iOSアプリのデザイナーも含めると2名) QA 1名 どんな改善・施策を行うかは、アプリエンジニアが率先して考えて決めています。主に改善・施策を行うことで、アプリでの体験が向上しそうなものを優先的に実装しています。実装工数を意識することも大事ですが、工数がかかっても体験が向上させることを優先しています。 現在 私がAndroidアプリ開発以外の仕事も担当しているため、アプリ開発に使っている時間をとても限られています。限られた時間の中で、何を今やるべきか?をしっ
DockerでRailsチュートリアルのローカル開発環境構築 - RSpec導入 & CircleCIでHerokuデプロイ-Rails初心者CircleCIDockerRailsチュートリアル はじめに 前回の記事 DockerでRailsチュートリアルのローカル開発環境構築(Rails 6 + PostgreSQL + Webpack) - Qiita 個人開発アプリ mdClip <オンラインmarkdownエディタ> 前回の記事に続いて、Railsチュートリアルのローカル開発環境構築を行っていきます。 Railsチュートリアル最新版(2020.8.6現在)に対応のRails 6 Dockerを使用し、開発環境の再現が可能 なるべくローカル環境にインストールしない Docker環境で操作する場合はターミナルのコマンドを適宜
背景 Orbの知識ではなく、つまづいた時にソースやアップデートの情報をどう調べたかという初心者の記録です。 こちらのドキュメント(Language Guide: Ruby - CircleCI)を参考に手元でCircleCIを動かして勉強していた際、下記のような簡単な設定で実行したところ、エラーログが吐かれました。 version: 2.1 orbs: ruby: circleci/ruby@1.1.0 node: circleci/node@3.0.1 # 参考にしたサンプルではバージョンが"@2" jobs: build: docker: - image: cimg/ruby:2.5-node steps: - checkout - ruby/install-deps - node/install-packages: pkg-manager: yarn cache-key: "yarn
はじめにiOS/Androidの自動テストを実行する環境として端末(実機やエミュレーター)を利用したいケースがあるかと思います。 自動テストは手元だけの実行でなく、CI/CDサービスを通して継続的に実行できるようにしておくことが望ましいです。 その場合、CI/CDサービスからどのように端末に対して自動テストを実行すれば良いでしょうか。 最近は、クラウドのCI/CDサービス(BitriseやCircleCIなど)の利用が増えています。 そのため、CI/CDサービスを通してテストを実行する場合、デバイスファームを利用することになるかと思います。 そこで、本稿ではCI/CDサービスを通してデバイスファームで自動テストを実行した場合について、主に次の2つのことについて書いていきます。 - デバイスファームが出力するテスト結果 - CI/CDサービスによるテスト結果の表示 まず、これらについて書く前
Cybozu Tech Meetup #4 15年目プロダクトの開発スピードを上げる取り組み - connpass ハッシュタグ :#CybozuTech アーカイブは後日公開。 トークメモ 生産性向上チーム 開発基盤や生産性向上取り組み、CI/CDの整備などを行う。 複数のチームが一つの Jenkins を利用。 Jenkins みんなで触ると壊れたり、誰もメンテできない状態へ。 整備専用の人がいないので、工数を避けない問題が発生。 生産性の改善は必要だと分かっていても、チーム全体で取り組むにはハードルが高い。 問題意識を持つ人がいても、それだけでは改善は難しい。 通常のプロダクト業務と、改善業務を兼務をして両方をうまくつなぐ。 結果的には生産性向上チームの深いサポートを受けられるようにする。 QA 生産性向上の改善コストや開発費全体でみてどのぐらいの割合でしょうか?コストをかけても改善
概要 コーポレートページや、ランディングページなどの静的サイトを自動デプロイする設定を行いました。 AWSの基本設定に追加して、CircleCIの設定ファイルを1つだけ追加するのみで出来ます。 一般的な構成のはずなのに、設定ファイルが出回っていなかったので作りました。 前提となるサービス構成 CDPのCache Distributionパターンで静的サイトを運用している場合。 S3(Public Hosting) -> CloudFront (AWS Certificate ManagerでSSL配信) やり方 設定方法 CircleCI CircleCIの管理画面から、github連携を行う。 以下の設定を.circleci/config.ymlに入れる。 括弧内は、自分の環境に合わせる。 S3のbucket名 CloudFrontのID CircleCIの環境変数にAWSのアクセスキー
はじめに 「 CI/CD ぐらい一人でできるようになりたい!」と思い、実際にやってみた備忘録になります。 流れ CI/CD 対象のプロジェクトの作成 CI CD CI/CD の結果を Slack に通知する "流れ" に対応する記事 以下の記事を投稿しました。 vue-cliでプロジェクト作成してあれこれ試してみた(初心者向け) CircleCI 試してみた CircleCI から Firebase Hosting にデプロイするまで CircleCI の Job の結果を Slack に通知する 途中で挫折しないためのポイント 3つ CI/CD 対象のプロジェクトは作り込まない CI と CD の仕組みは分けて作成する 興味のあるサービスを選択する
こんにちは。graphy事業部の遠藤と申します。 今回は、React NativeとCircleCIの組み合わせでCI/CD環境を構築する機会がありましたので、その詳細について記載していきたいと思います。 CIツールの選定 CIツールはCircleCI、Bitrise、TravisCIなどいろいろありますが、調査した結果、大きく以下の理由でCircleCIを選択しました。 ググったときの情報量が圧倒的に多い iOS、Androidアプリのビルド環境に対応している クライアント側・サーバー側共に同じCIツールが使える 費用を安く抑えてスタートできる CI環境の構築中にハマってしまうと、何度もビルドを繰り返すことになって非常に時間がかかってしまいます。 情報量が多いと解決策を見つけやすい為、予算や工数を大きく割けないプロジェクトにとっては、大事なポイントになってくると考えています。 準備 Ci
CircleCi expected type: String, found: Mapping エラー workflow でハマったときの対処方法CircleCI2.0 Error: ERROR IN CONFIG FILE: [#/workflows/dev_workflow] only 1 subschema matches out of 2 1. [#/workflows/dev_workflow/jobs/1] 0 subschemas matched instead of one | 1. [#/workflows/dev_workflow/jobs/1] expected type: String, found: Mapping | | SCHEMA: | | type: string | | INPUT: | | e2e: null | | requires: | | - bu
著者が過去6年間で使ってきた「無料で使える CI サービス」の中から厳選した 13 サービスを一冊にまとめました。 第 I 部では YAML の使用事例とともに1つ1つサービスを紹介します。 第 II 部では各トピックごとに CI サービスを比較検証した内容を紹介します。 セット販売無印版と2020冬(+2021年内のアップデート版)がセットになったバージョンも販売してます。 https://srz-zumix.booth.pm/items/2657500 書籍内容技術同人誌(B5サイズ)92ページ 著者:虎空棘魚 (@srz_zumix) 【目次】 第 I 部 無料で使える CI サービス紹介 第 1 章 無料で使える CI サービス 1.1 無料とは 1.2 本書で紹介する CI サービスの前提条件 1.3 本書で紹介する CI サービス一覧 1.4 著者使用環境紹介 第 2 章 Ap
2019年5月、Visual Studio Code でリモートマシン、コンテナ、Windows Subsystem for Linux (WSL) 上のワークスペースを開くことができるようになる拡張機能群「Remote Development Extension Pack」が紹介されました。 Blog 記事: https://code.visualstudio.com/blogs/2019/05/02/remote-development 公式のドキュメントは Visual Studio Code Remote Development で、以下、そちらを参照しながら VS Code で Docker コンテナ内の開発環境を開けるようになるまでの試行錯誤の顛末です。 環境は以下の通り。 macOS Mojave 10.14.5 Docker Desktop for Mac Version
最近Cicle CIを触る機会があり、これまであまりガッツリconfig書き込んだりする機会がなかったのですが、 仕事でちょと触れる機会がありましたので、そこで学んだことをまとめて共有していこうかと思います。 Github Actionsなんかも最近は使えるようになっているそうで、 そこらへんともちゃんと比較して自分のプロジェクトにどっちがあっているのかというのを比較検討した方が 良いかとは思ったのですが、すでにCircle CI を使って現状にすごく不満があるとかではないのと自分自身 あまりAPIとフロントがちゃんとあるプロジェクトでCI構築したことがなかったので、まぁまずはメジャーな C…
問題 ローカルでは問題なくパスするテストが、CircleCIでのRun rspecでエラーとなった。 前回、 .circleci/config.ymlへの設定 Dockerfile.devへの設定 docker-compose.ci.ymlへの設定 といった設定を行った、こちらの続き。 CircleCI管理画面より設定 Settings >user_name >app_name > Environment Variables HEROKU_API_KEY RAILS_MASTER_KEY を追加 デプロイされたアプリの確認 HerokuアプリのURLは、CircleCIの、heroku_deployの、 heroku_deployの部分をクリックして、 実行項目の中の、Deployの中の下の方にある。 現在の環境では、CircleCIでデプロイが完了するたびに、新しいアプリがheroku上
こんにちは、CX事業本部の若槻です。 現在、CI/CDサービスCircleCIでは新しいユーザーインターフェイス(新UI)が導入されつつあります。 Introducing our redesigned UI: built for increased user productivity そこで今回はCircleCIのドキュメントを参考にしつつ、この新UIからHello Worldをしてみました。 CircleCIのサインアップ まず、ドキュメント[CircleCI を始める]をもとにCircleCIのサインアップを行います。連携させるVCSはGitHubです。 ユーザー登録ページにアクセスします。[GitHun でログイン]をクリックします。 CircleCIに連携するGitHubアカウントへのサインインを求められます。ID・パスワードを入力し[Sign in]をクリックして認証を行います。
2020-04-30社内勉強会 TechLunch でジョブメドレーでの CircleCI の活用と改善について発表しましたこんにちは、メドレープロダクト開発室 エンジニアの岸田です。 先日、社内勉強会 TechLunch にて、弊社の提供する医療介護分野の人材プラットフォーム「ジョブメドレー」の開発で利用している CircleCI での CI/CD についての取り組みを発表しましたので、紹介させていただきたいと思います。 ジョブメドレーの開発で CircleCI をどのように利用しているかジョブメドレーの開発では、主に次の 2 つを CircleCI を用いて行なっています。 ユニットテスト・構文チェックデプロイデプロイに関しては、ECS 環境と EC2 環境への 2 通りのデプロイを CircleCI を利用して行なっています。 そのため CircleCI の Workflow は「ユ
初心者でもできる! ECS × ECR × CircleCIでRailsアプリケーションをコンテナデプロイRailsCircleCIDockerECSECR 前書き ECSのクラスターは起動タイプにFargateとEC2がありますが、今回は使い慣れているEC2を使います。 本記事はAWSの環境構築は全てマネジメントコンソールで行ってます。 (Terraformで1発でやりたいような人は他の記事を見るか、一応GitHubにTerraformでコード化もしているのでそちらを参考に) docker-composeは以下のような構成です Nginxのコンテナ Railsのコンテナ MySQLのコンテナ pumaとnginxをsocket通信させます。 ※ 今回RailsはAPIモードで作成しています。 ※ フロント部分がないためNginxはあまり意味がないかもしれませんが、練習のため 筆者のTwi
はじめに 普段はJenkinsを使っていますが、勉強のためCircleCI 2.1を導入しましたので、手順をまとめておきます。 驚くほど簡単に導入(ビルドまで)できました。 CircleCIとは circleci.com 継続的インテグレーション(CI) サービスの1つです。 CIとはビルド、テスト、デリバリーというプロセスを自動化して信頼性の高いソフトウェアを開発するための手法で、他にはJenkinsが有名です。 Jenkinsは自前でサーバーを用意する必要がありますが、CircleCIはクラウドサービス*1ですので専用のサーバーを用意しなくても構築できます。 (JenkinsとCircleCIは得意とする部分が違うので両方のメリット・デメリットを把握して開発に合う方を選ぶと良いと思います。) 無料プランもあるので、個人で開発する場合でも手軽に開始することが出来ます。 circleci.
はじめに 今度入社する会社では、JenkinsでなくCircleCIを使っているということなので、1から勉強した内容を初心者向けにまとめました。 また、最新バージョン2.1(2018/12時点)の新機能も本記事では触れています。 ※2019/8/8追記 Slack連携に関する記事も書きました。 SlackでCircleCIからカバレッジレポート通知を受け取る設定手順 ※2020/4/2追記 https://twitter.com/CircleCIJapan/status/1245253320551399424 CircleCIさんより、本記事を紹介いただきました! なお、本記事は初回投稿時(2018/12)の情報がメインのため、ご留意いただきますようお願いします。 前提知識 CI/CDに関する入門レベルの知識 ymlファイルに関する入門レベルの知識 コンテナに関する入門レベルの知識 未学習
EC2の環境構築が一通り終わった(はず)ので、circleCIをまとめていきたいと思います。 CI/CDツールとはなんぞやメモ継続的インテグレーション/継続的デリバリー 継続的な価値提供と継続的なリリースの維持 アプリやインフラ環境のコードのテストを自動化して、常にリリース可能の状態にするのがCI。 リリースまで行うのがCD。 やることや目的はほぼ同じだけど、どこまでやるかで違いが出る。 JenkinsやcircleCI、AWS codeBuildなどがある。 ・イベントトリガーとは 基本的に自動で実行する。 バージョン管理システムの連携(Github)、定時実行、指定した処理が完了したときなど。 試しにビルドしてみる読んでいても、いまいち理解しきれないので実際にやってみようと思います。試しにcircleCI公式のドキュメント通りにやってみます。 リポジトリの作成 新規でリポジトリを作成し
去年の秋から、ずっとお前を使ってみたかったんだよ。 めっちゃ今更CircleCIをいじってみたので備忘録的なものを書くぞ。 最初に、CircleCIのドキュメントは以下。 circleci.com CircleCIとは まずCIってなんだよ、ということにならないために勉強。。。 CIとは、継続的インテグレーション(Continuous Integration)の略。 ソフトウェアを健全な状態に保つことを目的とし、ビルド/テストを常に行うことで問題の発見を迅速に行う開発手法です。 メリットは、というと チーム開発の生産性、効率、満足度が向上します。 コードにおける問題の迅速な発見と解決につながります。 不具合の少ない高品質なプロダクトの提供を実現します。 コードの品質保証に一役買ってくれる開発手法って感じですね。 メリットに、チーム開発の生産性や満足度の向上も挙げられているところを見るとモチ
印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます クラウドインフラ管理などのオープンソースソフトウェア(OSS)群を開発する米HashiCorpは5月27日、日本市場での事業を拡大させると表明した。サイバーセキュリティ分野の「ゼロトラスト」概念に基づく製品展開とパートナーエコシステムの増強により、企業顧客を増加させていく。 同社は、2012年に当時大学生だったMitchell Hashimoto氏とArmon Dadgar氏が創業。現在は約1300人の従業員を抱え、顧客はGlobal 2000に含まれる300社以上という。日本市場では2018年にHashiCorp Japanを設立、ネットワールドやラックなどがパートナーとなりビジネスを展開してきたが、日本法人自体は少人数体制だった。2
AWS dev/cloud alliance japan 2021年05月28日(金) 発表資料 セッション:「CCoE による Terraform を活用した Infrastructure as Code」 内容:Visional グループの CCoE (Cloud Center of Excellence) のチームにおける Infrastructure as Code (IaC) の取り組みについてご紹介します。 CCoE の組織では、 IaC として主に Terraform を利用しており、 Terraform を用いてクラウドの信頼性やチームの生産性を高めるために IaC のプラクティスを取り込んでおります。それらのプラクティスについて、AWS アカウントを運用する観点、及び AWS 組織全体を運用する観点で共有させていただきます。
Testing helps you discover bugs before you release software, enabling you to deliver a high-quality product to your customers. Sometimes, though, tests are flaky and unreliable. What is a flaky test? Flaky tests, also known as flappers, fail to produce accurate and consistent results. These tests may be unreliable because of newly-written code or as a result of external factors. If your tests are
本日より、メモリ最適化された次世代の Amazon EC2 X2gd インスタンスがご利用いただけるようになりました。これらのインスタンスは AWS Nitro システム上に構築されており、AWS が設計した Arm ベースの AWS Graviton2 プロセッサを搭載しています。これらは、現世代の x86 ベースの X1 インスタンスと比較して最大 55% 優れた料金パフォーマンスを提供し、Amazon EC2 のメモリの GiB あたりのコストを最小限に抑えながら vCPU あたり多くのメモリを提供します。X2gd インスタンスのより高いパフォーマンスと追加のメモリにより、お客様はインメモリデータベース (Redis、Memcached)、リレーショナルデータベース (MySQL、PostGreSQL)、Electronic Design Automation (EDA) ワークロー
Laravel+Git+CircleCIの開発環境を構築するための方法(ほとんどコマンドの列挙)です! 前提 Vim, PHP, MySQL, Apache, Composer, Node.js, npmはインストール済みとします。バーチャルホストでの運用を想定しています。var/www/html/ドメイン名/の下にプロジェクトを作ります。 この記事で利用している検証環境の各バージョン $ vim --version VIM - Vi IMproved 8.1 (2018 May 18, compiled Jan 30 2019 13:26:28) $ php -v PHP 7.3.1 (cli) (built: Jan 8 2019 13:55:51) ( NTS ) $ mysql --version mysql Ver 8.0.14 for Linux on x86_64 (MySQ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く