name: CI #on: # pull_request: {} # push: { branches: [master] } on: push: paths-ignore: - 'doc/**' - '*.md' jobs: requestActivationFile: runs-on: ubuntu-latest if: false steps: - name: Checkout repository uses: actions/checkout@v2 - name: Request manual activation file uses: MirrorNG/unity-runner@2.0.0 id: getManualLicenseFile with: entrypoint: /request_activation.sh - name: Expose as artifact uses: actions/upload-artifact@v1 with: name: Manual Activation File path: ${{ steps.getManualLicenseFile.outputs.filePath }} CI: name: Test runs-on: ubuntu-latest env: UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} if: true steps: # Checkout repository (required to test local actions) - name: Checkout repository uses: actions/checkout@v2 with: fetch-depth: 0 - name: Add Coverage Plugin uses: canastro/copy-action@0.0.2 with: source: Packages/manifest-coverage.json target: Packages/manifest.json - name: Activate license uses: MirrorNG/unity-runner@2.0.0 with: entrypoint: /activate.sh - name: Generate Solution uses: MirrorNG/unity-runner@2.0.0 with: # Arguments to pass to unity args: -buildTarget StandaloneWindows64 -customBuildName MirrorNG -customBuildPath ./build/StandaloneWindows64 -projectPath . -executeMethod UnityEditor.SyncVS.SyncSolution -quit # Configure test runner - name: Run editor Tests uses: MirrorNG/unity-runner@2.0.0 with: args: -runTests -testPlatform editmode -testResults Tests/editmode-results.xml -enableCodeCoverage -coverageResultsPath Tests - name: Run play Tests uses: MirrorNG/unity-runner@2.0.0 with: args: -runTests -testPlatform playmode -testResults Tests/playmode-results.xml -enableCodeCoverage -coverageResultsPath Tests # Upload artifacts - name: Archive test results uses: actions/upload-artifact@v1 if: always() with: name: Test results (editor mode) path: Tests - name: Publish test results uses: MirrorNG/nunit-reporter@v1.0.9 if: always() with: path: "Tests/*.xml" access-token: ${{ secrets.GITHUB_TOKEN }} - name: SonarQube analysis if: always() uses: MirrorNG/unity-runner@2.0.0 with: entrypoint: /sonar-scanner.sh projectKey: vis2k_Mirror projectName: Mirror sonarOrganisation: vis2k beginArguments: /d:sonar.verbose="true" /d:sonar.cs.nunit.reportsPaths=Tests/editmode-results.xml,Tests/playimode-results.xml /d:sonar.cs.opencover.reportsPaths=Tests/workspace-opencov/EditMode/TestCoverageResults_0000.xml,Tests/workspace-opencov/PlayMode/TestCoverageResults_0000.xml env: FrameworkPathOverride: /opt/Unity/Editor/Data/MonoBleedingEdge/ SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} Release: runs-on: windows-latest needs: CI steps: - name: Checkout repository uses: actions/checkout@v2 with: fetch-depth: 0 - name: Delete Tests run: | Remove-Item -Recurse -Force Assets\Mirror\Tests Remove-Item -Recurse -Force Assets\Mirror\Tests.meta - name: Delete Examples run: | Remove-Item -Recurse -Force Assets\Mirror\Examples Remove-Item -Recurse -Force Assets\Mirror\Examples.meta - name: Setup dotnet uses: actions/setup-dotnet@v1 with: dotnet-version: '3.1.100' - name: Install unity-packer run: dotnet tool install -g unity-packer - name: Package run: | unity-packer pack Mirror.unitypackage Assets/Mirror Assets/Mirror Assets/ScriptTemplates Assets/ScriptTemplates LICENSE Assets/Mirror/LICENSE - uses: actions/upload-artifact@v1 with: name: Mirror.unitypackage path: Mirror.unitypackage - name: Release uses: cycjimmy/semantic-release-action@v2 with: extra_plugins: | @semantic-release/exec @semantic-release/changelog @semantic-release/git branch: master env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}