Visualizing dependency size via sbt assembly - scala

I am using sbt assembly to package my project into one fat jar. I wanted to understand if I can visualize how much disk space is each dependency taking in my fat jar.

AFAIK there is no "magic" in SBT assembly, meaning the whole content of each dependency JAR is added to the fat JAR. For instance no "tree shaking" like in other languages to remove unused classes.
Thus, one way to get what you're looking for is to package your project without assembly and look at the lib directory: each JAR used in the production code will be present and you can get its size.

Take a look at sbt-dependency-graph plugin.
sbt dependencyStats: Shows a table with each module a row with (transitive) Jar sizes and number of dependencies
➭ sbt dependencyStats
[info] TotSize JarSize #TDe #Dep Module
[info] 61.232 MB ------- MB 88 22 a-projects_2.13:0.1
[info] 22.995 MB 0.393 MB 25 8 client-a-akka_2.13:0.0.1
[info] 22.788 MB 0.186 MB 25 8 client-b-akka_2.13:0.0.1
[info] 19.593 MB 0.012 MB 16 3 de.heikoseeberger:akka-http-json4s_2.13:1.27.0
[info] 15.710 MB 0.176 MB 6 2 io.circe:circe-generic_2.13:0.14.1
[info] 12.429 MB 0.003 MB 7 2 io.circe:circe-parser_2.13:0.14.1
[info] 12.426 MB 0.029 MB 6 2 io.circe:circe-jawn_2.13:0.14.1
[info] 12.313 MB 1.116 MB 4 2 io.circe:circe-core_2.13:0.14.1
[info] 11.553 MB 4.749 MB 7 4 com.typesafe.akka:akka-stream_2.13:2.6.12
[info] 11.184 MB 5.915 MB 2 2 org.typelevel:cats-core_2.13:2.6.1
[info] 8.705 MB 2.855 MB 12 2 com.amazonaws:aws-java-sdk-ssm:1.12.210
[info] 7.818 MB 0.134 MB 12 4 net.codingwell:scala-guice_2.13:5.0.2
[info] 7.763 MB 1.257 MB 13 3 com.amazonaws:aws-java-sdk-s3:1.12.210
[info] 7.060 MB 1.848 MB 3 1 com.typesafe.akka:akka-http_2.13:10.2.3
[info] 6.841 MB 0.755 MB 7 7 com.typesafe.play:play-json_2.13:2.9.2
[info] 6.507 MB 0.656 MB 12 2 com.amazonaws:aws-java-sdk-kms:1.12.210
[info] 6.001 MB 0.151 MB 12 2 com.amazonaws:aws-java-sdk-sts:1.12.210
[info] 5.823 MB 1.044 MB 10 7 com.amazonaws:aws-java-sdk-core:1.12.210
[info] 5.262 MB 5.262 MB 0 0 org.typelevel:cats-kernel_2.13:2.6.1
[info] 5.211 MB 4.207 MB 2 2 com.typesafe.akka:akka-http-core_2.13:10.2.3
[info] 5.013 MB 0.013 MB 5 2 com.github.pureconfig:pureconfig-enumeratum_2.13:0.17.1
[info] 4.598 MB 3.663 MB 2 2 com.typesafe.akka:akka-actor_2.13:2.6.12
[info] 4.546 MB 0.000 MB 5 2 com.github.pureconfig:pureconfig_2.13:0.17.1
[info] 4.545 MB 0.140 MB 4 3 com.github.pureconfig:pureconfig-generic_2.13:0.17.1
...
[info] Columns are
[info] - Jar-Size including dependencies
[info] - Jar-Size
[info] - Number of transitive dependencies
[info] - Number of direct dependencies
[info] - ModuleID

Related

Github actions Unity toy example

