ファミコンソフトをCircleCIでビルドする


きっかけ

MAPPER 4 CARTRIDGEkazzoのおかげで、ROM焼きができそうなので、NESファイルのビルド環境を作りたくなった。せっかくなので、CircleCIの手習いも兼ねてみる。仲間内で環境を共有したいし。

前提

GitHubアカウントがあればよい。リポジトリは作っておく。CircleCIはGitHubアカウントでログイン可能なので、リポジトリを連携する。

ビルド設定

test.cをコンパイル・アセンブル・リンクするだけの設定。Makefileなど使いたいところだが、それはおいおい。

.circleci/config.yml
version: 2
jobs:
  build:
    docker:
      - image: debian:stretch
    steps:
      - checkout
      - run: echo 'deb http://download.opensuse.org/repositories/home:/strik/Debian_9.0/ /' > /etc/apt/sources.list.d/home:strik.list
      - run: apt-get update
      - run: apt-get install -y ca-certificates
      - run: apt-get install -y --allow-unauthenticated cc65
      - run: cc65 -t nes test.c
      - run: ca65 -t nes test.s
      - run: ld65 -t nes test.o nes.lib atmos.lib -o test.nes
      - store_artifacts:
          path: ./test.nes
          destination: test.nes

ハマりポイント

  • apt-get install -y ca-certificatesがないとstore_artifactsでエラーになった
  • apt-get install -y --allow-unauthenticated cc65--allow-unauthenticatedで証明書エラーを回避。証明書を導入する方法もあるが、手っ取り早く…

参考文献