群馬県でPythonを使ったAIやシステムを開発しているファントム

Navigation
群馬県でPythonを使ったAIやシステムを開発しているファントム

群馬県でPythonを使ったAIやシステムを開発しているファントムです。企業の経営課題を最適なテクノロジーで解決します。テックブログではPythonを中心にプログラミングに役立つ情報を発信しています。

投稿を検索する


  • 株式会社ファントム コーポレートサイト

カテゴリー



  • AWS 16
  • Django 45
  • FastAPI 4
  • Flask 8
  • GCP 1
  • Information 37
  • Other 32
  • PHP 2
  • Python 93
  • Pythonista 3
  • Rust 1

タグ


Alembic API argparse Beautiful Soup black Channels charset CodeCommit datetime Django REST framework Docker enumerate f-string git GitHub glob Google Colaboratory i18n IAM Internship Jupyter Lambda Matplotlib Nginx OpenCV pandas PIL Pillow PostgreSQL PyCharm PyCon pyenv PyTorch Redis Rembg ReportLab requests S3 Sentry slack tqdm uWSGI venv Vue.js youtube
このサイトはreCAPTCHAによって保護されており、Googleのプライバシーポリシーと利用規約が適用されます。

© 2022 Fantom, Inc.

Hydra WordPress Theme by EckoThemes.

Published with WordPress.

Related Articles

Filter by Category

  • Python(93)
  • Django(45)
  • Information(37)
  • Other(32)
  • AWS(16)
  • Flask(8)
  • FastAPI(4)
  • Pythonista(3)
  • PHP(2)
  • GCP(1)
  • Rust(1)

Filter by Author

  • EIGHT (14)
  • hayai017 (2)
  • press (196)
Back to Latest Articles
AWS

CodePipelineでCodeBuildのテストを自動化

CodePipelineでCodeBuildのテストを自動化 CodeCommitで管理しているリポジトリをCodeBuildでテストする場合は通常、手動でテストを実行させる必要がありますが、CodePipelineを使 […]

Posted on 12th 12月 2023 by press

AWS

AWS CodeCommitでプルリクエスト・マージ

AWS CodeCommitでプルリクエスト・マージ ソースコードの管理にはGitHubやGitLabを採用している方が多いかもしれませんが、AWSにもCodeCommitというサービスがあり、5人までは無料で5人以上で […]

Posted on 12th 12月 2023 by press

FastAPI

FastAPI + SQLAlchemy + Alembic + SQLiteでマイグレーション

FastAPI + SQLAlchemy + Alembic + SQLiteでマイグレーション FastAPIにはデータベースのマイグレーション機能はありませんが、Alembicというデータベースのマイグレーションツー […]

Posted on 5th 12月 2023 by press

AWS

AWS LambdaとS3、SNSでファイルのアップロードを自動通知

AWS LambdaとS3、SNSでファイルのアップロードを自動通知 AWS Lambdaは特定の条件を満たすときにサーバーレスでPython(他のプログラミング言語も)を実行できるサービスです。トリガーを検知したときや […]

Posted on 21st 11月 2023 by press

Other

GitHubリポジトリを別のOrganizationに移行

GitHubリポジトリを別のOrganizationに移行 非公開用のOrganization(組織)で管理していたリポジトリの公開範囲をプライベートから公開に変更するにあたって、リポジトリを別のOrganization […]

Posted on 20th 11月 2023 by press

Python

PythonとMoviePyで動画ファイルの指定時間ごとの分割を自動化

PythonとMoviePyで動画ファイルの指定時間ごとの分割を自動化 OpenCVなどで動画の処理を行う際に、1分毎の変化や10分毎に結果を見たいときに一連の動画から指定した時間毎に分割して切り出したいことがあります。 […]

Posted on 20th 11月 2023 by press

Python

OpenCVで動画ファイルの最終フレームを取得

