Files
balatro-gba-chinese-jocker-…/.github/workflows/build_ci_workflow.yml
T
Elliot Tester 35c7a29cc5 Scripts Take Rom as Arg (#512)
* initial

* suggestions for get_memory_map.sh

* CONTRIBUTING.md suggestions

* save_build.sh suggestions

* rerun

* env variable

* add to env

* print usage and remove redundant qoutes
2026-06-10 21:23:47 -07:00

83 lines
2.2 KiB
YAML

name: Build CI
on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:
inputs:
clear-cache:
description: 'Clear docker cache before running'
type: boolean
default: false
workflow_call:
inputs:
upload-build-artifact:
required: true
type: boolean
default: true
jobs:
clang-format-job:
name: Run clang-format test
uses: ./.github/workflows/clang_format_ci_workflow.yml
unit-tests-job:
name: Run unit tests
uses: ./.github/workflows/unit_tests_ci_workflow.yml
build:
name: Build ROM
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Get docker image cache
uses: actions/cache@v5
with:
path: /tmp/docker-cache
key: docker-images-${{ hashFiles('docker-compose.yml') }}
- name: Clear docker cache (if requested)
if: github.event.inputs.clear-cache == 'true'
run: |
echo "Clearing Docker cache..."
rm -rf /tmp/docker-cache
echo "Docker cache cleared"
- name: Load or pull images
run: |
if [ -f /tmp/docker-cache/gbalatro.tar ]; then
echo "Loading Image"
docker load -i /tmp/docker-cache/gbalatro.tar
else
echo "Pulling Image"
docker compose build gbalatro
mkdir -p /tmp/docker-cache
docker save $(docker compose config | grep image: | awk '{print $2}') -o /tmp/docker-cache/gbalatro.tar
fi
- name: Export UID/GID for Compose
run: |
echo "UID=$(id -u)" >> "$GITHUB_ENV"
echo "GID=$(id -g)" >> "$GITHUB_ENV"
- name: Build the project
run: |
docker compose -f docker-compose.yml run --rm \
-e PATH=/opt/devkitpro/devkitARM/bin:/opt/devkitpro/tools/bin:$PATH \
gbalatro \
sh -c "make -j\$(nproc) && ./scripts/get_memory_map.sh build/balatro-gba.elf"
- name: 'Upload Artifact'
if: ${{ inputs.upload-build-artifact }}
uses: actions/upload-artifact@v6
with:
name: build-out
path: build
retention-days: 5