
Pyxel用CI/CD環境を構築する
はじめに
ゲームエンジンPyxelでゲームを製作しておりますと、テスト・ビルドを自動化したくなります。今回は、配布用形式『.pyxapp』を自動で生成する仕組みをGitHub Actionsで作成しました。ビルドのみの大変シンプルなものですが、共有いたします。
CI/CD?
CI/CDとは「Continuous Integration(継続的インテグレーション)/ Continuous Delivery(継続的デリバリー)」の略称。CI/CDは、何か特定の技術を指すものではなく、ソフトウェアの変更を常にテストし、自動で本番環境に適用できるような状態にしておく開発手法のことをいう。
GitHub Actions
GitHub Actionsを使用すると、ワールドクラスのCI / CDですべてのソフトウェアワークフローを簡単に自動化できます。 GitHubから直接コードをビルド、テスト、デプロイでき、コードレビュー、ブランチ管理、問題のトリアージを希望どおりに機能させます。
SDL2のインストール
Pyxelをビルドする際には、SDL2ライブラリが必要です。ビルド前に、インストールします。
- name: Install SDL2 library
run: |
sudo apt-get update
sudo apt-get install -y libsdl2-dev
Artifactsの生成
Pyxelのビルドコマンドをただ呼び出しただけでは、ビルドされるだけで何も残りません。生成した.pyxappをアップロードするために、upload-artifactを使用します。
- name: Upload artifact for deployment
uses: actions/upload-artifact@v4
with:
name: project
path: project.pyxapp # ビルドされたアプリのパスを指定
スクリプト全体
name: Making pyxapp
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install SDL2 library
run: |
sudo apt-get update
sudo apt-get install -y libsdl2-dev
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.10"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pyxel # Pyxelの追加
pip install flake8 pytest
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Make pyxapp
run: |
pyxel package project project/__main__.py
- name: Upload artifact for deployment
uses: actions/upload-artifact@v4
with:
name: project
path: project.pyxapp # ビルドされたアプリのパスを指定