102 lines
3.5 KiB
YAML
102 lines
3.5 KiB
YAML
name: CI Pipeline
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
- master
|
|
paths:
|
|
- Dockerfile
|
|
- packages.txt
|
|
- requirements.txt
|
|
- .gitea/workflows/main.yml
|
|
- tools/**
|
|
pull_request:
|
|
paths:
|
|
- Dockerfile
|
|
- packages.txt
|
|
- requirements.txt
|
|
- .gitea/workflows/main.yml
|
|
- tools/**
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build-image:
|
|
name: Build Docker Image
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: recursive
|
|
fetch-depth: 1
|
|
|
|
- name: Login to Docker Registry
|
|
run: docker login -u kawa -p 3e46dff29691071b01d214249386374129118eec git.azuze.fr
|
|
|
|
- name: Pull existing image (if exists)
|
|
run: docker pull git.azuze.fr/kawa/banjo-kazooie:latest || true
|
|
- name: Build Docker image
|
|
run: |
|
|
docker build \
|
|
--build-arg BUILDKIT_INLINE_CACHE=1 \
|
|
--cache-from git.azuze.fr/kawa/banjo-kazooie:latest \
|
|
-t git.azuze.fr/kawa/banjo-kazooie:latest \
|
|
-t git.azuze.fr/kawa/banjo-kazooie:latest .
|
|
|
|
- name: Push Docker image
|
|
run: docker push --all-tags git.azuze.fr/kawa/banjo-kazooie
|
|
|
|
build-test-us10:
|
|
name: Test US10 Build
|
|
runs-on: ubuntu-latest
|
|
needs: build-image
|
|
container:
|
|
image: git.azuze.fr/kawa/banjo-kazooie:latest
|
|
steps:
|
|
- name: Download and decrypt baserom
|
|
run: |
|
|
curl -L "${{ vars.BASEROM_US10_URL }}" -o baserom.us.v10.enc.z64
|
|
openssl enc -d -aes-256-cbc -in baserom.us.v10.enc.z64 -out baserom.us.v10.z64 -k "${{ vars.BASEROM_US10_KEY}"
|
|
FILE_SHA1=$(sha1sum baserom.us.v10.z64 | awk '{ print $1 }')
|
|
echo "Calculated SHA1 - $FILE_SHA1"
|
|
echo "Expected SHA1 - ${{ vars.BASEROM_US10_SHA1 }}"
|
|
[ "$FILE_SHA1" != "${{ vars.BASEROM_US10_SHA1 }}" ] && exit 1 || echo "Checksum verification passed"
|
|
|
|
- name: Compile
|
|
run: make
|
|
|
|
- name: Verify ROM
|
|
run: |
|
|
FILE_SHA1=$(sha1sum build/us.v10/banjo.us.v10.z64 | awk '{ print $1 }')
|
|
echo "Calculated SHA1 - $FILE_SHA1"
|
|
echo "Expected SHA1 - ${{ vars.BASEROM_US10_SHA1 }}"
|
|
[ "$FILE_SHA1" != "${{ vars.BASEROM_US10_SHA1 }}" ] && exit 1 || echo "Checksum verification passed"
|
|
|
|
build-test-pal:
|
|
name: Test PAL Build
|
|
runs-on: ubuntu-latest
|
|
needs: build-image
|
|
container:
|
|
image: git.azuze.fr/kawa/banjo-kazooie:latest
|
|
steps:
|
|
- name: Download and decrypt baserom
|
|
run: |
|
|
curl -L "${{ vars.BASEROM_PAL_URL }}" -o baserom.pal.enc.z64
|
|
openssl enc -d -aes-256-cbc -in baserom.pal.enc.z64 -out baserom.pal.z64 -k "${{ vars.BASEROM_PAL_KEY}"
|
|
FILE_SHA1=$(sha1sum baserom.pal.z64 | awk '{ print $1 }')
|
|
echo "Calculated SHA1 - $FILE_SHA1"
|
|
echo "Expected SHA1 - ${{ vars.BASEROM_PAL_SHA1 }}"
|
|
[ "$FILE_SHA1" != "${{ vars.BASEROM_PAL_SHA1 }}" ] && exit 1 || echo "Checksum verification passed"
|
|
|
|
- name: Compile
|
|
run: make VERSION=pal
|
|
|
|
- name: Verify ROM
|
|
run: |
|
|
DECOMP_SHA1=$(sha1sum decompressed.pal.z64 | awk '{ print $1 }')
|
|
FILE_SHA1=$(sha1sum build/pal/banjo.pal.prelim.z64 | awk '{ print $1 }')
|
|
echo "Calculated SHA1 - $FILE_SHA1"
|
|
echo "Expected SHA1 - $DECOMP_SHA1"
|
|
[ "$FILE_SHA1" != "$DECOMP_SHA1" ] && exit 1 || echo "Checksum verification passed"
|