I’m integrating Cesium for Unity into a Unity project that uses GitHub Actions for CI/CD (via game-ci/unity-builder).
The project builds fine using the git flow before i added the package and builds fine locally with the cesium packages, but when I added the Cesium package, the GitHub Actions workflow started failing with compilation errors.
-Missing Implementation for Partial Methods
error CS8795: Partial method '...' must have an implementation part because it has accessibility modifiers.
-Missing ReinteropNativeImplementationAttribute / ReinteropNativeImplementation
error CS0246: The type or namespace name 'ReinteropNativeImplementationAttribute' could not be found (are you missing a using directive or an assembly reference?)
Environment
- Unity version:
6000.1.9f1 - Unity CI:
game-ci/unity-builder@v4 - OS: Ubuntu 24.04 GitHub runner
- Build type: Headless CI/CD (no editor UI)
Could you please clarify:
- Is there a Reinterop Unity package or DLL I need to include separately?
- Are there any known steps or CI-specific configurations needed to build Cesium for Unity in headless pipelines?
- Is Cesium currently intended to support CI workflows via
game-ci/unity-builder?
Any official guidance, sample CI config, or manifest examples would be appreciated.
Thanks in advance!
YAML file:
name: Build project
on:
push:
branches:
- master
pull_request: {}
workflow_dispatch: {}
jobs:
checklicense:
name: Check for UNITY_LICENSE in GitHub Secrets
runs-on: ubuntu-latest
outputs:
is_unity_license_set: ${{ steps.checklicense_job.outputs.is_unity_license_set }}
steps:
- name: Check whether Unity activation should be done
id: checklicense_job
env:
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
run: |
if [[ -n "${UNITY_LICENSE}" ]]; then
echo "is_unity_license_set=true" >> $GITHUB_OUTPUT
else
echo "is_unity_license_set=false" >> $GITHUB_OUTPUT
fi
buildForAllSupportedPlatforms:
name: Build for ${{ matrix.targetPlatform }}
needs: checklicense
if: needs.checklicense.outputs.is_unity_license_set == 'true'
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
targetPlatform:
- StandaloneWindows64 # Build a Windows 64-bit standalone.
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
lfs: true
- uses: actions/cache@v3
with:
path: Library
key: Library-${{ matrix.targetPlatform }}
restore-keys: Library-
- if: matrix.targetPlatform == 'Android'
uses: jlumbroso/free-disk-space@v1.3.1
- uses: game-ci/unity-builder@v4
env:
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
with:
targetPlatform: ${{ matrix.targetPlatform }}
- uses: actions/upload-artifact@v4
with:
name: Build-${{ matrix.targetPlatform }}
path: build/${{ matrix.targetPlatform }}