I try to setup a toy Unity project to play around with github actions. I'm following a simple tutorial. I can run a successful .github/workflows/activation.yml action as described in the above tutorial. However, already the next step is failing. Given my Unity activation I'm trying to run the following simple test:
name: Test
on:
pull_request: {}
push: { branches: [master] }
env:
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
jobs:
build:
name: Test project
runs-on: ubuntu-latest
steps:
# Checkout
- name: Checkout repository
uses: actions/checkout#v2
with:
lfs: true
# Cache
- uses: actions/cache#v2
with:
path: Library
key: Library
# Test
- name: Run tests
uses: game-ci/unity-test-runner#v2
with:
unityVersion: 2020.3.15f2
The test fails, and the log is very lenghty, so I'm not sure what the exact problem is. Here is the log:
Run game-ci/unity-test-runner#v2
with:
unityVersion: 2020.3.15f2
testMode: all
coverageOptions: generateAdditionalMetrics;generateHtmlReport;generateBadgeReport
artifactsPath: artifacts
useHostNetwork: false
checkName: Test Results
env:
UNITY_LICENSE: ***
/usr/bin/docker run --workdir /github/workspace --rm --env UNITY_LICENSE --env UNITY_LICENSE_FILE --env UNITY_EMAIL --env UNITY_PASSWORD --env UNITY_SERIAL --env UNITY_VERSION=2020.3.15f2 --env PROJECT_PATH=. --env CUSTOM_PARAMETERS= --env TEST_PLATFORMS=playmode;editmode;COMBINE_RESULTS --env COVERAGE_OPTIONS=generateAdditionalMetrics;generateHtmlReport;generateBadgeReport --env COVERAGE_RESULTS_PATH=CodeCoverage --env ARTIFACTS_PATH=artifacts --env GITHUB_REF --env GITHUB_SHA --env GITHUB_REPOSITORY --env GITHUB_ACTOR --env GITHUB_WORKFLOW --env GITHUB_HEAD_REF --env GITHUB_BASE_REF --env GITHUB_EVENT_NAME --env GITHUB_WORKSPACE=/github/workspace --env GITHUB_ACTION --env GITHUB_EVENT_PATH --env RUNNER_OS --env RUNNER_TOOL_CACHE --env RUNNER_TEMP --env RUNNER_WORKSPACE --env GIT_PRIVATE_TOKEN= --env CHOWN_FILES_TO= --volume /home/runner/work/_temp/_github_home:/root:z --volume /home/runner/work/_temp/_github_workflow:/github/workflow:z --volume /home/runner/work/CiCdProject/CiCdProject:/github/workspace:z --volume /home/runner/work/_actions/game-ci/unity-test-runner/v2/dist/steps:/steps:z --volume /home/runner/work/_actions/game-ci/unity-test-runner/v2/dist/entrypoint.sh:/entrypoint.sh:z --env USE_EXIT_CODE=true unityci/editor:ubuntu-2020.3.15f2-linux-il2cpp-1 /bin/bash -c /entrypoint.sh
Unable to find image 'unityci/editor:ubuntu-2020.3.15f2-linux-il2cpp-1' locally
ubuntu-2020.3.15f2-linux-il2cpp-1: Pulling from unityci/editor
08a6abff8943: Pulling fs layer
17bc3eeef474: Pulling fs layer
7525af58113d: Pulling fs layer
643424925c07: Pulling fs layer
a64283161285: Pulling fs layer
6f8bb29b92de: Pulling fs layer
f93bd952912f: Pulling fs layer
73fbdbda7cd3: Pulling fs layer
d9a4cec5ee9b: Pulling fs layer
4657a6a72083: Pulling fs layer
4f4fb700ef54: Pulling fs layer
f397d9313f62: Pulling fs layer
643424925c07: Waiting
a64283161285: Waiting
6f8bb29b92de: Waiting
f93bd952912f: Waiting
73fbdbda7cd3: Waiting
d9a4cec5ee9b: Waiting
4657a6a72083: Waiting
4f4fb700ef54: Waiting
f397d9313f62: Waiting
17bc3eeef474: Verifying Checksum
17bc3eeef474: Download complete
08a6abff8943: Verifying Checksum
08a6abff8943: Download complete
a64283161285: Verifying Checksum
a64283161285: Download complete
643424925c07: Verifying Checksum
643424925c07: Download complete
6f8bb29b92de: Verifying Checksum
6f8bb29b92de: Download complete
f93bd952912f: Verifying Checksum
f93bd952912f: Download complete
d9a4cec5ee9b: Verifying Checksum
d9a4cec5ee9b: Download complete
4657a6a72083: Verifying Checksum
4657a6a72083: Download complete
4f4fb700ef54: Verifying Checksum
4f4fb700ef54: Download complete
7525af58113d: Verifying Checksum
7525af58113d: Download complete
f397d9313f62: Verifying Checksum
f397d9313f62: Download complete
08a6abff8943: Pull complete
17bc3eeef474: Pull complete
7525af58113d: Pull complete
643424925c07: Pull complete
a64283161285: Pull complete
6f8bb29b92de: Pull complete
f93bd952912f: Pull complete
73fbdbda7cd3: Verifying Checksum
73fbdbda7cd3: Download complete
73fbdbda7cd3: Pull complete
d9a4cec5ee9b: Pull complete
4657a6a72083: Pull complete
4f4fb700ef54: Pull complete
f397d9313f62: Pull complete
Digest: sha256:1046f6280f5798028870d5e5e0c881d4d66a950f1a25f0dbbb3b75fe865b6e48
Status: Downloaded newer image for unityci/editor:ubuntu-2020.3.15f2-linux-il2cpp-1
Changing to "/github/workspace/_activate-license" directory.
/github/workspace/_activate-license /github/workspace
Requesting activation (personal license)
Activation complete.
/github/workspace
/steps/set_gitcredential.sh: line 1: #!/usr/bin/env: No such file or directory
GIT_PRIVATE_TOKEN unset skipping
---------- git config --list -------------
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
filter.lfs.clean=git-lfs clean -- %f
---------- git config --list --show-origin -------------
file:/etc/gitconfig filter.lfs.smudge=git-lfs smudge -- %f
file:/etc/gitconfig filter.lfs.process=git-lfs filter-process
file:/etc/gitconfig filter.lfs.required=true
file:/etc/gitconfig filter.lfs.clean=git-lfs clean -- %f
Using project path "/github/workspace/.".
Using artifacts path "artifacts" to save test results.
Using coverage results path "CodeCoverage" to save test coverage results.
Using custom parameters .
Using Unity version "2020.3.15f2" to test.
###########################
# Artifacts folder #
###########################
Creating "/github/workspace/artifacts" if it does not exist.
###########################
# Project directory #
###########################
total 40K
drwxr-xr-x 9 1001 121 4.0K Nov 4 11:53 .
drwxr-xr-x 4 root root 4.0K Nov 4 11:53 ..
drwxr-xr-x 9 1001 121 4.0K Nov 4 11:51 .git
drwxr-xr-x 3 1001 121 4.0K Nov 4 11:51 .github
-rw-r--r-- 1 1001 121 1.4K Nov 4 11:51 .gitignore
drwxr-xr-x 6 1001 121 4.0K Nov 4 11:51 Assets
drwxr-xr-x 2 1001 121 4.0K Nov 4 11:51 Packages
drwxr-xr-x 2 1001 121 4.0K Nov 4 11:51 ProjectSettings
drwxr-xr-x 2 root root 4.0K Nov 4 11:53 _activate-license
drwxr-xr-x 2 root root 4.0K Nov 4 11:53 artifacts
###########################
# Testing in playmode #
###########################
[Licensing::Module] Channel doesn't exist: "LicenseClient-root"
[Licensing::Module] Successfully launched the LicensingClient (PId: 90)
[SignatureVerifier] Application signature verification not supported on this platform.
[Licensing::Module] Successfully connected to LicensingClient on channel: "LicenseClient-root" (connect: 0.95s, validation: 0.06s, handshake: 0.00s)
[Licensing::Module] Connected to LicensingClient (PId: 90, launch time: 0.00, total connection time: 1.01s)
Entitlement-based licensing initiated
[LicensingClient] Licenses updated successfully
Desktop is 640 x 480 # 60 Hz
LICENSE SYSTEM [2022114 11:53:33] Next license update check is after 2022-11-04T15:56:03
LICENSE SYSTEM [2022114 11:53:33] Current license is already valid and activated. Skipping license activation process (Provided username/password will be ignored).
[Licensing::Module] Serial number assigned to: "F4-YA49-V8UH-G27B-6NHM-XXXX"
[Package Manager] Server::Start -- Port 51195 was selected
COMMAND LINE ARGUMENTS:
/opt/unity/Editor/Unity
-batchmode
-batchmode
-logFile
/github/workspace/artifacts/playmode.log
-projectPath
/github/workspace/.
-coverageResultsPath
/github/workspace/CodeCoverage
-runTests
-testPlatform
playmode
-testResults
/github/workspace/artifacts/playmode-results.xml
-enableCodeCoverage
-debugCodeOptimization
-coverageOptions
generateAdditionalMetrics;generateHtmlReport;generateBadgeReport
Successfully changed project path to: /github/workspace/.
/github/workspace
Using Asset Import Pipeline V2.
Rebuilding Library because the asset database could not be found!
[Package Manager] Done resolving packages in 35.12s seconds
[Package Manager] Done checking package constraints in 0.00s seconds
[Package Manager]
Registered 45 packages:
Packages from [https://packages.unity.com]:
com.unity.automated-testing#0.8.1-preview.2 (location: /github/workspace/Library/PackageCache/com.unity.automated-testing#0.8.1-preview.2)
com.unity.collab-proxy#1.15.7 (location: /github/workspace/Library/PackageCache/com.unity.collab-proxy#1.15.7)
com.unity.ide.rider#2.0.7 (location: /github/workspace/Library/PackageCache/com.unity.ide.rider#2.0.7)
com.unity.ide.visualstudio#2.0.12 (location: /github/workspace/Library/PackageCache/com.unity.ide.visualstudio#2.0.12)
com.unity.ide.vscode#1.2.4 (location: /github/workspace/Library/PackageCache/com.unity.ide.vscode#1.2.4)
com.unity.test-framework#1.1.33 (location: /github/workspace/Library/PackageCache/com.unity.test-framework#1.1.33)
com.unity.textmeshpro#3.0.6 (location: /github/workspace/Library/PackageCache/com.unity.textmeshpro#3.0.6)
com.unity.timeline#1.4.8 (location: /github/workspace/Library/PackageCache/com.unity.timeline#1.4.8)
com.unity.ext.nunit#1.0.6 (location: /github/workspace/Library/PackageCache/com.unity.ext.nunit#1.0.6)
com.unity.nuget.newtonsoft-json#2.0.0 (location: /github/workspace/Library/PackageCache/com.unity.nuget.newtonsoft-json#2.0.0)
com.unity.services.core#1.0.1 (location:
[... some more similar lines ...]
com.unity.modules.xr#1.0.0 (location: /github/workspace/Library/PackageCache/com.unity.modules.xr#1.0.0)
com.unity.modules.subsystems#1.0.0 (location: /github/workspace/Library/PackageCache/com.unity.modules.subsystems#1.0.0)
com.unity.modules.uielementsnative#1.0.0 (location: /github/workspace/Library/PackageCache/com.unity.modules.uielementsnative#1.0.0)
PlayerPrefs - Creating folder: /root/.config/unity3d/DefaultCompany
PlayerPrefs - Creating folder: /root/.config/unity3d/DefaultCompany/CiCdProject
Unable to load player prefs
[Subsystems] No new subsystems found in resolved package list.
Package Manager log level set to [2]
[Package Manager] Done registering packages in 0.05s seconds
Refreshing native plugins compatible for Editor in 0.25 ms, found 0 plugins.
Preloading 0 native plugins for Editor in 0.00 ms.
Initialize engine version: 2020.3.15f2 (6cf78cb77498)
[Subsystems] Discovering subsystems at path /opt/unity/Editor/Data/Resources/UnitySubsystems
[Subsystems] Discovering subsystems at path /github/workspace/Assets
GLX Extensions: GLX_ARB_context_flush_control GLX_ARB_create_context GLX_ARB_create_context_profile GLX_ARB_fbconfig_float GLX_ARB_framebuffer_sRGB GLX_ARB_get_proc_address GLX_ARB_multisample GLX_EXT_create_context_es2_profile GLX_EXT_create_context_es_profile GLX_EXT_fbconfig_packed_float GLX_EXT_framebuffer_sRGB GLX_EXT_import_context GLX_EXT_texture_from_pixmap GLX_EXT_visual_info
[... some more similar lines ...]
GL_EXT_shader_integer_mix GL_EXT_texture_array GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_r
gtc GL_EXT_texture_compression_s3tc GL_EXT_texture_integer GL_EXT_texture_mirror_clamp GL_EXT_texture_sRGB GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_decode GL_EXT_texture_shared_exponent GL_EXT_texture_snorm GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_IBM_multimode_draw_arrays GL_KHR_context_flush_control GL_KHR_debug GL_KHR_no_error GL_KHR_parallel_shader_compile GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_sliced_3d GL_MESA_pack_invert GL_MESA_shader_integer_functions GL_MESA_texture_signed_rgba GL_MESA_ycbcr_texture GL_NV_conditional_render GL_NV_depth_clamp GL_NV_packed_depth_stencil GL_OES_EGL_image GL_S3_s3tc
OPENGL LOG: Creating OpenGL 3.3 graphics device ; Context level <OpenGL 3.3> ; Context handle 1921441248
Initialize mono
Mono path[0] = '/opt/unity/Editor/Data/Managed'
Mono path[1] = '/opt/unity/Editor/Data/MonoBleedingEdge/lib/mono/unityjit'
Mono config path = '/opt/unity/Editor/Data/MonoBleedingEdge/etc'
Using monoOptions --debugger-agent=transport=dt_socket,embedding=1,server=y,suspend=n,address=127.0.0.1:56087
AcceleratorClientConnectionCallback - disconnected - :0
Begin MonoManager ReloadAssembly
Registering precompiled unity dll's ...
Register platform support module: /opt/unity/Editor/Data/PlaybackEngines/LinuxStandaloneSupport/UnityEditor.LinuxStandalone.Extensions.dll
Registered in 0.002586 seconds.
Native extension for LinuxStandalone target not found
Refreshing native plugins compatible for Editor in 0.01 ms, found 0 plugins.
Preloading 0 native plugins for Editor in 0.00 ms.
Mono: successfully reloaded assembly
- Completed reload, in 1.910 seconds
Domain Reload Profiling:
ReloadAssembly (1943ms)
BeginReloadAssembly (114ms)
ExecutionOrderSort (0ms)
DisableScriptedObjects (0ms)
BackupInstance (0ms)
ReleaseScriptingObjects (0ms)
CreateAndSetChildDomain (1ms)
EndReloadAssembly (780ms)
LoadAssemblies (113ms)
RebuildTransferFunctionScriptingTraits (0ms)
SetupTypeCache (205ms)
ReleaseScriptCaches (0ms)
RebuildScriptCaches (50ms)
SetupLoadedEditorAssemblies (388ms)
LogAssemblyErrors (0ms)
InitializePlatformSupportModulesInManaged (15ms)
SetLoadedEditorAssemblies (1ms)
RefreshPlugins (0ms)
BeforeProcessingInitializeOnLoad (27ms)
ProcessInitializeOnLoadAttributes (270ms)
ProcessInitializeOnLoadMethodAttributes (75ms)
AfterProcessingInitializeOnLoad (0ms)
EditorAssembliesLoaded (1ms)
ExecutionOrderSort2 (0ms)
AwakeInstancesAfterBackupRestoration (0ms)
Platform modules already initialized, skipping
Validating Project structure ... 0.000777 seconds.
Shader import version has changed; will reimport all shaders...
Upgrading shader files ...0.000503 seconds.
Application.AssetDatabase Initial Script Refresh Start
A meta data file (.meta) exists but its folder 'Assets/AutomatedQA/Temp' can't be found, and has been created. Empty directories cannot be stored in version control, so it's assumed that the meta data file is for an empty directory in version control. When moving or deleting folders outside of Unity, please ensure that the corresponding .meta file is moved or deleted along with it.
Start importing Assets using Guid(00000000000000001000000000000000) Importer(-1,00000000000000000000000000000000) -> (artifact id: '022db298e6e2d271c865ba386d6c14ac') in 0.013478 seconds
Start importing ProjectSettings/InputManager.asset using Guid(00000000000000002000000000000000) Importer(-1,00000000000000000000000000000000) -> (artifact id: '0b0c959102eaca86ebc4dc5127dfa121') in 0.001193 seconds
Start importing ProjectSettings/TagManager.asset using Guid(00000000000000003000000000000000) Importer(-1,00000000000000000000000000000000) -> (artifact id: '7ecf41f796a866087ac711db5f79280f') in 0.000925 seconds
[... some more similar lines ...]
Start importing Packages/com.unity.collab-proxy/Editor/PlasticSCM/Views/CreateWorkspace using Guid(173564ff53b74604b8e070b51861b3f9) Importer(-1,00000000000000000000000000000000) -> (artifact id: 'c20bb1b107bc7a9c3d628fccf5f85133') in 0.000509 seconds
Start importing Packages/com.unity.collab-proxy/Editor/Collaborate/Models/Structures using Guid(17ec05e4840248f4c8392a5f54cbadbd) Importer(-1,00000000000000000000000000000000) -> (artifact id: '111c4ac10e32d423cc4e967294c4980a') in 0.000511 seconds
Unloading 97 unused Assets to reduce memory usage. Loaded Objects now: 2060.
Total: 6.473700 ms (FindLiveObjects: 0.283100 ms CreateObjectMapping: 0.070000 ms MarkObjects: 3.854000 ms DeleteObjects: 2.263600 ms)
ProgressiveSceneManager::Cancel()
Batchmode quit successfully invoked - shutting down!
[Performance] Application.InitializeProject : 1 samples, Peak. 5.99 s (1.0x), Avg. 5.99 s, Total. 5.995 s (84.0%)
[Performance] Application.PackageManager.StartServer : 1 samples, Peak. 1.70 ms (1.0x), Avg. 1.70 ms, Total. 1.698 ms (0.0%)
[Performance] Application.AcquireProjectLock : 1 samples, Peak. 1.91 ms (1.0x), Avg. 1.91 ms, Total. 1.907 ms (0.0%)
[Performance] Application.InitializeEngineNoGraphics : 1 samples, Peak. 10.7 ms (1.0x), Avg. 10.7 ms, Total. 10.66 ms (0.1%)
[Performance] Application.PackageManager.Initialize : 1 samples, Peak. 626 ms (1.0x), Avg. 626 ms, Total. 626.5 ms (8.8%)
[Performance] CurlRequestCheck : 13 samples, Peak. 77.5 us (3.4x), Avg. 22.7 us, Total. 295.3 us (0.0%)
[Performance] VersionControl.Task.Wait : 1 samples, Peak. 12.2 us (1.0x), Avg. 12.2 us, Total. 12.20 us (0.0%)
[Performance] Application.EngineGraphics.Initialize : 1 samples, Peak. 35.7 ms (1.0x), Avg. 35.7 ms, Total. 35.71 ms (0.5%)
[Performance] Application.GI.Initialize : 1 samples, Peak. 4.48 ms (1.0x), Avg. 4.48 ms, Total. 4.480 ms (0.1%)
[Performance] Application.LoadAllDefaultResourcesFromEditor : 1 samples, Peak. 2.63 ms (1.0x), Avg. 2.63 ms, Total. 2.630 ms (0.0%)
[Performance] Application.LoadMonoAssemblies : 1 samples, Peak. 1.59 s (1.0x), Avg. 1.59 s, Total. 1.587 s (22.2%)
[Performance] RestoreManagedReferences : 2 samples, Peak. 136 ms (2.0x), Avg. 68.0 ms, Total. 136.0 ms (1.9%)
[Performance] ProcessService.EditorAfterLoadAllAssemblies : 2 samples, Peak. 50.6 ms (1.2x), Avg. 41.1 ms, Total. 82.26 ms (1.2%)
[Performance] Application.ReadLicenseInfo : 1 samples, Peak. 25.7 ms (1.0x), Avg. 25.7 ms, Total. 25.70 ms (0.4%)
[Performance] Application.InitialScriptRefresh : 1 samples, Peak. 2.81 s (1.0x), Avg. 2.81 s, Total. 2.809 s (39.3%)
[Performance] Compiling Scripts : 1 samples, Peak. 101 ms (1.0x), Avg. 101 ms, Total. 101.4 ms (1.4%)
[Performance] Application.AssetDatabase.Refresh : 1 samples, Peak. 91.8 ms (1.0x), Avg. 91.8 ms, Total. 91.79 ms (1.3%)
[Performance] AssetDatabase.Refresh : 1 samples, Peak. 91.8 ms (1.0x), Avg. 91.8 ms, Total. 91.77 ms (1.3%)
[Performance] Application.ImportAssetsWithMismatchingAssetImporterVersion : 1 samples, Peak. 103 ms (1.0x), Avg. 103 ms, Total. 103.1 ms (1.4%)
[Performance] Application.SyncCurrentColorSpace : 1 samples, Peak. 158 ms (1.0x), Avg. 158 ms, Total. 157.9 ms (2.2%)
[Performance] Application.OnUsbDevicesChanged : 1 samples, Peak. 3.20 us (1.0x), Avg. 3.20 us, Total. 3.200 us (0.0%)
[Performance] Application.AssetInstanceCacheUpdate : 1 samples, Peak. 500 ns (1.0x), Avg. 500 ns, Total. 500.0 ns (0.0%)
[Performance] Application.UnityExtensions.Initialize : 1 samples, Peak. 2.01 ms (1.0x), Avg. 2.01 ms, Total. 2.007 ms (0.0%)
[Performance] Application.InitializeManagedCompilationPipeline : 1 samples, Peak. 64.8 ms (1.0x), Avg. 64.8 ms, Total. 64.77 ms (0.9%)
[Performance] Application.ExecuteStartups : 1 samples, Peak. 76.4 ms (1.0x), Avg. 76.4 ms, Total. 76.36 ms (1.1%)
[Performance] Gizmo.RebuildRenderers : 1 samples, Peak. 69.2 ms (1.0x), Avg. 69.2 ms, Total. 69.24 ms (1.0%)
[Performance] Gizmo.AddGizmoRenderers : 36 samples, Peak. 3.16 ms (21.3x), Avg. 148 us, Total. 5.334 ms (0.1%)
[Performance] Application.InitializeMenu : 1 samples, Peak. 80.6 ms (1.0x), Avg. 80.6 ms, Total. 80.64 ms (1.1%)
[Performance] UpdateAllMenus : 1 samples, Peak. 80.6 ms (1.0x), Avg. 80.6 ms, Total. 80.63 ms (1.1%)
[Performance] Application.editorInitializingProject : 1 samples, Peak. 33.0 us (1.0x), Avg. 33.0 us, Total. 33.00 us (0.0%)
[Performance] GUIView.RepaintAll.PlayerLoopController : 1 samples, Peak. 1.60 us (1.0x), Avg. 1.60 us, Total. 1.600 us (0.0%)
[Performance] Application.InvokeFinishedLoadingProject : 1 samples, Peak. 57.0 ms (1.0x), Avg. 57.0 ms, Total. 57.03 ms (0.8%)
[Performance] ProcessService.OnProjectLoaded : 1 samples, Peak. 52.1 ms (1.0x), Avg. 52.1 ms, Total. 52.09 ms (0.7%)
AcceleratorClientConnectionCallback - disconnected - :0
Cleanup mono
debugger-agent: Unable to listen on 44
Exiting batchmode successfully now!
Run succeeded, no failures occurred
###########################
# COMBINE_RESULTS Results #
###########################
chmod: cannot access '/github/workspace/CodeCoverage': No such file or directory
Changing to "/github/workspace/_activate-license" directory.
/github/workspace/_activate-license /github/workspace
/github/workspace
###########################
# Failure #
###########################
Please note that the exit code is not very descriptive.
Most likely it will not help you solve the issue.
To find the reason for failure: please search for errors in the log above.
Warning: The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Warning: The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Error: The process '/usr/bin/docker' failed with exit code 2
There are some Error messages that pop up like
chmod: cannot access '/github/workspace/CodeCoverage': No such file or directory
or
Error: The process '/usr/bin/docker' failed with exit code 2
but it's unclear to me, whether they are really at the root of the problem or what to do about them...
ok, I found a "Simple Example" on the game.ci website:
name: Test
on:
workflow_dispatch: {}
pull_request: {}
push: { branches: [master] }
jobs:
build:
name: Build my project ✨
runs-on: ubuntu-latest
steps:
# Checkout
- name: Checkout repository
uses: actions/checkout#v2
with:
lfs: true
# Cache
- uses: actions/cache#v2
with:
path: Library
key: Library-${{ hashFiles('Assets/**', 'Packages/**', 'ProjectSettings/**') }}
restore-keys: |
Library-
# Test
- name: Run tests
uses: game-ci/unity-test-runner#v2
env:
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
with:
githubToken: ${{ secrets.GITHUB_TOKEN }}
# Build
- name: Build project
uses: game-ci/unity-builder#v2
env:
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
with:
targetPlatform: Android
# Output
- uses: actions/upload-artifact#v2
with:
name: Build
path: build
This one, seems to run through successfully.
Minor bug:
Your .gitignore needs to ignore "/artifacts", otherwise the build will fail.

OCI error "/opt/docker/bin/my_job" : no such file or directory using sbt docker:publishLocal

If you use sbt docker:publishLocal to build a docker image from your scala project, you will see the below lines printed out:
[info] Packaging /home/user123/myUser/repos/my_job/target/scala-2.12/app_internal_2.12-0.1.jar ...
[info] Done packaging.
[info] Sending build context to Docker daemon 129.7MB
[info] Step 1/7 : FROM openjdk:11-jre
[info] ---> 8c8b7f0ab84c
[info] Step 2/7 : LABEL MAINTAINER="no_name#my.org"
[info] ---> Using cache
[info] ---> d5caf9a92999
[info] Step 3/7 : WORKDIR /opt/docker
[info] ---> Using cache
[info] ---> d887eeb10e8e
[info] Step 4/7 : ADD --chown=root:root opt /opt
[info] ---> 1b43a84a5e32
[info] Step 5/7 : USER root
[info] ---> Running in 282c7f7de8ad
[info] Removing intermediate container 282c7f7de8ad
[info] ---> 11fed4892683
[info] Step 6/7 : ENTRYPOINT ["/opt/docker/bin/my_job"]
[info] ---> Running in 1d297dd1e960
[info] Removing intermediate container 1d297dd1e960
[info] ---> 1923a8df3fcf
[info] Step 7/7 : CMD []
[info] ---> Running in 3d9f7a4a262b
[info] Removing intermediate container 3d9f7a4a262b
[info] ---> d67ed46fd3fe
[info] Successfully built d67ed46fd3fe
[info] Successfully tagged docker_app_internal:0.1
[info] Built image docker_app_internal with tags [0.1]
[success] Total time: 25 s, completed Mar 27, 2019 10:23:35 AM
You may get confused by the error. And why:
THIS WORKS:
docker run -it --entrypoint=/bin/bash docker_app_internal:0.1 -i
Does not work:
docker run docker_app_internal:0.1
Thanks to #Muki for creating this helpful project.
Refer: https://github.com/sbt/sbt-native-packager
If you have the project root folder different from MainClass name, then your entrypoint using sbt docker:publishLocal becomes /your/linuxpath/bin/rootFolder. But, the actual file that gets created in the docker image is /your/linuxpath/bin/main-class (if your main class name is MainClass)
To fix this, please explicitly mention the entrypoint in build.sbt as below:
dockerEntrypoint := Seq("/opt/docker/bin/main-class")

Cluster running on single machine eats too much space of /dev/shm

I am running the example provided by official akka: https://github.com/akka/akka-samples/tree/2.5/akka-sample-cluster-scala.
My OS is: Linux Mint 19 with the latest kernel.
And for the Worker Dial-in Example(Transformation Example), I cannot fully run this example as there is no enough space in /dev/shm. Although I have more than 2GB available space.
The problem is when I launch the first frontend node, it eats some KBs space. When I launch the second one, it eats some MBs space. When I launch the third one, it eats some hundred of MBs space. Further I just cannot even launch the fourth one, it just throws an error which causes the whole cluster down:
[info] Warning: space is running low in /dev/shm (tmpfs) threshold=167,772,160 usable=95,424,512
[info] Warning: space is running low in /dev/shm (tmpfs) threshold=167,772,160 usable=45,088,768
[info] [ERROR] [11/05/2018 21:03:56.156] [ClusterSystem-akka.actor.default-dispatcher-12] [akka://ClusterSystem#127.0.0.1:57246/] swallowing exception during message send
[info] io.aeron.exceptions.RegistrationException: IllegalStateException : Insufficient usable storage for new log of length=50335744 in /dev/shm (tmpfs)
[info] at io.aeron.ClientConductor.onError(ClientConductor.java:174)
[info] at io.aeron.DriverEventsAdapter.onMessage(DriverEventsAdapter.java:81)
[info] at org.agrona.concurrent.broadcast.CopyBroadcastReceiver.receive(CopyBroadcastReceiver.java:100)
[info] at io.aeron.DriverEventsAdapter.receive(DriverEventsAdapter.java:56)
[info] at io.aeron.ClientConductor.service(ClientConductor.java:660)
[info] at io.aeron.ClientConductor.awaitResponse(ClientConductor.java:696)
[info] at io.aeron.ClientConductor.addPublication(ClientConductor.java:371)
[info] at io.aeron.Aeron.addPublication(Aeron.java:259)
[info] at akka.remote.artery.aeron.AeronSink$$anon$1.<init>(AeronSink.scala:103)
[info] at akka.remote.artery.aeron.AeronSink.createLogicAndMaterializedValue(AeronSink.scala:100)
[info] at akka.stream.impl.GraphStageIsland.materializeAtomic(PhasedFusingActorMaterializer.scala:630)
[info] at akka.stream.impl.PhasedFusingActorMaterializer.materialize(PhasedFusingActorMaterializer.scala:450)
[info] at akka.stream.impl.PhasedFusingActorMaterializer.materialize(PhasedFusingActorMaterializer.scala:415)
[info] at akka.stream.impl.PhasedFusingActorMaterializer.materialize(PhasedFusingActorMaterializer.scala:406)
[info] at akka.stream.scaladsl.RunnableGraph.run(Flow.scala:588)
[info] at akka.remote.artery.Association.runOutboundOrdinaryMessagesStream(Association.scala:726)
[info] at akka.remote.artery.Association.runOutboundStreams(Association.scala:657)
[info] at akka.remote.artery.Association.associate(Association.scala:649)
[info] at akka.remote.artery.AssociationRegistry.association(Association.scala:989)
[info] at akka.remote.artery.ArteryTransport.association(ArteryTransport.scala:724)
[info] at akka.remote.artery.ArteryTransport.send(ArteryTransport.scala:710)
[info] at akka.remote.RemoteActorRef.$bang(RemoteActorRefProvider.scala:591)
[info] at akka.actor.ActorRef.tell(ActorRef.scala:124)
[info] at akka.actor.ActorSelection$.rec$1(ActorSelection.scala:265)
[info] at akka.actor.ActorSelection$.deliverSelection(ActorSelection.scala:269)
[info] at akka.actor.ActorSelection.tell(ActorSelection.scala:46)
[info] at akka.actor.ScalaActorSelection.$bang(ActorSelection.scala:280)
[info] at akka.actor.ScalaActorSelection.$bang$(ActorSelection.scala:280)
[info] at akka.actor.ActorSelection$$anon$1.$bang(ActorSelection.scala:198)
[info] at akka.cluster.ClusterCoreDaemon.gossipTo(ClusterDaemon.scala:1330)
[info] at akka.cluster.ClusterCoreDaemon.gossip(ClusterDaemon.scala:1047)
[info] at akka.cluster.ClusterCoreDaemon.gossipTick(ClusterDaemon.scala:1010)
[info] at akka.cluster.ClusterCoreDaemon$$anonfun$initialized$1.applyOrElse(ClusterDaemon.scala:496)
[info] at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:171)
[info] at akka.actor.Actor.aroundReceive(Actor.scala:517)
[info] at akka.actor.Actor.aroundReceive$(Actor.scala:515)
[info] at akka.cluster.ClusterCoreDaemon.aroundReceive(ClusterDaemon.scala:295)
[info] at akka.actor.ActorCell.receiveMessage(ActorCell.scala:588)
[info] at akka.actor.ActorCell.invoke(ActorCell.scala:557)
[info] at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:258)
[info] at akka.dispatch.Mailbox.run(Mailbox.scala:225)
[info] at akka.dispatch.Mailbox.exec(Mailbox.scala:235)
[info] at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
[info] at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
[info] at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
[info] at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
It seems it is sending huge message(48MB+?) to every nodes.
So what's up here? What is the root cause and how shall I fix this?

