Add build workflow (#161)

* Add build workflow

* Fix markdown
This commit is contained in:
sergystepanov 2020-04-10 19:26:12 +03:00 committed by GitHub
parent 490e8eb02f
commit e547b69bb7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 85 additions and 8 deletions

76
.github/workflows/build.yml vendored Normal file
View file

@ -0,0 +1,76 @@
# ------------------------------------------------------------------------
# Build workflow for multiple OSes (Linux x64, macOS x64, Windows x64)
# ------------------------------------------------------------------------
name: build
# run only when pushing into the master only
on:
push:
branches:
- master
tags-ignore:
- 'v*'
env:
go-version: 1.13
jobs:
build:
name: Build
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Get the source
uses: actions/checkout@v2
- name: Set up Go
uses: actions/setup-go@v1
with:
go-version: ${{ env.go-version }}
- name: Set up Go environment
shell: bash
# add Go's bin folder into environment (to be able to call its tools)
run: |
echo "::set-env name=GOPATH::$(go env GOPATH)"
echo "::add-path::$(go env GOPATH)/bin"
- name: Get Linux dev libraries and tools
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y make pkg-config libvpx-dev libopus-dev libopusfile-dev
- name: Get MacOS dev libraries and tools
if: matrix.os == 'macos-latest'
run: |
brew install libvpx pkg-config opus opusfile
- name: Get Windows dev libraries and tools
if: matrix.os == 'windows-latest'
uses: numworks/setup-msys2@v1
with:
msystem: MINGW64
path-type: inherit
- name: Load Go modules maybe?
uses: actions/cache@v1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Build Windows app
if: matrix.os == 'windows-latest'
run: |
msys2do pacman -S --noconfirm --needed make mingw-w64-x86_64-gcc mingw-w64-x86_64-pkg-config mingw-w64-x86_64-dlfcn mingw-w64-x86_64-libvpx mingw-w64-x86_64-opusfile
msys2do make build
- name: Build Linux app
if: matrix.os == 'ubuntu-latest'
run: |
make build
- name: Build macOS app
if: matrix.os == 'macos-latest'
run: |
make build

View file

@ -17,7 +17,7 @@
# a new Github release is created with such tags.
# ------------------------------------------------------------------------
name: Release
name: release
# run only when pushing v-prefixed SemVer tags (e.g. v1.0.0, v2.0.1, and etc.)
on:
push:
@ -46,7 +46,7 @@ jobs:
go-version: ${{ env.go-version }}
- name: Set up Go environment
shell: bash
# add Go's bin folder into environmet (to be able to call its tools)
# add Go's bin folder into environment (to be able to call its tools)
run: |
echo "::set-env name=GOPATH::$(go env GOPATH)"
echo "::add-path::$(go env GOPATH)/bin"

13
README.md vendored
View file

@ -1,10 +1,11 @@
# CloudRetro
[![Build](https://github.com/giongto35/cloud-game/workflows/build/badge.svg)](https://github.com/giongto35/cloud-game/actions?query=workflow:build)
[![Latest release](https://img.shields.io/github/v/release/giongto35/cloud-game.svg)](https://github.com/giongto35/cloud-game/releases/latest)
**Open-source Cloud Gaming Service For Retro Games**
**Video demo**: https://www.youtube.com/watch?v=GUBrJGAxZZg
**My Slide at GopherconVN2019**: https://docs.google.com/presentation/d/1VFv8l2hVUINv2U36r7L11g4Oa_zVjHlr6MYymUbQXT4/edit?usp=sharing
**My Slide at GopherconVN2019**: https://docs.google.com/presentation/d/1VFv8l2hVUINv2U36r7L11g4Oa_zVjHlr6MYymUbQXT4/edit?usp=sharing
## Introduction
CloudRetro provides an open-source cloud gaming platform for retro games. It started as an experiment for testing cloud gaming performance with [WebRTC](https://github.com/pion/webrtc/) and [libretro](https://www.libretro.com/), and now it aims to deliver the most modern and convenient gaming experience through the technology.
@ -12,8 +13,8 @@ CloudRetro provides an open-source cloud gaming platform for retro games. It sta
Theoretically, in cloud gaming, games are run on remote servers and media are streamed to the player optimally to ensure the most comfortable user interaction. It opens the ability to play any retro games on web-browser directly, which are fully compatible with multi-platform like Desktop, Android, ~~IOS~~. It enhances crowdplay ([TwitchPlaysPokemon](https://en.wikipedia.org/wiki/Twitch_Plays_Pok%C3%A9mon)) with realtime interaction. E.g: [Play Pokemon Emerald together](http://cloudretro.io/?id=652e45d78d2b91cd%7CPokemon%20-%20Emerald%20Version%20%28U%29).
## Try the service at
Single play: **[http://cloudretro.io](http://cloudretro.io)**
Crowd play: **[Pokemon Emerald](http://cloudretro.io/?id=652e45d78d2b91cd%7CPokemon%20-%20Emerald%20Version%20%28U%29)**
Single play: **[http://cloudretro.io](http://cloudretro.io)**
Crowd play: **[Pokemon Emerald](http://cloudretro.io/?id=652e45d78d2b91cd%7CPokemon%20-%20Emerald%20Version%20%28U%29)**
*Chrome and Chrome on Android is recommended. It's not working on iPhone and some other explorers. Click help button in the game UI to see keyboard mapping.*
\*In ideal network condition and less resource contention on servers, the game will run smoothly as in the video demo. Because I only hosted the platform on limited servers in US East, US West, Eu, Singapore, you may experience some latency issues + connection problem. You can try hosting the service following the instruction the next section to have a better sense of performance.
@ -91,7 +92,7 @@ By clicking these deep link, you can join the game directly and play it together
- [Play Pokemon Fire Red](http://cloudretro.io/?id=68bf168be6728020___Pokemon%20-%20Fire%20Red%20Version%20%28U%29%20%28V1.1%29)
- [Mario](http://cloudretro.io/?id=1953c570fee1f9e4___Super%20Mario%20Bros)
And you can host the new game by yourself by accessing [cloudretro.io](http://cloudretro.io) and click "share" button to generate a deeplink to your current game.
And you can host the new game by yourself by accessing [cloudretro.io](http://cloudretro.io) and click "share" button to generate a deeplink to your current game.
_Disclaimer: You may experience lagging when joining a room because the room is in a different zone. In that case, you should create a new room for crowd play._
![screenshot](docs/img/crowdplay.gif)
@ -111,9 +112,9 @@ _Disclaimer: You may experience lagging when joining a room because the room is
## Author
Nguyen Huu Thanh
Nguyen Huu Thanh
https://www.linkedin.com/in/huuthanhnguyen/
Tri Dang Minh
Tri Dang Minh
https://trich.im