name: unity-build-validation on: schedule: - cron: '0 0 * * 0' # Every Sunday at midnight push: branches: - 'main' pull_request: branches: - '*' # Allows you to run this workflow manually from the Actions tab workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build: timeout-minutes: 20 runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-13] unity-versions: - 2019.4.40f1 (ffc62b691db5) - 2020.3.48f1 (b805b124c6b7) - 2021.3.41f1 (6c5a9e20c022) - 2022.3.40f1 (cbdda657d2f0) - 6000.0.13f1 (53a692e3fca9) include: - os: ubuntu-latest build-target: StandaloneLinux64 - os: windows-latest build-target: StandaloneWindows64 - os: macos-13 build-target: StandaloneOSX steps: - uses: actions/checkout@v4 - uses: actions/checkout@v4 with: repository: RageAgainstThePixel/com.utilities.buildpipeine path: test-project # Installs the Unity Editor based on your project version text file # sets -> env.UNITY_EDITOR_PATH # sets -> env.UNITY_PROJECT_PATH - uses: RageAgainstThePixel/unity-setup@v1 with: unity-version: ${{ matrix.unity-versions }} build-targets: ${{ matrix.build-target }} version-file: 'test-project/Utilities.BuildPipeline/ProjectSettings/ProjectVersion.txt' # Activates the installation with the provided credentials - uses: RageAgainstThePixel/activate-unity-license@v1 with: license: 'Personal' # Chooses license type to use [ Personal, Professional ] username: ${{ secrets.UNITY_USERNAME }} password: ${{ secrets.UNITY_PASSWORD }} # serial: ${{ secrets.UNITY_SERIAL }} # Required for pro activations - name: Unity Build (${{ matrix.build-target }}) uses: ./ #RageAgainstThePixel/unity-build with: build-target: ${{ matrix.build-target }} output-directory: ${{ github.workspace }}/Artifacts/${{ matrix.build-target }} additional-validation-args: -importTMProEssentialsAsset additional-build-args: -export Artifact-Name: '${{ github.run_number }}.${{ github.run_attempt }}-${{ runner.os }}-${{ matrix.build-target }}-${{ matrix.unity-versions }}-Artifacts' - name: Unity Build No Tests (${{ matrix.build-target }}) uses: ./ #RageAgainstThePixel/unity-build with: build-target: ${{ matrix.build-target }} output-directory: ${{ github.workspace }}/Artifacts/${{ matrix.build-target }} additional-validation-args: -importTMProEssentialsAsset additional-build-args: -export test: false Artifact-Name: '${{ github.run_number }}.${{ github.run_attempt }}-${{ runner.os }}-${{ matrix.build-target }}-${{ matrix.unity-versions }}-Artifacts' - name: Unity Build No Artifacts (${{ matrix.build-target }}) uses: ./ #RageAgainstThePixel/unity-build with: build-target: ${{ matrix.build-target }} output-directory: ${{ github.workspace }}/Artifacts/${{ matrix.build-target }} additional-validation-args: -importTMProEssentialsAsset additional-build-args: -export publish-artifacts: false