diff --git a/.gitea/workflows/default.yaml b/.gitea/workflows/default.yaml index 6c4473a3..73edd90f 100644 --- a/.gitea/workflows/default.yaml +++ b/.gitea/workflows/default.yaml @@ -1,22 +1,101 @@ +name: CI Pipeline -name: Testing Example 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: - -# Builds the image and pushes it to the registry -# This image contains all the tooling necessary to run the compilation tools - build: - # Set up the docker daemon for building the image - runs-on: ubuntu-latest +jobs: + build-image: + name: Build Docker Image + runs-on: docker steps: - - name: build-image - uses: https://github.com/actions/checkout@v4 - - run: docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY # Login to the registry - - run: docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME || true # Pull the image if it exists - # Build the image and tag it with the branch name and latest - - run: docker build --build-arg BUILDKIT_INLINE_CACHE=1 --cache-from $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME -t $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME -t $CI_REGISTRY_IMAGE:latest . - - run: docker push --all-tags $CI_REGISTRY_IMAGE # Push the image to the registry \ No newline at end of file + - 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: docker + 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: docker + 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" diff --git a/.gitea-ci.yml b/.gitlab-ci.yml similarity index 100% rename from .gitea-ci.yml rename to .gitlab-ci.yml