AWS CodeCommitでプルリクエスト・マージ
AWS CodeCommitでプルリクエスト・マージ ソースコードの管理にはGitHubやGitLabを採用している方が多いかもしれませんが、AWSにもCodeCommitというサービスがあり、5人までは無料で5人以上で […]
Filter by Category
AWS CodeCommitでプルリクエスト・マージ ソースコードの管理にはGitHubやGitLabを採用している方が多いかもしれませんが、AWSにもCodeCommitというサービスがあり、5人までは無料で5人以上で […]
FastAPI + SQLAlchemy + Alembic + SQLiteでマイグレーション FastAPIにはデータベースのマイグレーション機能はありませんが、Alembicというデータベースのマイグレーションツー […]
AWS LambdaとS3、SNSでファイルのアップロードを自動通知 AWS Lambdaは特定の条件を満たすときにサーバーレスでPython(他のプログラミング言語も)を実行できるサービスです。トリガーを検知したときや […]
GitHubリポジトリを別のOrganizationに移行 非公開用のOrganization(組織)で管理していたリポジトリの公開範囲をプライベートから公開に変更するにあたって、リポジトリを別のOrganization […]
PythonとMoviePyで動画ファイルの指定時間ごとの分割を自動化 OpenCVなどで動画の処理を行う際に、1分毎の変化や10分毎に結果を見たいときに一連の動画から指定した時間毎に分割して切り出したいことがあります。 […]
OpenCVで動画ファイルの最終フレームを取得 PythonとOpenCVを使用して動画ファイルの最大フレーム数を取得する方法を解説をします。処理の確認用に取得した最大フレーム数とファイル名をソートして表示させます。 コ […]
Amazon Route 53で新規ドメインを登録 ウェブサイトやウェブサービスを運営する際にドメインは欠かせない要素です。この記事では、Amazon Route 53で新しいドメインを登録する方法について解説します。 […]
GitHub CopilotをPyCharmで使用するまでの手順 GitHub Copilotは、プログラミングの効率を飛躍的に向上させるツールで、開発者にとって非常に便利なコーディングのサポートを提供します。本記事では […]
PyCharm 2023.2から追加されたBlackによるコード成形 Pythonのコード成形で人気のBlackがPyCharm 2023.2から環境設定画面で設定可能になりました。従来はpipなどでインストールしていま […]
S3のライフサイクルルールの落とし穴 保存したデータが必要以上に増えないようにライフサイクルルールで指定した日数を経過したデータは削除する設定にしていましたが、後日改めてバケットを確認するとフォルダ、ファイルどちらも削除 […]
S3でストレージクラスを一括で変更 デフォルトではS3のストレージクラスは「標準」になっていますが、このストレージクラスは頻繁にアクセスするデータを保存するのに適した設定なので、バックアップファイルなどの頻繁にアクセスし […]
request.FILES.get(‘file’)とrequest.FILES[‘file’] の違い この記事は生成AIで作成されました request.FILES.ge […]
Twitter APIの変更に関して 最近、Twitter APIのバージョンがアップデートされ、v1が廃止されました。これに伴い、開発者はv2への移行が必要となります。 Twitter v1の廃止 Twitter v1 […]
AWS Rekognitionとは AWS Rekognitionは、画像と動画から情報を抽出するディープラーニング技術を利用した分析サービスです。このサービスは、顔認識、物体検出、シーン分析など、さまざまな分析機能を提 […]
タイプヒント, コメント, ドックストリングの追記とGitHubでのコンフリクト コメントの記述方法と注意点 タイプヒントの記述方法と注意点 ドックストリングの記述方法と注意点 GitHubのコンフリクト発生時の対処法に […]
VSCodeとGitでのコード管理 行ったこと アクセストークンの取得リポジトリのクローン リポジトリのクローン ブランチの作成 ファイルのコミット 同期 ターミナルでのgitbashの利用(windows) 作業用のブ […]
vue createで作成する際に.gitが生成されないようにする Vue.jとDjangoのプロジェクトをGitで管理しようとしたところ、vue createで生成したディレクトリだけが追加されていないことがわかりまし […]
Vue.jsとDjango REST Frameworkで画面が真っ白になる原因〜2〜 Django REST Frameworkと組み合わせたVue.jsで、ビルド後にバックエンドの開発サーバー(8000ポートなど)で […]
Vue.jsとDjango REST Frameworkで画面が真っ白になる原因〜1〜 画面が真っ白になる原因 Vue.jsとDjangoの組み合わせで開発中にnpm run serveで起動した開発サーバーでページを確 […]
Vue.jsとDjango REST FrameworkでSPA構築〜後半〜 前半に続き、後半はフロントエンド側(Vue.js)の実装を進めていきます。 コードはGitHubリポジトリにあげています。 開発環境 PC: […]
ソースコードの管理にはGitHubやGitLabを採用している方が多いかもしれませんが、AWSにもCodeCommitというサービスがあり、5人までは無料で5人以上でも一人当たり$1(月)で利用可能です。CodeCommitはAWSの他サービスとの連携も簡単で、ブラウザからの操作で様々な連携ができるのも魅力的です。また、IAMポリシーで利用者ごとに柔軟に権限を持たせることもできるのでセキュリティ対策にも有効です。
本記事はCodeCommitでリポジトリの作成、ブランチの作成、プルリクエストの作成、マージという流れを解説します。次の記事ではCodePipelineを使ってプルリクエストをマージしたタイミングでCodeBildによるテストを自動で実行するまでの流れを解説します。
コンソールにログインしたらCodeCommitを検索します。
CodeCommitで「リポジトリ作成」を押します。
リポジトリ名を入力して「作成」を押します。最終的にCodeBuildでテストを実行するリポジトリなので、ContinuousTestingというリポジトリ名にしました。説明は空欄のまま作成します。
リポジトリにファイルを作成します。
「ファイルの作成」を押してファイルを作成します。
CodeBuildのテストに必要なbuildspec.ymlを作成します。下記のコードを入力して、ファイル名、作成者名、Eメールアドレスを入力して「変更のコミット」を押します。
buildspec.yml
version: 0.2
phases:
install:
runtime-versions:
python: 3.10
commands:
- echo "Build Start v1"
- pip install -r requirements.txt
build:
commands:
- python -m pytest --junitxml=./pytest_results.xml
reports:
pytest_reports:
files:
- pytest_results.xml
base-directory: "./"
file-format: JUNITXML
CodeBuildでビルド実行時に実行するコマンドが書かれたファイルです。コードの主な処理はcommandsにあるテスト開始時のテキスト表示、パッケージのインストール、テストの実行と、reportsにあるテストのレポートを出力です。
Git flowでの運用を想定してdevブランチを作成します。
サイドバーのブランチを選択して「ブランチの作成」を押します。
ブランチ名は「dev」、ブランチ元は「main」を指定して「ブランチの作成」を押します。
Git flowでの運用を想定しているのでデフォルトのブランチを「dev」に変更します。(デフォルトブランチの設定が不要であれば飛ばして問題ありません)
デフォルトブランチで「dev」を選択して「Save」を押します。
リポジトリのデフォルトブランチが「dev」に変更されました。
エディタやCodeCommit上での変更をdevブランチに反映させるためにプルリクエストを作成します。今回はCodeBuildによるテストに必要な下記の3ファイルを新たに作成しました。
main.py
def add_numbers(a, b):
return a + b
main_test.py
import main
def test_add_numbers():
assert main.add_numbers(1, 2) == 3
requirements.tx
exceptiongroup==1.2.0
iniconfig==2.0.0
packaging==23.2
pluggy==1.3.0
pytest==7.4.3
tomli==2.0.1
サイドバーのプルリクエストを選択してターゲットに「dev」、ソースに「feature/add-files」を選択して「比較」を押します。(ソースで選択するブランチは自身で作成したブランチを選択します。)
タイトル名の入力、変更内容を確認して「プルリクエストの作成」を押します。
作成したプルリクエストをdevブランチにマージします。
先程作成したプルリクエストを選択して「マージ」を押します。
今回はマージ戦略に「早送りマージ」を選択して「プルリクエストのマージ」を押します。マージ後もブランチを残しておきたいのでチェックを外してからマージしましたが、削除する場合はチェックを入れてマージしてください。
群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。