Commit graph

42 commits

Author SHA1 Message Date
Sergey Stepanov
f95bf52074
Update gh deploy script 2021-08-25 10:40:19 +03:00
Sergey Stepanov
1f3e82b1c7
Set +x for deploy-app.sh 2021-08-25 10:37:21 +03:00
sergystepanov
f10dfff582
Update deploy.yml 2021-08-25 10:29:29 +03:00
sergystepanov
3426edb4c1
Add temporary Docker cleaner for cloudretro.io 2021-08-25 10:25:31 +03:00
sergystepanov
fb8ee791df
Update the prod deployment script (#341)
Test new deployment workflow.
2021-08-24 21:54:32 +03:00
sergystepanov
66a13943bc
Upgrade Go version to 1.17 (#345) 2021-08-17 11:41:14 +03:00
Sergey Stepanov
2657dfbc70
Rename manual production deployment workflow 2021-08-08 18:44:45 +03:00
Sergey Stepanov
4ec18fc34c
Enable manual production deployments 2021-08-08 18:34:16 +03:00
Sergey Stepanov
69f18d19e4
Pass version number as gh env when pushing Docker images 2021-07-16 18:32:17 +03:00
Sergey Stepanov
dc151f6a0b
Pass version when pushing Docker images 2021-07-16 18:22:52 +03:00
sergystepanov
30d104ee98
Add version info into the apps (#330)
Both worker and coordinator display version number in the console during startup. Coordinator displays its version number in the top right corner of the index.html page.
2021-07-16 18:13:20 +03:00
Sergey Stepanov
875673c661
Remove mingw-w64-x86_64-pkg-config and mingw-w64-x86_64-pkgconf conflict in MSYS2 2021-06-26 22:41:28 +03:00
giongto35
4935997c82
CD Flow to redeploy after push (#320)
* Add redeploy.sh to redeploy

* Add redeploy to workflow

* Update redeploy script

* Redeploy script

* Test

* run after checkout

* Update path

* checkout ssh

* Update build

* remove unnecesary

* Update placeholder

* Update domain

* Retrigger

* Update docker login

* Update config

* deploy with config

* Update sync config

* Redeploy

* Update redeploy.sh

* Redeploy specific

* redeploy.sh

* redeploy specific.sh

* add more server

* Update redeploy

* Update docker publish

* Redeploy

* Update port

* Update redeploy.sh

* test build

* Remove test with build.yaml

* Clean up

* Clean up
2021-05-28 03:51:25 +08:00
Sergey Stepanov
27e8a792fd
Publish Docker images from the stable/unstable code.
v-tagged push -> v-tagged stable image with stable tag also
master push -> dev tagged image
2021-05-26 22:23:47 +03:00
giongto35
eb10e203c9
Cd flow (#319)
* Add redeploy.sh to redeploy

* Add redeploy to workflow
2021-05-27 03:05:40 +08:00
giongto35
e3e05bc460
Add redeploy.sh to redeploy (#318) 2021-05-27 02:49:34 +08:00
sergystepanov
53e49c3634
Publish Docker images with the latest tag 2021-05-24 17:01:53 +03:00
Sergey Stepanov
763859283a
Use default Go file extension for builds 2021-04-09 20:59:15 +03:00
sergystepanov
65dcaf7820
Enable release builds with v-tags (#310)
Re-enable release builds push into Github releases page when new v-prefixed tags are pushed (i.e. v2.4.2).
2021-04-07 18:50:34 +03:00
sergystepanov
602b9ea47c
Make executables ready for static linking (#307)
* Disable CGO (C libs) for coordinator

Needed for static linking.

* Fix "error strings should not be capitalized (ST1005)"

* Fix SA1015

Using time.Tick leaks the underlying ticker, consider using it only in endless functions, tests and the main package, and use time.NewTicker here (SA1015)

* Fix SA9004

Only the first constant in this group has an explicit type (SA9004).

* Remove unused code in the webrtc package

* Fix S1000

Should use a simple channel send/receive instead of select with a single case (S1000).

* Force dir creation/check for core downloader

* Update Makefile release script

* Disable ASLR for worker builds

* Remove WORKER_BUILD_PARAMS flag from the CI

* Don't force recompilation in release

* Add Debian packages installer script

* Build worker app without libopusfile

* Test worker app without libopusfile

* Add opus wrapper without opusfile

* Make install.sh executable

* Add opus lib in Win builds

* Make insecure HTTPS requests when downloading libs

* Add ca-certificates for Docker build stage

go mod download works only with SSL certificates installed.

* Move libx264 wrapper into the repo

That way we can get rid of a lot of not needed external Go dependencies.

* Update the dependencies
2021-04-06 18:16:52 +03:00
sergystepanov
a779353569
Reduce coordinator dependencies tree (#292)
* Reduce coordinator dependencies tree

* Parallelize build/check

* Update dependencies
2021-03-15 13:08:15 +03:00
sergystepanov
bd701f10fc
Use modified x264 lib (#275)
* Use modified x264 lib

* Add x264 system lib

* Set x264 version 155 for Debian (Buster)

* Add h264 config params

* Set vp8 codec
2021-02-21 13:51:44 +03:00
sergystepanov
55208e59d3
Update the Go version to 1.16 in the CI 2021-02-17 13:58:38 +03:00
sergystepanov
6584d8219c
Disable PIE (ASLR) build mode for Windows (#272)
Since Go version 1.15 ASLR security mode is enabled by default for Windows builds. In order to make it work without random NPE crashes in the cores (as example in PSX games during load), you have to (re)compile every core with ASLR support or just disable this mode.

See: https://github.com/golang/go/issues/35192
2021-01-30 01:29:01 +03:00
Sergey Stepanov
8a41c830bd
Update GitHub CI build 2021-01-09 16:45:47 +03:00
sergystepanov
1fcf34ee02
Add new Libretro core manager module (#249)
* Add initial external configuration files support.

These external configuration files allow changing app params at the runtime without recompilation.

* Find config files with specified directory in the tests

* Add aspect ratio recalculation config

* Clean code

* Add new configuration files into the Docker container image

* Add shared core and config paths into the Libretro cores config

* Split ROM <-> Emulator mapping between workers and coordinators

* Extract coordinator config

* Add shared worker/coordinator server config

* Add explicit embedded shared worker/coordinator struct for auto-config reflection fill

* Remove default stun/turn servers from the config

* Extract and add new ice servers config structures

* Update coordinator config params

* Add auto emulation lib loader based on the runtime OS/arch

* Update configuration structures

* Remove shared config embedding

* Add missing network config params

* Add game library external config

* Remove unused config parameters

* Add WebRTC encoder external options

* Add user dir for config search

* Update config loader

* Update config

* Add generic downloader with Grab lib implementation

* Add a simple file downloader backed by the grab lib

* Add initial Libretro core repos abstractions

* Expose compression info for Libretro cores repository records

* Add pipe-based abstract file downloader

* Refactor downloader

* Refactor Libretro repos

* Add worker coresync stubs

* Add multiprocess-safe HTTP-based core manager implementation

* Remove Libretro cores from the repo

* Keep custom N64 cores in te repo for now

* Add Libretro cores repo select in the config

* Fix http manager repo switch

* Cleanup code

* Add greedy Libretro lib loader

* Don't crash when arch map is not set

* Disable dynamic recompiler for pcsx core by default since it's could cause a crash

* Use global Libretro dynalib handler

* Shorten the default Libretro cores store path

* Update zip extractor implementation

* Remove explicit fig lib field markings

* Add config note to the README file

* Add GitHub repo backend for the core downloader

* Fix GitHub repo param list in the manager factory

* Add env variables reader with CLOUD_GAME prefix

* Re-optimize ice server info struct custom marshaler
2020-12-31 13:24:27 +03:00
sergystepanov
3837e020cd
Enable legacy Github Docker Registry publishing workflow (#247)
* Update Docker publishing script
2020-11-25 00:22:37 +03:00
sergystepanov
bd6e146e64
Fix errors/misuse with OpenGL-based core API (#237)
* Follow Go standard for naming constants

* Use reformatted pixFormats for Libretro cores

* Use OpenGL 2.1 Core profile bindings for render instead 4.1

* Cleanup the code

* SDL attributes should be set before the sdl.Init call

* Use simple vertical frame flip function instead imaging lib with OpenGL renderer

* Use the separate control flow for the macOS OpenGL context handling

* Add OpenGL pixel type/format switch based on cores callback

* Use unified log instead of fmt

* Clean code

* Remove unnecessary SDL init flag

* Printout errors with SDL / OpenGL functions

* Add CGO Libretro logging output

* Use main thread lock for windows and OpenGL context

* Remove Darwin OS switch

* Add extended OpenGL version info print

* Update Libretro cores info print

* Add game library module (#232)

* Add game library

* Add missing local game lib files

* Add missing return statement

* Use v2 suffix

* Bump the dependencies

* Update Libretro modules to support headless test runners

* Port old savestates tests as example for Libretro cores runner testing

* Add n64 core example game and a test

* Update room tests for various games

* Add frame dump support for CI builds

* Add frame rendering to image output for core testing

* Update ROM frame exporter in tests

* Disable Docker image publishing

* Add frame rendering output for non-gl cores for CI

* Add auto GL context override for headless, gpu-less machines (e.g. Github CI Xeon)

* Add Windows CI headless cores frame render config

* Add missing Mesa OpenGL drivers to Ubuntu CI

* Add mupen n64 core download into CI tests

* Add Linux, macOS, Windows core frame render tests into CI

* Remove unnecessary var

* Add some comments

* Revert Y flip

* Move OpenGL into a separate package

* Add SDL package

* Update modules
2020-11-04 18:59:12 +08:00
sergystepanov
a42aebec88
Migrate to v2 suffix (#231) 2020-10-04 23:21:03 +08:00
sergystepanov
dbdb99f19e
Fix Github CI Windows build (Msys2) (#236) 2020-10-04 23:11:02 +08:00
sergystepanov
45400c29fd
Drop release action support 2020-07-02 20:59:13 +03:00
Sergey Stepanov
01d3bac538
Filter out arm libs for Linux releases 2020-07-02 16:31:25 +03:00
Sergey Stepanov
8b27445458
Integrate SDL2 into CI / Project 2020-06-17 14:00:50 +03:00
sergystepanov
9d17435d7e
Allow gh Docker repository push in forks 2020-06-16 22:09:36 +03:00
sergystepanov
6a42f9d989
Add missing Docker build check into CI 2020-06-16 15:15:53 +03:00
sergystepanov
f18ede0835
Require app build CI on PR 2020-06-15 22:16:26 +03:00
sergystepanov
782e6d71b1
Add Github Docker repo publisher (#197) 2020-06-16 00:15:25 +08:00
Sergey Stepanov
23f282760a
Fix broken Msys2 pacman for now 2020-05-26 00:29:47 +03:00
Sergey Stepanov
bd6390f89b
Fix gh CI scripts for a non-standard shell 2020-04-27 13:12:40 +03:00
Sergey Stepanov
ffd4007bd2
Update MSYS2 pre-build step 2020-04-27 12:29:45 +03:00
sergystepanov
e547b69bb7
Add build workflow (#161)
* Add build workflow

* Fix markdown
2020-04-11 00:26:12 +08:00
sergystepanov
e2fc8696c8
Add multi-os Github release workflow (#159) 2020-04-09 04:01:02 +08:00