Open reicheltp opened 7 years ago
Könnte man draüber auch eine Art "Nightly build" nach jedem Commit erstellen und zum Download anbieten.
Irks, ja darum wollte ich mich mal kümmern, hab das total vergessen :'D
Ich hab das ganze jetzt auf dem Branch feature/ci begonnen und bin schon in das erste Problem gelaufen auf AppVeyor:
Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at OpenTK.Graphics.OpenGL4.GL.GenerateMipmap(GenerateMipmapTarget target)
at engenious.Content.Pipeline.TextureContent.<>c__DisplayClass3_0.<createTexture>b__0()
at engenious.ThreadingHelper.BlockOnUIThread(Action action, Boolean needsUI, Object additional)
at engenious.Content.Pipeline.TextureContent.createTexture(Boolean generateMipMaps, Int32 mipMapCount, IntPtr inputData, Int32 width, Int32 height, TextureContentFormat inputFormat, TextureContentFormat outputFormat)
at engenious.Content.Pipeline.TextureContent..ctor(Boolean generateMipMaps, Int32 mipMapCount, IntPtr inputData, Int32 width, Int32 height, TextureContentFormat inputFormat, TextureContentFormat outputFormat)
at engenious.Content.Pipeline.FontProcessor.Process(FontContent input, String filename, ContentProcessorContext context)
at engenious.Content.Pipeline.ContentProcessor`3.engenious.Content.Pipeline.IContentProcessor.Process(Object input, String filename, ContentProcessorContext context)
at ContentTool.Builder.ContentBuilder.buildFile(ContentFile contentFile, ContentImporterContext importerContext, ContentProcessorContext processorContext)
at ContentTool.Builder.ContentBuilder.buildDir(ContentFolder folder, ContentImporterContext importerContext, ContentProcessorContext processorContext)
at ContentTool.Builder.ContentBuilder.<Build>b__43_0()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Lokal läuft es und kann mit ./build.ps1
ausprobiert werden. Sieht für mich nach einem Problem mit der engenious Pipeline aus.
@jvbsl Kannst du da helfen?
Ganzen log gibt's hier: https://ci.appveyor.com/project/reicheltp/octoawesome/build/3
@ManuelHu Ja, ohne Probleme sogar. Ein Continuous Deployment würde ich aber im 2. Schritt in Angriff nehmen, da erst der distributions weg geklärt werden muss. (Installer, Auto Updater, plain zip, oder ...)
das einzige, das ich mir im Moment vorstellen kann, ist dass wir kein OGL4 dort haben, ist das Möglich? das generieren der MipMaps könnte man auch später selbst übernehmen für bessere Qualität, jedoch müsste ich dafür die Bitmap Skalierung implementieren und wär natürlich auch auf der CPU
So Fehler gefunden: AppVeyor nutzt Microsoft Azure VMs, wo natürlich kein Hardware beschleunigtes OpenGL verfügbar ist. Lösung ist, die Mesa lib zu nutzen, da diese das OpenGL interface auf Software basis anbietet.
@jvbsl Sollten wir die mesa libs mit der engenious pipeline ausliefern, oder nur auf der CI laden?
Update 1 Selbes Problem auch auf den Travis CI VMs
CI durch #290 implementiert 🥳
Hi zusammen,
Ich hatte das Thema vor gut einem halben Jahr mal angestoßen, dass es wahrscheinlich recht praktisch wäre, eine CI zu haben, um eine gewisse Code Quality zu gewährleisten. Da ja immer mehr auch außerhalb der Live Sessions passiert und die Code base weiter wächst, ist eine CI um so wichtiger.
Frage: Ist das Thema für euch interessant? Wenn ja würde ich mich die Tage mal ran setzen und schauen, was angepasst werden muss.
Folgende Punkte würden dazu gehören:
@tomwendel Kann sowas dann einfach per PR eingehen, oder willst du das in einer Session dann näher beleuchten?