OpenCVで動画ファイルの最終フレームを取得 PythonとOpenCVを使用して動画ファイルの最大フレーム数を取得する方法を解説をします。処理の確認用に取得した最大フレーム数とファイル名をソートして表示させます。 コ […]

Posted on 6th 11月 2023 by press

AWS

Amazon Route 53で新規ドメインを登録

Amazon Route 53で新規ドメインを登録 ウェブサイトやウェブサービスを運営する際にドメインは欠かせない要素です。この記事では、Amazon Route 53で新しいドメインを登録する方法について解説します。 […]

Posted on 19th 10月 2023 by press

Other

GitHub CopilotをPyCharmで使用するまでの手順

GitHub CopilotをPyCharmで使用するまでの手順 GitHub Copilotは、プログラミングの効率を飛躍的に向上させるツールで、開発者にとって非常に便利なコーディングのサポートを提供します。本記事では […]

Posted on 17th 10月 2023 by press

Python

PyCharm 2023.2から追加されたBlackによるコード成形

PyCharm 2023.2から追加されたBlackによるコード成形 Pythonのコード成形で人気のBlackがPyCharm 2023.2から環境設定画面で設定可能になりました。従来はpipなどでインストールしていま […]

Posted on 13th 9月 2023 by press

AWS

S3のライフサイクルルールの落とし穴

S3のライフサイクルルールの落とし穴 保存したデータが必要以上に増えないようにライフサイクルルールで指定した日数を経過したデータは削除する設定にしていましたが、後日改めてバケットを確認するとフォルダ、ファイルどちらも削除 […]

Posted on 10th 9月 2023 by press

AWS

S3でストレージクラスを一括で変更

S3でストレージクラスを一括で変更 デフォルトではS3のストレージクラスは「標準」になっていますが、このストレージクラスは頻繁にアクセスするデータを保存するのに適した設定なので、バックアップファイルなどの頻繁にアクセスし […]

Posted on 10th 9月 2023 by press

Django

request.FILES.get(‘file’)とrequest.FILES[‘file’] の違い

request.FILES.get(‘file’)とrequest.FILES[‘file’] の違い この記事は生成AIで作成されました request.FILES.ge […]

Posted on 21st 5月 2023 by press

Other

Twitter APIの移行作業について

Twitter APIの変更に関して 最近、Twitter APIのバージョンがアップデートされ、v1が廃止されました。これに伴い、開発者はv2への移行が必要となります。 Twitter v1の廃止 Twitter v1 […]

Posted on 6th 5月 2023 by EIGHT

AWS

AWS Rekognitionとは

AWS Rekognitionとは AWS Rekognitionは、画像と動画から情報を抽出するディープラーニング技術を利用した分析サービスです。このサービスは、顔認識、物体検出、シーン分析など、さまざまな分析機能を提 […]

Posted on 5th 5月 2023 by EIGHT

Other

コメント,タイプヒント, ドックストリングの追記とGitHubでのコンフリクト

タイプヒント, コメント, ドックストリングの追記とGitHubでのコンフリクト コメントの記述方法と注意点 タイプヒントの記述方法と注意点 ドックストリングの記述方法と注意点 GitHubのコンフリクト発生時の対処法に […]

Posted on 18th 4月 2023 by hayai017

Other

VSCodeとGitでのコード管理

VSCodeとGitでのコード管理 行ったこと アクセストークンの取得リポジトリのクローン リポジトリのクローン ブランチの作成 ファイルのコミット 同期 ターミナルでのgitbashの利用(windows) 作業用のブ […]

Posted on 18th 4月 2023 by hayai017

Other

vue createで作成する際に.gitが生成されないようにする

vue createで作成する際に.gitが生成されないようにする Vue.jとDjangoのプロジェクトをGitで管理しようとしたところ、vue createで生成したディレクトリだけが追加されていないことがわかりまし […]

Posted on 3rd 4月 2023 by press

Django

