Skip to content

Commit

Permalink
Create workflow for CI builds (#153)
Browse files Browse the repository at this point in the history
* create build workflow (no artifacts)

* fix url

* fix lowercase issue

* fix build oddities

* update matrix
  • Loading branch information
Yanis002 authored Oct 20, 2024
1 parent f98edc4 commit 3d79c29
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 1 deletion.
56 changes: 56 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Build

on:
push:
pull_request:

jobs:
build:
container: ghcr.io/hackern64/hackerbuild:main
runs-on: ubuntu-22.04
strategy:
matrix:
include:
- name: "Debug, No F3DEX3"
args: RELEASE=0 CPP_DEFINES=-DENABLE_F3DEX3=0
- name: "Debug, F3DEX3"
args: RELEASE=0 CPP_DEFINES=-DENABLE_F3DEX3=1
- name: "Release, No F3DEX3"
args: RELEASE=1 CPP_DEFINES=-DENABLE_F3DEX3=0
- name: "Release, F3DEX3"
args: RELEASE=1 CPP_DEFINES=-DENABLE_F3DEX3=1
defaults:
run:
shell: bash

name: ${{ matrix.name }}

steps:
# Checkout the repository (shallow clone)
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive

# Set Git config
- name: Git config
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"

# Copy the original files to the workspace
- name: Prepare
run: cp -R /HackerOoT/baseroms .

# Install the required pip packages
- name: Setup Python
run: |
python3 -m pip install --user colorama ansiwrap attrs watchdog python-Levenshtein "mapfile-parser>=1.2.1,<2.0.0" "rabbitizer>=1.0.0,<2.0.0"
python3 -m pip install --upgrade attrs pycparser
# Setup the project
- name: Setup
run: make setup -j$(nproc)

# Build the project
- name: Build
run: ${{ matrix.args }} make -j$(nproc)
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ ARES_GDB := 1

# Toggle release or debug mode. 1=Release, 0=Debug
# Note: currently only used for HackerOoT
RELEASE := 0
RELEASE ?= 0

# Valid compression algorithms are 'yaz', 'lzo' and 'aplib'
COMPRESSION ?= yaz
Expand Down
3 changes: 3 additions & 0 deletions include/config/config_graphics.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,11 @@
* F3DEX3 options
* This only works on real console or LLE emulators like ares or ParaLLEl. It
* will not work on legacy HLE emulators such as Project64.
* Note: you can define this with `CPP_DEFINES=-DENABLE_F3DEX3=0 make -j$(nproc)`
*/
#ifndef ENABLE_F3DEX3
#define ENABLE_F3DEX3 true
#endif
// Remove usually-unnecessary syncs from texture loading commands. Only matters
// for vanilla display lists--new ones exported from fast64 already have the
// syncs removed. This is buggy (graphical issues / crashes) as some vanilla DLs
Expand Down

0 comments on commit 3d79c29

Please sign in to comment.