name: Build Heaven Studio on: push: branches: [ "master", "release_1_patches" ] workflow_dispatch: {} jobs: build: name: Build for ${{ matrix.targetPlatform }} runs-on: ubuntu-latest strategy: fail-fast: false matrix: targetPlatform: - StandaloneWindows64 - StandaloneOSX - StandaloneLinux64 steps: - name: Free Disk Space (Ubuntu) uses: jlumbroso/free-disk-space@main with: # this might remove tools that are actually needed, # if set to "true" but frees about 6 GB tool-cache: false # all of these default to true, but feel free to set to # "false" if necessary for your workflow android: true dotnet: false haskell: true large-packages: false docker-images: false swap-storage: false - name: Checkout repository uses: actions/checkout@v4 # with: # lfs: true # Cache reused Library files to speed up compilation - uses: actions/cache@v4.0.0 with: path: Library key: Library-${{ hashFiles('Assets/**', 'Packages/**', 'ProjectSettings/**') }} restore-keys: | Library- # Test (No tests yet, leaving this here for future.) # - name: Run tests # uses: game-ci/unity-test-runner@v2 # env: # UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} # with: # githubToken: ${{ secrets.GITHUB_TOKEN }} - name: Build project uses: game-ci/unity-builder@v4 env: UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} with: unityVersion: auto buildName: Heaven Studio buildsPath: build buildMethod: UnityBuilderAction.BuildScript.Build targetPlatform: ${{ matrix.targetPlatform }} # clean up stuff we no longer need - name: Clean up run: | rm -rf ./Assets rm -rf ./Packages rm -rf ./ProjectSettings # Required on Mac/Linux to keep executable permissions - name: Tar files if: matrix.targetPlatform != 'StandaloneWindows64' run: tar -cvf ${{ matrix.targetPlatform }}.tar ./build/${{ matrix.targetPlatform }} - name: Upload Artifact (Windows) if: matrix.targetPlatform == 'StandaloneWindows64' uses: actions/upload-artifact@v3 with: name: ${{ matrix.targetPlatform }}-build path: ./build/${{ matrix.targetPlatform }}/ - name: Upload Artifact (macOS / Linux) if: matrix.targetPlatform != 'StandaloneWindows64' uses: actions/upload-artifact@v3 with: name: ${{ matrix.targetPlatform }}-build path: ${{ matrix.targetPlatform }}.tar - name: debug thing run: tree .