見出し画像

Pyxel用CI/CD環境を構築する



はじめに

ゲームエンジンPyxelでゲームを製作しておりますと、テスト・ビルドを自動化したくなります。今回は、配布用形式『.pyxapp』を自動で生成する仕組みをGitHub Actionsで作成しました。ビルドのみの大変シンプルなものですが、共有いたします。

CI/CD?

 CI/CDとは「Continuous Integration(継続的インテグレーション)/ Continuous Delivery(継続的デリバリー)」の略称。CI/CDは、何か特定の技術を指すものではなく、ソフトウェアの変更を常にテストし、自動で本番環境に適用できるような状態にしておく開発手法のことをいう。

ビジネス+IT


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  # ビルドされたアプリのパスを指定

参考


この記事が気に入ったらサポートをしてみませんか?