N64FlashcartMenu/.github/workflows/build.yml
2023-02-27 03:29:36 +00:00

104 lines
2.6 KiB
YAML

name: build
on:
push:
pull_request:
release:
types:
- created
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
container:
image: ghcr.io/n64-tools/gcc-toolchain-mips64:latest # we use an unofficial container for the moment as git-submodules dont work in the official one!
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}
volumes:
- my_docker_volume:/volume_mount
steps:
- name: Check for dockerenv file
run: (ls /.dockerenv && echo Found dockerenv) || (echo No dockerenv)
- uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 1 # we only require the last check-in, unless we want to create a changelog.
- name: Build libdragon
run: |
cd ./libdragon
# FIXME: this currently also builds the examples which adds to the build time.
# ./build.sh
# WORKAROUND: for CI
make -j libdragon
make install
make -j tools
make tools-install
make install-mk
- name: Build N64FlashcartMenu ROM
run: |
mkdir build
# TODO: split this to use params for each flashcart type.
make -j all
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: N64FlashcartMenu
path: |
./build/N64FlashcartMenu.z64
finalize-sc64-menu:
runs-on: ubuntu-latest
needs: build
steps:
- name: Setup python
uses: actions/setup-python@v4
with:
python-version: '3.11.x'
- uses: actions/checkout@v3
with:
fetch-depth: 1 # we only require the last check-in, unless we want to create a changelog.
- name: Download ROM artifact
id: download-rom-artifact
uses: actions/download-artifact@v3
with:
name: N64FlashcartMenu
path: ./build
- name: Finalize rom
run: |
cd ./build
python ../tools/sc64/finalize.py N64FlashcartMenu.z64
continue-on-error: false
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: SC64-Menu
path: |
./build/sc64menu.n64
if-no-files-found: ignore
# release-sc64-menu:
# runs-on: ubuntu-latest
# needs: finalize-sc64-menu
# steps:
# - name: Generate release
# if: github.event_name == 'release' && github.event.action == 'created'
# run: |
# echo "still release preview. Check actions for build assets."