Mirror/.github/workflows/main.yml

157 lines
5.3 KiB
YAML
Raw Normal View History

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
2022-01-16 04:08:55 +00:00
uses: MirrorNetworking/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
2022-01-16 04:08:55 +00:00
uses: MirrorNetworking/unity-runner@2.0.0
with:
entrypoint: /activate.sh
- name: Generate Solution
2022-01-16 04:08:55 +00:00
uses: MirrorNetworking/unity-runner@2.0.0
with:
# Arguments to pass to unity
2022-01-15 21:13:43 +00:00
args: -buildTarget StandaloneWindows64 -customBuildName Mirror -customBuildPath ./build/StandaloneWindows64 -projectPath . -executeMethod UnityEditor.SyncVS.SyncSolution -quit
# Configure test runner
- name: Run editor Tests
2022-01-16 04:08:55 +00:00
uses: MirrorNetworking/unity-runner@2.0.0
with:
args: -runTests -testPlatform editmode -testResults Tests/editmode-results.xml -enableCodeCoverage -coverageResultsPath Tests
- name: Run play Tests
2022-01-16 04:08:55 +00:00
uses: MirrorNetworking/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
2022-01-16 04:08:55 +00:00
uses: MirrorNetworking/nunit-reporter@v1.0.9
if: always()
with:
path: "Tests/*.xml"
access-token: ${{ secrets.GITHUB_TOKEN }}
- name: SonarQube analysis
if: always()
2022-01-16 04:08:55 +00:00
uses: MirrorNetworking/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
/d:sonar.coverage.exclusions=Assets/Mirror/Runtime/Transport/Telepathy/**/*.cs,Assets/Mirror/Runtime/Transport/SimpleWebTransport/**,Assets/Mirror/Runtime/Transport/KCP/kcp2k/**,Assets/Mirror/Cloud/**/*.cs,Assets/Mirror/Examples/**/*.cs,Assets/Mirror/Tests/**/*.cs
feat: Adding SimpleWebTransport v0.6.1 to mirror repo (#2323) * Intial commit see https://github.com/MirrorNetworking/SimpleWebTransport for full git histroy * Update main.yml Adding SimpleWebTransport to coverage exclusions * fully ignoring SimpleWebTransport from sonarcloud SimpleWebTransport has sonarcloud running on its own repo * using Buffer.BlockCopy * SimpleWebTransport v0.4.1 * making error messages use LogError (MirrorNetworking/SimpleWebTransport@5f0096c) * messages with length of 1 can be recieved by the client (MirrorNetworking/SimpleWebTransport@4237fc4) * stopping un-needed error logs after disconnect (MirrorNetworking/SimpleWebTransport@25ff190) * updating readme * SimpleWebTransport v0.5.0 * adding missing warn level to Log.Levels (MirrorNetworking/SimpleWebTransport@0f68498) * Allowing multiple instances of javascript client (MirrorNetworking/SimpleWebTransport#14) (MirrorNetworking/SimpleWebTransport@cc6e513) * SimpleWebTransport v0.5.8 * Stopping send error when client disconnects * Adding buffer pool * Using ArrayBuffer for receive * Removing info and verbose logging by default so performance isnt effected in editor or development builds. * Making WebSocketClientStandAlone use timeouts from inspector * Removing incorrect header from inspector * Removing readonly from logger so that it can be set * Fixing use of Interlocked in buffer pools * using ManualResetEventSlim * making Log.Exception always be logged * SimpleWebTransport v0.6.0 * Trying to fix error when connection is closed * Increase arraybuffer speed * Removing shared buffers from server handshake * Improving debug logging * fixing code smells * SimpleWebTransport v0.6.1 * making sure pending connection work when stop serve is called * removing exception that isnt directly thrown by this method this breaks docfx for some reason
2020-10-16 15:46:45 +00:00
/d:sonar.exclusions=Assets/Mirror/Runtime/Transport/SimpleWebTransport/**
# files ignored in code coverage:
feat: Adding SimpleWebTransport v0.6.1 to mirror repo (#2323) * Intial commit see https://github.com/MirrorNetworking/SimpleWebTransport for full git histroy * Update main.yml Adding SimpleWebTransport to coverage exclusions * fully ignoring SimpleWebTransport from sonarcloud SimpleWebTransport has sonarcloud running on its own repo * using Buffer.BlockCopy * SimpleWebTransport v0.4.1 * making error messages use LogError (MirrorNetworking/SimpleWebTransport@5f0096c) * messages with length of 1 can be recieved by the client (MirrorNetworking/SimpleWebTransport@4237fc4) * stopping un-needed error logs after disconnect (MirrorNetworking/SimpleWebTransport@25ff190) * updating readme * SimpleWebTransport v0.5.0 * adding missing warn level to Log.Levels (MirrorNetworking/SimpleWebTransport@0f68498) * Allowing multiple instances of javascript client (MirrorNetworking/SimpleWebTransport#14) (MirrorNetworking/SimpleWebTransport@cc6e513) * SimpleWebTransport v0.5.8 * Stopping send error when client disconnects * Adding buffer pool * Using ArrayBuffer for receive * Removing info and verbose logging by default so performance isnt effected in editor or development builds. * Making WebSocketClientStandAlone use timeouts from inspector * Removing incorrect header from inspector * Removing readonly from logger so that it can be set * Fixing use of Interlocked in buffer pools * using ManualResetEventSlim * making Log.Exception always be logged * SimpleWebTransport v0.6.0 * Trying to fix error when connection is closed * Increase arraybuffer speed * Removing shared buffers from server handshake * Improving debug logging * fixing code smells * SimpleWebTransport v0.6.1 * making sure pending connection work when stop serve is called * removing exception that isnt directly thrown by this method this breaks docfx for some reason
2020-10-16 15:46:45 +00:00
# Assets/Mirror/Runtime/Transport/Telepathy/** - has its own test in the Telepathy repo
# Assets/Mirror/Runtime/Transport/SimpleWebTransport/** - fully exclude this because it has sonar running on its repo
# Assets/Mirror/Runtime/Transport/KCP/kcp2k/** - has its own test in the kcp2k repo
# Assets/Mirror/Cloud/** - has its own tests in private cloud repo
# Assets/Mirror/Examples/** - examples dont need test coverage
2020-08-09 19:59:33 +00:00
# Assets/Mirror/Tests/** - tests dont need test coverage
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: 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:
2020-04-21 01:50:56 +00:00
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}