diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml
index d6a3c49b..e924cc11 100644
--- a/.github/workflows/build-and-deploy.yml
+++ b/.github/workflows/build-and-deploy.yml
@@ -6,131 +6,237 @@ on:
release:
types: [created]
pull_request:
- types: [ labeled, synchronize ]
-
-
-# Enables BuildKit
-env:
- DOCKER_BUILDKIT: 1
+ types: [labeled, synchronize]
jobs:
-
build-front:
if: ${{ github.event_name == 'push' || github.event_name == 'release' || github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'deploy') }}
runs-on: ubuntu-latest
steps:
-
- name: Checkout
uses: actions/checkout@v2
-
- # Create a slugified value of the branch
- - uses: rlespinasse/github-slug-action@3.1.0
-
- - name: "Build and push front image"
- uses: docker/build-push-action@v1
+ - name: Setup NodeJS
+ uses: actions/setup-node@v2
+ with:
+ node-version: '14'
+
+ # messages
+ - name: Install messages dependencies
+ run: yarn install
+ working-directory: messages
+
+ - name: Build proto messages
+ run: yarn run ts-proto && yarn run copy-to-front-ts-proto && yarn run json-copy-to-front
+ working-directory: messages
+
+ # docker
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v1
+
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v1
+
+ - name: Login to DockerHub
+ uses: docker/login-action@v1
with:
- dockerfile: front/Dockerfile
- path: ./
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- repository: thecodingmachine/workadventure-front
- tags: ${{ github.event_name == 'pull_request' && env.GITHUB_HEAD_REF_SLUG || env.GITHUB_REF_SLUG }}
- add_git_labels: true
+
+ - uses: rlespinasse/github-slug-action@3.1.0
+
+ - name: Docker meta
+ id: meta
+ uses: docker/metadata-action@v3
+ with:
+ images: thecodingmachine/workadventure-front
+
+ - name: Build and push
+ uses: docker/build-push-action@v2
+ with:
+ context: .
+ file: front/Dockerfile
+ platforms: linux/amd64,linux/arm64
+ push: true
+ tags: thecodingmachine/workadventure-front:${{ github.event_name == 'pull_request' && env.GITHUB_HEAD_REF_SLUG || env.GITHUB_REF_SLUG }}
+ labels: ${{ steps.meta.outputs.labels }}
build-back:
if: ${{ github.event_name == 'push' || github.event_name == 'release' || github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'deploy') }}
runs-on: ubuntu-latest
steps:
-
- name: Checkout
uses: actions/checkout@v2
- # Create a slugified value of the branch
- - uses: rlespinasse/github-slug-action@3.1.0
-
- - name: "Build and push back image"
- uses: docker/build-push-action@v1
+ - name: Setup NodeJS
+ uses: actions/setup-node@v2
+ with:
+ node-version: '14'
+
+ # messages
+ - name: Install messages dependencies
+ run: yarn install
+ working-directory: messages
+
+ - name: Build proto messages
+ run: yarn run proto && yarn run copy-to-back
+ working-directory: messages
+
+ # docker
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v1
+
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v1
+
+ - name: Login to DockerHub
+ uses: docker/login-action@v1
with:
- dockerfile: back/Dockerfile
- path: ./
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- repository: thecodingmachine/workadventure-back
- tags: ${{ github.event_name == 'pull_request' && env.GITHUB_HEAD_REF_SLUG || env.GITHUB_REF_SLUG }}
- add_git_labels: true
+
+ - uses: rlespinasse/github-slug-action@3.1.0
+
+ - name: Docker meta
+ id: meta
+ uses: docker/metadata-action@v3
+ with:
+ images: thecodingmachine/workadventure-back
+
+ - name: Build and push
+ uses: docker/build-push-action@v2
+ with:
+ context: .
+ file: back/Dockerfile
+ platforms: linux/amd64,linux/arm64
+ push: true
+ tags: thecodingmachine/workadventure-back:${{ github.event_name == 'pull_request' && env.GITHUB_HEAD_REF_SLUG || env.GITHUB_REF_SLUG }}
+ labels: ${{ steps.meta.outputs.labels }}
build-pusher:
if: ${{ github.event_name == 'push' || github.event_name == 'release' || github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'deploy') }}
runs-on: ubuntu-latest
steps:
-
- name: Checkout
uses: actions/checkout@v2
- # Create a slugified value of the branch
- - uses: rlespinasse/github-slug-action@3.1.0
-
- - name: "Build and push back image"
- uses: docker/build-push-action@v1
+ - name: Setup NodeJS
+ uses: actions/setup-node@v2
+ with:
+ node-version: '14'
+
+ # messages
+ - name: Install messages dependencies
+ run: yarn install
+ working-directory: messages
+
+ - name: Build proto messages
+ run: yarn run proto && yarn run copy-to-pusher && yarn run json-copy-to-pusher
+ working-directory: messages
+
+ # docker
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v1
+
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v1
+
+ - name: Login to DockerHub
+ uses: docker/login-action@v1
with:
- dockerfile: pusher/Dockerfile
- path: ./
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- repository: thecodingmachine/workadventure-pusher
- tags: ${{ github.event_name == 'pull_request' && env.GITHUB_HEAD_REF_SLUG || env.GITHUB_REF_SLUG }}
- add_git_labels: true
+
+ - uses: rlespinasse/github-slug-action@3.1.0
+
+ - name: Docker meta
+ id: meta
+ uses: docker/metadata-action@v3
+ with:
+ images: thecodingmachine/workadventure-pusher
+
+ - name: Build and push
+ uses: docker/build-push-action@v2
+ with:
+ context: .
+ file: pusher/Dockerfile
+ platforms: linux/amd64,linux/arm64
+ push: true
+ tags: thecodingmachine/workadventure-pusher:${{ github.event_name == 'pull_request' && env.GITHUB_HEAD_REF_SLUG || env.GITHUB_REF_SLUG }}
+ labels: ${{ steps.meta.outputs.labels }}
build-uploader:
if: ${{ github.event_name == 'push' || github.event_name == 'release' || github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'deploy') }}
runs-on: ubuntu-latest
steps:
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v1
- - name: Checkout
- uses: actions/checkout@v2
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v1
- # Create a slugified value of the branch
- - uses: rlespinasse/github-slug-action@3.1.0
-
- - name: "Build and push back image"
- uses: docker/build-push-action@v1
+ - name: Login to DockerHub
+ uses: docker/login-action@v1
with:
- dockerfile: uploader/Dockerfile
- path: ./
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- repository: thecodingmachine/workadventure-uploader
- tags: ${{ github.event_name == 'pull_request' && env.GITHUB_HEAD_REF_SLUG || env.GITHUB_REF_SLUG }}
- add_git_labels: true
+
+ - uses: rlespinasse/github-slug-action@3.1.0
+
+ - name: Docker meta
+ id: meta
+ uses: docker/metadata-action@v3
+ with:
+ images: thecodingmachine/workadventure-uploader
+
+ - name: Build and push
+ uses: docker/build-push-action@v2
+ with:
+ file: uploader/Dockerfile
+ push: true
+ tags: thecodingmachine/workadventure-uploader:${{ github.event_name == 'pull_request' && env.GITHUB_HEAD_REF_SLUG || env.GITHUB_REF_SLUG }}
+ labels: ${{ steps.meta.outputs.labels }}
build-maps:
if: ${{ github.event_name == 'push' || github.event_name == 'release' || github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'deploy') }}
runs-on: ubuntu-latest
steps:
-
- name: Checkout
uses: actions/checkout@v2
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v1
- # Create a slugified value of the branch
- - uses: rlespinasse/github-slug-action@3.1.0
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v1
- - name: "Build and push front image"
- uses: docker/build-push-action@v1
+ - name: Login to DockerHub
+ uses: docker/login-action@v1
with:
- dockerfile: maps/Dockerfile
- path: maps/
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- repository: thecodingmachine/workadventure-maps
- tags: ${{ github.event_name == 'pull_request' && env.GITHUB_HEAD_REF_SLUG || env.GITHUB_REF_SLUG }}
- add_git_labels: true
+
+ - uses: rlespinasse/github-slug-action@3.1.0
+
+ - name: Docker meta
+ id: meta
+ uses: docker/metadata-action@v3
+ with:
+ images: thecodingmachine/workadventure-maps
+
+ - name: Build and push
+ uses: docker/build-push-action@v2
+ with:
+ context: maps/
+ file: maps/Dockerfile
+ push: true
+ tags: thecodingmachine/workadventure-maps:${{ github.event_name == 'pull_request' && env.GITHUB_HEAD_REF_SLUG || env.GITHUB_REF_SLUG }}
+ labels: ${{ steps.meta.outputs.labels }}
deeploy:
needs:
diff --git a/.github/workflows/end_to_end_tests.yml b/.github/workflows/end_to_end_tests.yml
index 560e1dc3..e369fe2f 100644
--- a/.github/workflows/end_to_end_tests.yml
+++ b/.github/workflows/end_to_end_tests.yml
@@ -23,6 +23,12 @@ jobs:
run: npx playwright install --with-deps
- name: 'Setup .env file'
run: cp .env.template .env
+ - name: Install messages dependencies
+ run: yarn install
+ working-directory: messages
+ - name: Build proto messages
+ run: yarn run proto-all
+ working-directory: messages
- name: Build WorkAdventure
run: docker-compose -f docker-compose.yaml -f docker-compose.e2e.yml build --parallel
- name: Start WorkAdventure
diff --git a/front/src/Components/Lazy.svelte b/front/src/Components/Lazy.svelte
new file mode 100644
index 00000000..9817ba5c
--- /dev/null
+++ b/front/src/Components/Lazy.svelte
@@ -0,0 +1,21 @@
+
+
+
+{#if when}
+ {#await loading then { default: Component }}
+
+ {/await}
+{/if}
diff --git a/front/src/Components/MainLayout.svelte b/front/src/Components/MainLayout.svelte
index 3e6c406b..f1200640 100644
--- a/front/src/Components/MainLayout.svelte
+++ b/front/src/Components/MainLayout.svelte
@@ -12,7 +12,6 @@
import AudioManager from "./AudioManager/AudioManager.svelte";
import CameraControls from "./CameraControls.svelte";
import EmbedScreensContainer from "./EmbedScreens/EmbedScreensContainer.svelte";
- import EmoteMenu from "./EmoteMenu/EmoteMenu.svelte";
import HelpCameraSettingsPopup from "./HelpCameraSettings/HelpCameraSettingsPopup.svelte";
import LayoutActionManager from "./LayoutActionManager/LayoutActionManager.svelte";
import Menu from "./Menu/Menu.svelte";
@@ -38,6 +37,7 @@
import { LayoutMode } from "../WebRtc/LayoutManager";
import { actionsMenuStore } from "../Stores/ActionsMenuStore";
import ActionsMenu from "./ActionsMenu/ActionsMenu.svelte";
+ import Lazy from "./Lazy.svelte";
let mainLayout: HTMLDivElement;
@@ -116,9 +116,7 @@
{/if}
- {#if $emoteMenuStore}
-
- {/if}
+ import("./EmoteMenu/EmoteMenu.svelte")} />
{#if hasEmbedScreen}
diff --git a/tests/README.md b/tests/README.md
index 927d9bc9..f293b975 100644
--- a/tests/README.md
+++ b/tests/README.md
@@ -27,6 +27,13 @@ npm run test
## Run on production like environment
+Build message types:
+
+```bash
+cd messages/
+yarn run proto-all
+```
+
Start WorkAdventure with:
```bash