Packaging cygnus-common results in an empty jar

I'm trying to install cygnus-common following this guide but the creation of the cygnus-common jar (incl. dependencies) always results in an empty jar. Apache-Flume installed without any issues. I've tried increasing the memory for the Maven JVM as per the guide but this hasn't helped.
~/fiware-cygnus/cygnus-common$ mvn clean compile exec:exec
assembly:single
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building cygnus-common 1.1.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) # cygnus-common ---
[INFO] Deleting /home/cygnus/fiware-cygnus/cygnus-common/target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) # cygnus-common ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) # cygnus-common ---
[INFO] Compiling 50 source files to /home/cygnus/fiware-cygnus/cygnus-common/target/classes
[INFO]
[INFO] --- exec-maven-plugin:1.5.0:exec (default-cli) # cygnus-common ---
[INFO]
[INFO] --- maven-assembly-plugin:2.6:single (default-cli) # cygnus-common ---
[INFO] Building jar: /home/cygnus/fiware-cygnus/cygnus-common/target/cygnus-common-1.1.0-jar-with-dependencies.jar
Killed
Here's the resultant file
~/fiware-cygnus/cygnus-common$ ls -lrth target/
total 12K
drwxrwxr-x 3 cygnus cygnus 4.0K Jun 13 14:57 generated-sources
drwxrwxr-x 3 cygnus cygnus 4.0K Jun 13 14:57 classes
drwxrwxr-x 2 cygnus cygnus 4.0K Jun 13 14:57 archive-tmp
-rw-rw-r-- 1 cygnus cygnus 0 Jun 13 14:58 cygnus-common-1.1.0-jar-with-dependencies.jar
A similar question was asked before with no resolution documented. The only suggestions given for that question was either lack of disk space, memory or permissions. Disk space is definitely not an issue, I have increased the memory for the Maven JVM and the user has the correct permissions.
EDIT:
So I ran the mvn compile in debug mode as suggested by #frb and it was memory issue
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 257024000 bytes for committing reserved memory.
# Possible reasons:
# The system is out of physical RAM or swap space
# In 32 bit mode, the process size limit was hit
# Possible solutions:
# Reduce memory load on the system
# Increase physical memory or swap space
# Check if swap backing store is full
# Use 64 bit Java on a 64 bit OS
# Decrease Java heap size (-Xmx/-Xms)
# Decrease number of Java threads
# Decrease Java thread stack sizes (-Xss)
# Set larger code cache with -XX:ReservedCodeCacheSize=
# This output file may be truncated or incomplete.
#
# Out of Memory Error (os_linux.cpp:2827), pid=48868, tid=140567873734400
[1]: http://fiware-cygnus.readthedocs.io/en/latest/cygnus-common/installation_and_administration_guide/install_from_sources/index.html#section3 "guide"
using top I was able to see that the memory usage was over 70% when the process got killed. The system has ~1.7Gb which is well above the stated requirements, and it is a 64bit system.
I had the system memory increased to 3Gb and the build succeeded so perhaps the hardware requirements should be updated?
Increasing the system memory to 3Gb fixed this issue and the jar was created successfully.