Vue.jsとDjango REST Frameworkで画面が真っ白になる原因〜2〜

Vue.jsとDjango REST Frameworkで画面が真っ白になる原因〜2〜 Django REST Frameworkと組み合わせたVue.jsで、ビルド後にバックエンドの開発サーバー(8000ポートなど)で […]

Posted on 3rd 4月 2023 by press

Django

Vue.jsとDjango REST Frameworkで画面が真っ白になる原因〜1〜

Vue.jsとDjango REST Frameworkで画面が真っ白になる原因〜1〜 画面が真っ白になる原因 Vue.jsとDjangoの組み合わせで開発中にnpm run serveで起動した開発サーバーでページを確 […]

Posted on 3rd 4月 2023 by press

View Latest Posts
AWS

CodePipelineでCodeBuildのテストを自動化


press
CodePipelineでCodeBuildのテストを自動化
Posted on 12th 12月 2023 by press
2024年度 インターンシップ 募集開始

CodePipelineでCodeBuildのテストを自動化

CodeCommitで管理しているリポジトリをCodeBuildでテストする場合は通常、手動でテストを実行させる必要がありますが、CodePipelineを使うことで特定の条件をトリガーにしてCodeBuildによるテストを自動化することができます。

ブランチ戦略やテスト戦略によって運用方法が異なると思いますが、今回は弊社で採用している簡易的なGit flowで運用しているリポジトリで特定のブランチ(dev)に変化(マージ)があったらCodeBuildでテストを自動で実行させる方法を解説します。ブランチの変化がトリガーなのでプッシュでも検知しますが、弊社ではdevブランチには直接プッシュしない運用なので今回はマージをトリガーにしています。

CodeBuildではCodeCommitでプルリクエストの作成をテスト実行のトリガーにする場合は、Lambdaなどのサービスと連携しないと構築できませんが、特定ブランチの変化(プッシュやマージなど)をトリガーにしたテスト実行の場合はCodePipelineを使って構築できます。CodePipelineはコードを書かずにブラウザからの操作でも構築可能です。

前回の記事はこちら

AWS CodeCommitでプルリクエスト・マージ

構築の流れ

  • ビルドプロジェクト作成
  • パイプライン作成
    • ソースステージ追加
    • ビルドステージ追加
    • デプロイステージ追加
  • 動作確認 1
  • プリクエスト・マージ
  • 動作確認 2
    • ビルドのレポート

ビルドプロジェクトを作成

ビルドプロジェクトを作成
ビルドプロジェクトを作成

コンソールからCodeBuildを検索して「ビルドプロジェクトを作成する」を押します。

ビルドプロジェクトを作成
ビルドプロジェクトを作成

プロジェクト名、リポジトリ、ブランチを設定します。

設定項目
プロジェクト名:ContinuousIntegrationTeste
リポジトリ:ContinuousTesting
ブランチ:dev

ビルドプロジェクトを作成
ビルドプロジェクトを作成

オペレーティングシステム、ランタイム、イメージを設定します。テストするコードで使用しているPythonのバージョンが3.10なので、イメージは「standard:6.0」を選択します。

設定項目
オペレーティングシステム:Ubuntu
ランタイム:Standard
イメージ:aws/codebuild/standard:6.0

ビルドプロジェクトを作成
ビルドプロジェクトを作成

「ビルドプロジェエクトを作成する」を押して作成します。

パイプラインを作成

パイプラインを作成
パイプラインを作成

コンソールからCodePipelineを検索して「パイプラインを作成する」を押します。

パイプラインを作成
パイプラインを作成

パイプライン名、パイプラインタイプ、サービスロールを設定して「次に」を押します。パイプラインタイムは特別な理由がない限りv2を選択します。新しいサービスロールを選択するとロール名が自動で入力されます。

設定項目
パイプライン名:BranchChangeTestPipeline

ソースステージを追加

ソースステージを追加
ソースステージを追加

