#author("2023-01-11T09:44:47+09:00","default:irrp","irrp") →SRE/DevOps →アジャイル →テスト・品質管理 →IaC(Infrastructure as Code) →[[Git関連]] #contents *概要 [#ue753071] -CI=継続的インテグレーションとは、プログラマがソースコードを変更したら頻繁にリポジトリに登録し、自動でビルドとテストを行うこと。 --テストコードはあらかじめ作成しておく。 --Jenkins や CircleCI などのCIツールを使って自動化する。 -CD=継続的デリバリーとは、テストをパスしたソフトウェアを自動で実稼働環境にリリースできる状態にすること --※継続的デプロイとは、そこからさらにデプロイまでやること -CI/CDパイプラインとは、CI/CDを実践するために必要な一連のステップを自動化したもの --(CI):コーディング→ビルド→インテグレート→テスト→(CD):リリース→デプロイ→オペレート -[[CI/CDを超ざっくり解説!【何となく理解するIT】 - YouTube>https://www.youtube.com/watch?v=TrpmtrXIe-w]] 2020 *一般記事 [#z6046fcf] -[[The Twelve-Factor App (日本語訳)>https://12factor.net/ja/]] 2018 --[[Twelve-Factor Appを噛み砕いてみた - Qiita>https://qiita.com/supreme0110/items/17c58c660137e23ef713]] 2018 -[[Retty の Terraform CI/CD 解体新書 - Retty Tech Blog>https://engineer.retty.me/entry/2022/11/18/130000]] 2022.11 -[[Stages of a CI/CD Pipeline - DEV Community>https://dev.to/pavanbelagatti/stages-of-a-cicd-pipeline-2bmp]] 2022.8 -[[読書メーターのデプロイの流れについて - BOOK☆WALKER Tech Blog>https://developers.bookwalker.jp/entry/2022/07/01/161429]] 2022.6 Pull Requestをmasterブランチにmerge GitHub Actionsで「リリース準備」アクションを実行するとGitHubのレポジトリにtag pushされる tag pushにhookし、CircleCIがイメージを作成してAmazonECRにpushする CircleCIがescpressoを利用して開発環境のECS(Fargate)にデプロイする CircleCIがSlackで開発環境にデプロイされたことを通知する 開発環境で動作確認し、問題なければCircleCI上で本番環境へのデプロイ承認ボタン*1を押す CircleCIがescpressoを利用して本番環境のECS(Fargate)にデプロイする CircleCIがSlackで本番環境にデプロイされたことを通知する -[[ネイティブアプリに対応した CI サービスの料金を比較しました|たかやま>https://blog.zaim.co.jp/n/n63422787985f]] 2022.4 --Bitrise, Codemagic, CircleCI, GitHub Actions -[[デプロイ今昔 - Hatena Developer Blog>https://developer.hatenastaff.com/entry/2020/06/26/150300]] 2020.6 -[[猿でもわかる CI/CD - YouTube>https://www.youtube.com/watch?v=T-lk2cPGI7s]] 2020.5 -[[Azure環境向けCI/CDパイプラインを自動作成できるDevOps Starterが便利すぎた>https://docs.microsoft.com/ja-jp/azure/devops-project/overview]] 2021.10 -[[Infrastructure as Code(IaC)とは?インフラをコードとして管理でき、コスト削減などのメリットも!>https://udemy.benesse.co.jp/development/system/iac.html]] 2021.4 -[[CI/CDのエキスパートが解説:CI/CDとは何か? なぜ今、必要とされるのか?>https://codezine.jp/article/detail/11083]] 2018.9 -[[継続的デリバリ vs 継続的デプロイ>http://www.ryuzee.com/contents/blog/4422]] -[[Cybozu新人研修資料 CI/CD>https://blog.cybozu.io/entry/2021/07/20/100000#CICD]] 2021.7 -[[AWS (ECS + RDS)+ CircleciによるCI/CDの理解(初学者がインプットすべき情報)~用語と概念理解編~>https://qiita.com/sukezane/items/0325b8057492459c702c]] 2019.8 -[[AWS Lambda CI/CD俺的ベストプラクティス>https://sue445.hatenablog.com/entry/2019/08/11/103713]] 2019.8 -[[Continuous Integration@Martin Fowler:http://martinfowler.com/articles/continuousIntegration.html]] *AWS Code [#y00e0972] -CodeDeploy,CodeCommit,CodePipeline,CodeBuild などによるCI/CD -[[よくある質問 - Amazon CodeCommit | AWS>https://aws.amazon.com/jp/codecommit/faqs/]] 2022.12 -[[AWS開発で「CI/CD」を導入するメリットとは? |パーソルプロセス&テクノロジー SSOL事業部|note>https://note.com/ppt_hr/n/n969bff300833]] 2022.11 -[[CI/CD導入に使えるAWSサービス | 株式会社スタイルズ>https://www.stylez.co.jp/columns/aws_services_that_can_be_used_for_cicd_implementation]] 2022.9 -[[社内コードを公開せずに内部で共有する方法 - Qiita>https://qiita.com/hankehly/items/7f2a82300ed1c8d25c3e]] 2022.9 --AWS CodeArtifact, Docker -[[AWS はじめての継続的デリバリーパイプライン(CICD)やってみた - Qiita>https://qiita.com/kangaezaru/items/f104d91da8a575984405]] 2022.8 -[[CodePipelineでアクション間での変数受け渡しをAWS CDKで構築する - 弥生開発者ブログ>https://tech-blog.yayoi-kk.co.jp/entry/2022/08/01/110000]] 2022.8 -[[BacklogのGitにCI/CDを導入する方法(AWS CodePipeline & TypeScript編)>https://locaop.co.jp/tech/backlog-git-aws-code-pipeline]] 2021 -[[CodeStarで簡単なCI/CD環境を検証してみた | DevelopersIO>https://dev.classmethod.jp/articles/codestar-cicd-practice/]] 2022.7 -[[AWS CodeシリーズをAWS Step Functionsで実行し継続的デプロイする - Qiita>https://qiita.com/yoshii0110/items/0eb427cb7331647f2c12]] 2022.6 -[[TerraformのCI/CDパイプラインを実装してみた | DevelopersIO>https://dev.classmethod.jp/articles/implement-cicdpipeline-terraform-202206/]] 2022.6 -[[AWS CodePipeline作成時の確認ポイント – TechHarmony>https://blog.usize-tech.com/checkpoint-of-codepipeline/]] 2022.4 -[[AWS CodeCommit(プライベート Git リポジトリでのコードの保存)| AWS>https://aws.amazon.com/jp/codecommit/]] -[[EC2からCodeCommitを使ったら便利だった | DevelopersIO>https://dev.classmethod.jp/articles/ec2-with-code-commit/]] 2021.12 -[[AWS Code シリーズ要旨 - Qiita>https://qiita.com/Shohei_Miwa/items/c7769332895fc7341dce]] 2021.11 -[[AWS Hands-on for Beginners - AWS Code サービス群を活用して、CI/CD のための構成を構築しよう! | AWS>https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-cicd-2020-reg-event-LP.html?trk=aws_introduction_page]] 2020 -[[AWS Codeシリーズについてハンズオンを試してみた。>https://qiita.com/shitikakei/items/f37a61167f310a00fe8d]] 2021.8 -[[CodeBuild で複数のソースに別々のビルドを実行してみた | DevelopersIO>https://dev.classmethod.jp/articles/i-tried-running-separate-builds-for-multiple-sources-with-codebuild/]] 2023.1 -[[AWS CodeBuildのパブリックビルドの導入 | Amazon Web Services ブログ>https://aws.amazon.com/jp/blogs/news/aws-codebuild%E3%81%AE%E3%83%91%E3%83%96%E3%83%AA%E3%83%83%E3%82%AF%E3%83%93%E3%83%AB%E3%83%89%E3%81%AE%E5%B0%8E%E5%85%A5/]] 2022.3 **Amazon CodeCatalyst [#id2e8677] -[[Amazon CodeCatalystで作るAWS CDKコントリビュート環境のススメ | DevelopersIO>https://dev.classmethod.jp/articles/aws-cdk-development-environment-with-code-catalyst/]] 2022.12 -[[開発チームが必要とするすべてのツールとインフラが5分で手に入る?期待の統合DevOpsサービス「Amazon CodeCatalyst」をご紹介します (DOP206-R1) #reinvent2022 | DevelopersIO>https://dev.classmethod.jp/articles/introduce-code-catalyst-reinvent2022/]] 2022.12 **AWS CodeDeploy [#b6fde242] -[[CodeDeployのVPCエンドポイントが必要なケースを整理してみた | DevelopersIO>https://dev.classmethod.jp/articles/cases-when-needing-codedeploy-endpoint/]] 2022.9 -[[CodeDeployでトラフィックの再ルーティングを指定時間までに実行しないとタイムアウトする | DevelopersIO>https://dev.classmethod.jp/articles/codedeploy-traffic-rerouting-timeout/]] 2022.4 -[[【CI/CDの導入】AWS CodePipeline(CodeCommit、CodeDeploy、Nginx、Auto Scaling、ALB の組み合わせ)を設定してみた - サーバーワークスエンジニアブログ>https://blog.serverworks.co.jp/cicd-codepipeline-nginx-autoscaling-alb]] 2022.4 -[[AWS再入門ブログリレー2022 AWS CodeDeploy 編 | DevelopersIO>https://dev.classmethod.jp/articles/re-introduction-2022-codedeploy/]] 2022.2 *Dagger [#w536f2a7] -[[好きな言語でCI/CDを実装できる!DaggerのNode.js SDKを試してみた! | DevelopersIO>https://dev.classmethod.jp/articles/dagger_nodejs_sdk_get_started/]] 2022.12 -[[Go言語でポータブルなCI/CDパイプラインが定義可能に。「Dagger」がGo SDKを発表 − Publickey>https://www.publickey1.jp/blog/22/gocicddaggergo_sdk.html]] 2022.10 -[[Daggerを使用してCIパイプラインを作成する - Qiita>https://qiita.com/yuua0216/items/d6d52d4ee52c84c77639]] 2022.6 -[[コンテナベースのCI/CDツール「Dagger」を試してみよう - Qiita>https://qiita.com/takumi3488/items/dd34e9c729acca17a7eb]] 2022.4 -[[Docker創始者らが開発、ビルド/テスト/デプロイの自動化をポータブルにするツール「Dagger」登場。そのままローカルでもGitHubでもCircleCIでも実行可能に − Publickey>https://www.publickey1.jp/blog/22/dockerdaggergithubcircleci.html]] 2022.4 *GitHub Actions [#e434e081] →[[Git関連]] -[[GitHub ActionsでAWS ECSを使ったCI/CD環境を構築してみる - APC 技術ブログ>https://techblog.ap-com.co.jp/entry/2022/12/09/161347]] 2022.12 -[[【Unity】GitHub Actions × Game CIでWebGLのCI/CD環境構築(デプロイ先はNetlify) - Qiita>https://qiita.com/OKsaiyowa/items/ac86f1a220652309890e]] 2022.10 -[[Push時はCIのみ、Merge時はCIおよびCDを実行するGitHub Actionsを作る(Workflowの再使用) | DevelopersIO>https://dev.classmethod.jp/articles/create-a-workflow-with-github-actions-that-executes-ci-only-at-the-time-of-push-and-ci-and-cd-when-merging/]] 2022.8 -[[GitHub Actionsって何?触ってみて理解しよう!入門・逆引きリファレンス - Qiita>https://qiita.com/yu-ichiro/items/b50ceb0008edc3c0312e]] 2022.7 -[[Gtihub Actionsでオンプレミス環境のCI/CDを実行する方法 - ISID テックブログ>https://tech.isid.co.jp/entry/2022/07/04/Gtihub_Actions%E3%81%A7%E3%82%AA%E3%83%B3%E3%83%97%E3%83%AC%E3%83%9F%E3%82%B9%E7%92%B0%E5%A2%83%E3%81%AECI/CD%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95]] 2022.7 -[[github actionsのjobを高速にするために取った対策 - Qiita>https://qiita.com/itouoti/items/37e0420b232a1c694288]] 2022.6 --ブランチとの修正差分に影響ある部分だけテストを実行する、というのだけど、影響範囲の見極めは大丈夫なのか? -[[GitHub ActionsでEC2インスタンスの自動停止をするようにした - Qiita>https://qiita.com/ohakutsu/items/71822981ba8e14cfdd8b]] 2022.6 -[[GitHub Actions 逆引きリファレンス | gkzz.dev>https://gkzz.dev/posts/github-actions-tips/]] 2022.5 -[[GitHub ActionsとCypressを使って、テスト自動化環境をゼロから構築する - Qiita>https://qiita.com/EIKINAKAYAMA/items/e0b9550152c19e229263]] 2022.5 -[[GitHub Actions入門 ── ワークフローの基本的な構造からOICDによる外部サービス認証まで - エンジニアHub|Webエンジニアのキャリアを考える!>https://eh-career.com/engineerhub/entry/2022/05/20/093000]] 2022.5 -[[Push時はCIのみ、Merge時はCIおよびCDを実行するGitHub Actionsを作る(Workflowの再使用) | DevelopersIO>https://dev.classmethod.jp/articles/create-a-workflow-with-github-actions-that-executes-ci-only-at-the-time-of-push-and-ci-and-cd-when-merging/]] 2022.4 -[[GitHub Actionsでsetup-node actionを使って依存関係をキャッシュする | DevelopersIO>https://dev.classmethod.jp/articles/caching-dependencies-in-workflow-execution-on-github-actions/]] 2022.4 -[[GitHub Actions が OpenID Connect をサポートし、デプロイがよりセキュアに出来るようになりました! - サーバーワークスエンジニアブログ>https://blog.serverworks.co.jp/github-actions-oidc]] 2021.11 -[[GitHubがCI/CDサービスを標準サポートへ>https://jp.techcrunch.com/2019/08/09/2019-08-08-github-actions-is-now-a-ci-cd-service/]] 2019.8 -[[Github Actionsが使えるようになったので使ってみる>https://qiita.com/1915keke/items/8b18097d2981e88eca93]] 2019.8 -[[GitHubの新機能「GitHub Actions」でワークフローを自動化しよう>https://codezine.jp/article/detail/11450]] 2019.4 *GitLab [#w8f342a0] -[[GitLab で AWS Lambda を自動デプロイしてみる - RAKUS Developers Blog | ラクス エンジニアブログ>https://tech-blog.rakus.co.jp/entry/20230105/gitlabci]] 2023.1 -[[CI/CDのスクリプトを開発/テスト/不具合対応しやすくする方法を考えてみる - Qiita>https://qiita.com/dtsu/items/9d5924caae8eb3487c68]] 2022.12 -[[GitLabCI/CD入門 ~とりあえず動かす - Qiita>https://qiita.com/Jazuma/items/fcf87e5b222314a951fd]] 2022.10 -[[GitLabCI/CDについて - Qiita>https://qiita.com/komekome111/items/98f7e5811080f9041bdd]] 2022.6 -[[OpenID Connect を利用して GitLab CI/CD をセキュアに実施する - aptpod Tech Blog>https://tech.aptpod.co.jp/entry/2022/07/15/110000]] 2022/7 -[[GitLabのCI/CDで超重要なrulesの全てを理解する | DevelopersIO>https://dev.classmethod.jp/articles/sample-to-understand-rules/]] 2021.12 -[[GitLabの運用方法を入門者向けに解説!GitHubとの違いも比較。ダウンロード、日本語化する方法も紹介!| ITフリーランスエンジニア案件ならA-STAR(エースター)>https://agency-star.co.jp/column/gitlab]] 2020 -[[GitLab自社運用のための注意点とノウハウ(2018/06版)|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社>https://techracho.bpsinc.jp/morimorihoge/2018_06_04/57628]] 2018 -[[オープンソースのプロジェクト管理/GitLabとは>https://www.ossnews.jp/oss_info/GitLab/1]] 2021.9 -[[GitLab って何?>https://qiita.com/masakura/items/29f8949379fa86dac22c]] 2016 *CircleCI [#zc3a0c7b] -[[#Unity と #CircleCI を組み合わせてゲーム開発にCI/CDを導入してみた | DevelopersIO>https://dev.classmethod.jp/articles/unity-circleci-demo/]] 2023.1 -[[コードカバレッジを測定してみた - hacomono TECH BLOG>https://techblog.hacomono.jp/entry/2022/12/13/070000]] 2022.12 -[[warning絶許マンがCIで捗る話し - Qiita>https://qiita.com/suzukiplan/items/6aaa46af86bb6de13184]] 2022.10 -[[CircleCiとCodeシリーズの料金比較 - Qiita>https://qiita.com/mk_yjn43/items/a0d430ff0080bd7d1ea1]] 2022.6 -[[CircleCIとAWSをOpenID Connect 認証で連携する - Qiita>https://qiita.com/suzucir/items/5b76ae7d80944d5d3c85]] 2022.4 -[[GitHubのDependabotが作るプルリクエストで動くCI/CDで、デプロイさせたくない | DevelopersIO>https://dev.classmethod.jp/articles/github-dependabot-ci-cd-not-run-deploy-workflow/]] 2022.4 -[[CircleCIが無料枠を大幅拡大。1カ月あたり6000分のビルド時間、ユーザー数無制限、最大30件までのジョブ同時実行など − Publickey>https://www.publickey1.jp/blog/22/circleci1600030.html]] 2022.1 -[[3年の運用で編み出した CircleCI 超設計大全 - Qiita>https://qiita.com/dodonki1223/items/98dbdac6f31f9b486ecf]] 20201.12 -[[CircleCIを使ってコンテナイメージをAWS LambdaへデプロイするCI/CD環境を構築してみた - Qiita>https://qiita.com/y-aka/items/c5c5fd969a6db9aa97fc]] 2021.11 *Cloud Build [#a7afaf89] -[[GCP CI/CD Pipeline: Build Docker images after commits to a repo branch (Github) - DEV Community 👩‍💻👨‍💻>https://dev.to/af/gcp-cicd-pipeline-build-docker-images-after-commits-to-a-repo-branch-github-3381]] 2022.9 -[[GCP CI/CD Pipeline: Build Docker images after commits to a repo branch (Google Cloud Source Repositories) - DEV Community 👩‍💻👨‍💻>https://dev.to/af/gcp-cicd-pipeline-build-docker-images-after-commits-to-a-repo-branch-google-cloud-source-repositories-500o]] 2022.9 -[[Cloud Build を知ってみよう | フューチャー技術ブログ>https://future-architect.github.io/articles/20210315/]] 2021 *CI/CDに使うツール [#rdeeb3b7] |カテゴリ|役割|ツール例|h |リポジトリ/バージョン管理ツール|ソースコードのバージョンや成果物を管理|[[Git/GitHub>Git関連]]| |CIツール|コードに変更があると、ビルドやテストを実行するため各種ツールにコードを連携|Jenkins/Travis CI/CircleCI/GitLabCICD| |構成管理ツール|インフラ基盤の構築を自動化したり、構築手順を管理|Ansible/Chef/Puppet| |ビルドツール|ビルドに必要な処理を自動実行|Gradle/Ant/[[Maven>Maven関連]]| |テストデータ準備ツール|テストに必要なデータを準備|DELPHIX| |テストツール|操作テストや負荷テストを実施して、サプリケーションの品質をチェック|UFT One/LoadRunner Professional/sonarQude| *Jenkins [#s716c21b] -[[Jenkins と Github を連携させる Webhook と SCMポーリング - Qiita>https://qiita.com/att55/items/e3c9aa008008664392e8]] 2022.3 -[[Jenkins で静的解析のグラフを作るとコードを読まなくてもソフトウェアの品質が分かって面白い>http://shunirr.hatenablog.jp/entry/2013/05/05/180922]] 2013.5.5 * ビルド/インテグレーション支援ツール [#ve1ab99e] -[[Gradle入門>https://qiita.com/vvakame/items/83366fbfa47562fafbf4]] 2018.6 -[[【Spring】ローカル環境からAWSを使うときのgradleの設定 - Qiita>https://qiita.com/ZZ_E_N/items/49eaf449a747565a2bf0]] 2022.4 -[[1. ガイド — OMakeマニュアル 日本語訳>https://omake-japanese.osdn.jp/index.html]] 2014 -[[OMake つかったらC言語でプログラム書く手間がバカみたいに減った>http://d.hatena.ne.jp/hayamiz/20081203/1228296644]] 2008 -[[MSBuild使いこなし:http://www.atmarkit.co.jp/fdotnet/special/msbuild01/msbuild01_01.html]] -[[MSBuild徹底理解:http://www.atmarkit.co.jp/fdotnet/special/msbuild02/msbuild02_01.html]] --ただしMSBUildは.NET 2.0でしか使えない点に注意