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 "https://f003.backblazeb2.com/file/KawaPublicCDN/jv/roms+n64/baserom.us.v10.enc.z64" -o baserom.us.v10.enc.z64 openssl enc -d -aes-256-cbc -in baserom.us.v10.enc.z64 -out baserom.us.v10.z64 -k penis FILE_SHA1=$(sha1sum baserom.us.v10.z64 | awk '{ print $1 }') echo "Calculated SHA1 - $FILE_SHA1" echo "Expected SHA1 - 1fe1632098865f639e22c11b9a81ee8f29c75d7a" [ "$FILE_SHA1" != "1fe1632098865f639e22c11b9a81ee8f29c75d7a" ] && 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 - 1fe1632098865f639e22c11b9a81ee8f29c75d7a" [ "$FILE_SHA1" != "1fe1632098865f639e22c11b9a81ee8f29c75d7a" ] && 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"