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 ${{ secrets.CI_USER }} -p ${{ secrets.CI_TOKEN }} ${{ secrets.CI_REGISTRY }} # - name: Pull existing image (if exists) # run: docker pull ${{ secrets.CI_REGISTRY_IMAGE }}:${{ github.ref_name }} || true # - name: Build Docker image # run: | # docker build \ # --build-arg BUILDKIT_INLINE_CACHE=1 \ # --cache-from ${{ secrets.CI_REGISTRY_IMAGE }}:${{ github.ref_name }} \ # -t ${{ secrets.CI_REGISTRY_IMAGE }}:${{ github.ref_name }} \ # -t ${{ secrets.CI_REGISTRY_IMAGE }}:latest . # - name: Push Docker image # run: docker push --all-tags ${{ secrets.CI_REGISTRY_IMAGE }} build-test-us10: name: Test US10 Build runs-on: ubuntu-latest needs: build-image container: image: ${{ secrets.CI_REGISTRY_IMAGE }}:latest steps: - name: Download and decrypt baserom run: | curl -L "${{ secrets.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 "${{ secrets.BASEROM_US10_KEY}" FILE_SHA1=$(sha1sum baserom.us.v10.z64 | awk '{ print $1 }') echo "Calculated SHA1 - $FILE_SHA1" echo "Expected SHA1 - ${{ secrets.BASEROM_US10_SHA1 }}" [ "$FILE_SHA1" != "${{ secrets.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 - ${{ secrets.BASEROM_US10_SHA1 }}" [ "$FILE_SHA1" != "${{ secrets.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: ${{ secrets.CI_REGISTRY_IMAGE }}:latest steps: - name: Download and decrypt baserom run: | curl -L "${{ secrets.BASEROM_PAL_URL }}" -o baserom.pal.enc.z64 openssl enc -d -aes-256-cbc -in baserom.pal.enc.z64 -out baserom.pal.z64 -k "${{ secrets.BASEROM_PAL_KEY}" FILE_SHA1=$(sha1sum baserom.pal.z64 | awk '{ print $1 }') echo "Calculated SHA1 - $FILE_SHA1" echo "Expected SHA1 - ${{ secrets.BASEROM_PAL_SHA1 }}" [ "$FILE_SHA1" != "${{ secrets.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"