Skip to content

Commit

Permalink
Merge pull request #20 from FelixNgFender/multiplayer
Browse files Browse the repository at this point in the history
Multiplayer
  • Loading branch information
YiqinZhao authored Jan 16, 2025
2 parents ce83bf9 + cf66b9f commit 2aee1bd
Show file tree
Hide file tree
Showing 1,643 changed files with 265,931 additions and 56,268 deletions.
31 changes: 17 additions & 14 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ jobs:
id: install_python
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.12"

- name: Install Poetry
uses: abatilo/actions-poetry@v2
with:
poetry-version: "1.8.3"
poetry-version: "1.8.4"

- name: Setup a local virtual environment (if no poetry.toml file)
working-directory: ./python
Expand All @@ -44,7 +44,9 @@ jobs:
uses: actions/cache/restore@v4
with:
path: ./python/.venv
key: venv-${{ runner.os }}-${{ steps.install_python.outputs.python-version }}-${{ hashFiles('./python/poetry.lock') }}
key: venv-${{ runner.os }}-${{
steps.install_python.outputs.python-version }}-${{
hashFiles('./python/poetry.lock') }}

- name: Install dependencies (used by later workflows)
working-directory: ./python
Expand All @@ -57,19 +59,20 @@ jobs:
uses: actions/cache/save@v4
with:
path: ./python/.venv
key: venv-${{ runner.os }}-${{ steps.install_python.outputs.python-version }}-${{ hashFiles('./python/poetry.lock') }}
key: venv-${{ runner.os }}-${{
steps.install_python.outputs.python-version }}-${{
hashFiles('./python/poetry.lock') }}

- name: Lint with ruff
working-directory: ./python
run: ruff check --output-format=github

- name: Typecheck with pyright
working-directory: ./python
run: pyright arflow

- name: Test with pytest
working-directory: ./python
timeout-minutes: 5 # pytest sometimes hangs for (yet) unknown reasons
# TODO: Add coverage tracking once we have a stable test suite
run: |
pytest
# - name: Typecheck with pyright
# working-directory: ./python
# run: pyright arflow
#
# - name: Test with pytest
# working-directory: ./python
# timeout-minutes: 5 # pytest sometimes hangs for (yet) unknown reasons
# run: |
# pytest
14 changes: 10 additions & 4 deletions .github/workflows/pre-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@ jobs:
id: install_python
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.12"

- name: Install Poetry
uses: abatilo/actions-poetry@v2
with:
poetry-version: "1.8.3"
poetry-version: "1.8.4"

- name: Setup a local virtual environment (if no poetry.toml file)
working-directory: ./python
Expand All @@ -39,7 +39,10 @@ jobs:
uses: actions/cache/restore@v4
with:
path: ./python/.venv
key: venv-${{ runner.os }}-${{ steps.install_python.outputs.python-version }}-${{ hashFiles('./python/poetry.lock') }}
key:
venv-${{ runner.os }}-${{
steps.install_python.outputs.python-version }}-${{
hashFiles('./python/poetry.lock') }}

- name: Install dependencies (skipped if cache hit, fallback to install)
working-directory: ./python
Expand All @@ -52,7 +55,10 @@ jobs:
uses: actions/cache/save@v4
with:
path: ./python/.venv
key: venv-${{ runner.os }}-${{ steps.install_python.outputs.python-version }}-${{ hashFiles('./python/poetry.lock') }}
key:
venv-${{ runner.os }}-${{
steps.install_python.outputs.python-version }}-${{
hashFiles('./python/poetry.lock') }}

- name: Configure Test PyPI with Poetry
working-directory: ./python
Expand Down
91 changes: 58 additions & 33 deletions .github/workflows/publish-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,32 +10,53 @@ permissions:
id-token: write

jobs:
build-client-docs-as-artifact:
build-protos-docs:
name: Build protos docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install Buf CLI
uses: bufbuild/[email protected] # must match mise.toml
with:
github_token: ${{ secrets.GITHUB_TOKEN }}

- name: Install protoc
uses: arduino/setup-protoc@v1

- name: Build protos docs
run: buf generate

- uses: actions/upload-artifact@v4
with:
name: protos-docs
path: ./website/docs/protos

build-client-docs:
name: Build client docs
runs-on: windows-latest
steps:
- uses: actions/checkout@v4

- name: Install docfx
run: dotnet tool install -g docfx
- name: Dotnet Setup
uses: actions/setup-dotnet@v3
with:
dotnet-version: 8.x

- name: Update docfx
run: dotnet tool update -g docfx

- name: Run script to build the documentation
working-directory: ./unity/Documentation
run: ./scripts/build.cmd

# - name: Move docs to website directory
# run: |
# mkdir -p ./website/docs/client/
# cp -r ./unity/Documentation/clientHTMLOutput/* ./website/docs/client/
# Upload the website directory as an artifact
- uses: actions/upload-artifact@v4
with:
name: client-docs
path: ./unity/Documentation/clientHTMLOutput
path: ./website/docs/client

build-server-docs:
name: Build server docs
needs: build-client-docs-as-artifact
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand All @@ -44,12 +65,12 @@ jobs:
id: install_python
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.12"

- name: Install Poetry
uses: abatilo/actions-poetry@v2
with:
poetry-version: "1.8.3"
poetry-version: "1.8.4"