Scaladoc diagrams

Is it possible to generate diagrams with Scaladoc and SBT?
I tried to add this line in my build.sbt:
scalacOptions in (Compile,doc) := Seq("-diagrams", "-diagrams-debug")
But I receive:
Diagram generation running time breakdown:
diagrams model filtering
========================
count: 242 items
total time: 0 ms
average time: 0 ms
maximum time: 0 ms
diagrams model generation
=========================
count: 242 items
total time: 45 ms
average time: 0 ms
maximum time: 11 ms
dot diagram generation
======================
count: 89 items
total time: 24 ms
average time: 0 ms
maximum time: 3 ms
dot process runnning
====================
count: 89 items
total time: 590 ms
average time: 6 ms
maximum time: 512 ms
svg processing
==============
count: 89 items
total time: 269 ms
average time: 3 ms
maximum time: 88 ms
Broken images: 238
Fixed images: 0
How can I get more logs about the "Broken images"?
Thanks.
EDIT:
The command last shows me:
[debug] Calling Scaladoc with arguments:
[debug] -diagrams
[debug] -diagrams-debug
[debug] -d
[debug] /.../target/scala-2.10/api
[debug] -bootclasspath
[debug] /usr/lib/jvm/java-7-openjdk/jre/lib/resources.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/rt.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/jsse.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/jce.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/charsets.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/rhino.jar:/usr/lib/jvm/java-7-openjdk/jre/lib/jfr.jar:/usr/lib/jvm/java-7-openjdk/jre/classes:/home/thibaud/.sbt/boot/scala-2.10.4/lib/scala-library.jar
[debug] -classpath
... my classpath and my classes
[info] Main Scala API documentation successful.
[success] Total time: 18 s, completed 23 oct. 2015 15:10:32
Is it possible to generate diagrams with Scaladoc and SBT?
Since this is one of more highly voted questions tagged sbt, I'll try to answer it. I tried using Scala 2.11.8 and 2.12.0-M4, but neither worked for me. There are some problems with Scaladoc diagram generation itself, not sbt. See for example SI-7950: Running ScalaDoc with -diagram fails on OS X 10.9 (Mavericks). I also tried running scaladoc directly, and I still get the similar error messages.
One theory I've heard is that scaladoc is too sensitive to dot warning messages. So there's been a hack of wrapping dot with the following:
#!/bin/bash
/usr/local/bin/dot "$#" 2> >( grep -v "CoreText performance note:" >&2 )
Using the above script did not work for me. So likely it's not possible at this time.