ソースプロバイダ、リポジトリ名、ブランチ名を設定して「次に」を押します。

設定項目
ソースプロバイダ:AWS CodeCommit
リポジトリ名:ContinuousTesting
ブランチ名:dev

ビルドステージを追加

ビルドステージを追加
ビルドステージを追加

ビルドステージは画像のようになっていればそのまま「次に」を押します。

デプロイステージを追加

デプロイステージの設定
デプロイステージの設定

今回はデプロイは実行しないので「導入段階をスキップ」を押します。

デプロイステージの設定
デプロイステージの設定

ポップアップが表示されたら「スキップ」を押します。

パイプラインを作成

パイプラインを作成
パイプラインを作成

「パイプラインを作成する」を押して作成します。

動作確認 1

ビルドプロジェクトの確認
ビルドプロジェクトの確認

パイプラインを作成したタイミングで設定したテストが実行されるのでCodeBuildのビルドプロジェクトを確認します。

ビルドプロジェクトの確認
ビルドプロジェクトの確認

履歴に追加されたステータスが進行中のビルドの詳細を確認します。

ビルドログの確認
ビルドログの確認

前回の記事で作成した、CodeBuildのテストに必要なbuildspec.ymlに書いてある文字列が表示されていることを確認します。

AWS CodeCommitでプルリクエスト・マージ
ビルドログの確認
ビルドログの確認

テスト結果も画像のように表示されます。

プリクエスト・マージ

プルリクエストを作成
プルリクエストを作成

テストが自動で実行されるか確認するためにプルリクエストを作成します。CodeCommitでdevブランチにプルリクエストを作成します。

プルリクエストを作成
プルリクエストを作成

タイトルを入力します。説明は任意なので空欄のままでも問題ありません。

プルリクエストを作成
プルリクエストを作成

テスト実行時に表示する文字列が変更されていることを確認して「プルリクエストの作成」を押します。

プルリクエストのマージ
プルリクエストのマージ

作成したプルリクエストをマージします。

プルリクエストのマージ
プルリクエストのマージ

「早送りマージ」を選択して「プルリクエストのマージ」を押します。

動作確認 2

実行したビルドの確認
実行したビルドの確認

CodeBuildのビルドプロジェクトに新しい履歴が追加されました。

テストログの確認
テストログの確認

テスト実行時に表示される文字列がマージされた後の内容になっていることを確認します。

テストログの確認
テストログの確認

テスト結果も先ほどと変わらず表示されています。

ビルドのレポート

テストのレポート確認
テストのレポート確認

CodeBuildで実行したビルドプロジェクトは「レポート」から詳細な情報を確認することができます。

テストのレポート確認
テストのレポート確認

画像のようにテストの実行時間やステータスなどを確認できます。

成功したビルドの確認
成功したビルドの確認

実行が完了したビルドプロジェクトは画像のようにステータスが「成功」に変わります。失敗の場合は「失敗」となります。

ファントムYouTubeチャンネル

株式会社ファントムへのお問い合わせ

群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。




    press
    • CodeBuild
    • CodeCommit
    • CodePipeline
    • pytest
    • Share Article:
    • Twitter
    • Facebook
    • Pinterest
    • LinkedIn
    • Reddit

    Related Articles

    AWS

    AWS CLIでファイルをS3へアップロード

    AWS CLIでファイルをS3へアップロード クラウドストレージへのファイルアップロードは、現代のシステム開発において欠かせない作業の一つです。特にAmazon S3はその高い信頼性と豊富な機能により、多くのプロジェクト […]

    Posted on 24th 11月 2024 by press
    AWS

    cronでデータベースのバックアップをAWSのS3に保存

    データベースのバックアップファイルをAWSのS3に保存するプログラムを手動で叩くと問題なくS3にファイルが保存されるのに、cronで定期的に実行したらエラーが出るようになったので調べた内容です。原因はPythonのパスが […]

    Posted on 21st 2月 2019 by press