- name: Setup a local virtual environment (if no poetry.toml file)
working-directory: ./python
Expand All @@ -61,7 +82,10 @@ jobs:
uses: actions/cache/restore@v4
with:
path: ./python/.venv
key: venv-${{ runner.os }}-${{ steps.install_python.outputs.python-version }}-${{ hashFiles('./python/poetry.lock') }}
key:
venv-${{ runner.os }}-${{
steps.install_python.outputs.python-version }}-${{
hashFiles('./python/poetry.lock') }}

- name: Install docs dependencies
working-directory: ./python
Expand All @@ -70,35 +94,36 @@ jobs:
echo "$(poetry env info --path)/bin" >> $GITHUB_PATH
echo "VIRTUAL_ENV=$(poetry env info --path)/bin" >> $GITHUB_ENV
# - name: Saved cached virtualenv
# uses: actions/cache/save@v4
# with:
# path: ./python/.venv
# key: venv-${{ runner.os }}-${{ steps.install_python.outputs.python-version }}-${{ hashFiles('./python/poetry.lock') }}

- name: Build the documentation
working-directory: ./python
run: python tools/make_docs_cli.py

- name: Move docs to website directory
run: |
mkdir -p ./website/docs/server/
cp -r ./python/docs/* ./website/docs/server/
- uses: actions/upload-artifact@v4
with:
name: server-docs
path: ./website/docs/server

upload-website:
name: Upload website
needs: [build-protos-docs, build-client-docs, build-server-docs]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/download-artifact@v4
with:
name: protos-docs
path: ./website/docs/protos

# Get client docs to use as part of pages artifact
- uses: actions/download-artifact@v4
with:
name: client-docs
path: ./website/docs/client

# # cleanup client docs artifacts
# - name: Delete client docs artifact
# run: |
# github.rest.actions.deleteArtifact({
# owner: context.repo.owner,
# repo: context.repo.repo,
# artifact_id: ${{ steps.artifact-download.outputs.artifact-id }}
# });
- uses: actions/download-artifact@v4
with:
name: server-docs
path: ./website/docs/server

- uses: actions/upload-pages-artifact@v3
with:
Expand All @@ -107,7 +132,7 @@ jobs:
# Single deploy job since we're just deploying
deploy-website:
name: Deploy website
needs: build-server-docs
needs: upload-website
runs-on: ubuntu-latest
permissions:
pages: write
Expand Down
14 changes: 10 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@ jobs:
id: install_python
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.12"

- name: Install Poetry
uses: abatilo/actions-poetry@v2
with:
poetry-version: "1.8.3"
poetry-version: "1.8.4"

- name: Setup a local virtual environment (if no poetry.toml file)
working-directory: ./python
Expand All @@ -39,7 +39,10 @@ jobs:
uses: actions/cache/restore@v4
with:
path: ./python/.venv
key: venv-${{ runner.os }}-${{ steps.install_python.outputs.python-version }}-${{ hashFiles('./python/poetry.lock') }}
key:
venv-${{ runner.os }}-${{
steps.install_python.outputs.python-version }}-${{
hashFiles('./python/poetry.lock') }}

- name: Install dependencies (skipped if cache hit, fallback to install)
working-directory: ./python
Expand All @@ -52,7 +55,10 @@ jobs:
uses: actions/cache/save@v4
with:
path: ./python/.venv
key: venv-${{ runner.os }}-${{ steps.install_python.outputs.python-version }}-${{ hashFiles('./python/poetry.lock') }}
key:
venv-${{ runner.os }}-${{
steps.install_python.outputs.python-version }}-${{
hashFiles('./python/poetry.lock') }}

- name: Use PyPI API token
working-directory: ./python
Expand Down
5 changes: 0 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
# Created by https://www.toptal.com/developers/gitignore/api/macos,windows,visualstudiocode
# Edit at https://www.toptal.com/developers/gitignore?templates=macos,windows,visualstudiocode

#additional files
.grpc_tools/**
act.exe
my.secrets

### macOS ###
# General
.DS_Store
Expand Down
4 changes: 4 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"printWidth": 80,
"proseWrap": "always"
}
10 changes: 5 additions & 5 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"recommendations": [
"ms-python.python",
"ms-python.vscode-pylance",
"redhat.vscode-yaml",
"charliermarsh.ruff",
"ms-toolsai.jupyter",
"streetsidesoftware.code-spell-checker",
"visualstudiotoolsforunity.vstuc"
"DavidAnson.vscode-markdownlint",
"bufbuild.vscode-buf",
"ms-python.python",
"ms-python.vscode-pylance",
"charliermarsh.ruff"
]
}
23 changes: 20 additions & 3 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
{
"editor.tabSize": 4,
"[javascript]": {
"editor.tabSize": 2
},
"[json]": {
"editor.tabSize": 2
},
"[yaml]": {
"editor.tabSize": 4
},
"editor.insertSpaces": true,
"notebook.formatOnSave.enabled": true,
"notebook.codeActionsOnSave": {
"notebook.source.fixAll": "explicit",
Expand All @@ -19,8 +30,7 @@
"python.testing.pytestEnabled": true,
"[csharp]": {
"editor.formatOnSave": true,
"editor.maxTokenizationLineLength": 2500,
"editor.inlineSuggest.suppressSuggestions": false
"editor.maxTokenizationLineLength": 2500
},
"files.exclude": {
"**/.git": true,
Expand All @@ -46,5 +56,12 @@
"thecakelab",
"Xihe"
],
"conventionalCommits.scopes": ["server", "client", "examples", "others"]
"conventionalCommits.scopes": [
"protos",
"server",
"cli",
"client",
"examples",
"others"
]
}
Loading

0 comments on commit 2aee1bd

Please sign in to comment.