From 6fe20ff38274b3a4c9045e28c81f82b48e298ef3 Mon Sep 17 00:00:00 2001 From: Loup-Garou911XD Date: Sun, 19 May 2024 04:24:59 +0530 Subject: [PATCH 1/7] Removed unnecessary packages getting installed --- config/docker/Dockerfile | 20 +++++++------------- tools/batools/build.py | 20 +++++++++++++------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/config/docker/Dockerfile b/config/docker/Dockerfile index 63dee431..957ad891 100644 --- a/config/docker/Dockerfile +++ b/config/docker/Dockerfile @@ -40,9 +40,9 @@ COPY ./ /home/ubuntu/ballistica WORKDIR /home/ubuntu/ballistica # Compile the application -RUN make cmake-server-build -RUN mkdir ./../ballistica_cmake_server -RUN mv build/cmake/* ./../ballistica_cmake_server +RUN make cmake-server-build \ + && mkdir ./../ballistica_cmake_server \ + && mv build/cmake/* ./../ballistica_cmake_server #-------------------------------RUNNER-------------------------------- # Create a new stage for the runtime environment @@ -65,14 +65,9 @@ LABEL BOMBSQUAD_VERSION=${bombsquad_version} # Install runtime dependencies RUN apt-get update -y && \ apt-get install -y \ - python3.12-venv \ - python3-pip \ - libsdl2-dev \ - libvorbisfile3 \ - freeglut3-dev \ - libopenal1 \ - curl \ - && rm -rf /var/lib/apt/lists/* + python3.12-dev \ + && rm -rf /var/lib/apt/lists/* \ + && python3.12 -c "import uuid;print(uuid.uuid4())">/etc/machine-id # Copy the compiled application from the builder stage COPY --from=builder /home/ubuntu/ballistica_cmake_server/*/staged \ @@ -85,7 +80,6 @@ WORKDIR /home/ubuntu/ballistica # Expose the necessary port EXPOSE 43210/udp -EXPOSE 43210/tcp # Set the default command to run the application -CMD [ "./ballisticakit_server" ] +CMD [ "./ballisticakit_server" ] \ No newline at end of file diff --git a/tools/batools/build.py b/tools/batools/build.py index 876f3e8e..58d27711 100644 --- a/tools/batools/build.py +++ b/tools/batools/build.py @@ -689,10 +689,16 @@ def docker_build() -> None: from batools import version version_num, build_num = version.get_current_version() - _docker_build( - 'bombsquad_server', - '.', - version_num, - build_num, - ) - os.remove('Dockerfile') + image_name = 'bombsquad_server' + try: + print(f'Building docker image {image_name} version {version_num}:{build_num}') + _docker_build( + image_name, + '.', + version_num, + build_num, + ) + except KeyboardInterrupt: + print('Stopping docker image build.') + finally: + os.remove('Dockerfile') From 48d843d0dd3faa86cf2ab67f37592c05bf2f78c2 Mon Sep 17 00:00:00 2001 From: Loup-Garou911XD Date: Sun, 19 May 2024 04:37:31 +0530 Subject: [PATCH 2/7] ci fix --- tools/batools/build.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/batools/build.py b/tools/batools/build.py index 58d27711..329f69f5 100644 --- a/tools/batools/build.py +++ b/tools/batools/build.py @@ -691,7 +691,9 @@ def docker_build() -> None: version_num, build_num = version.get_current_version() image_name = 'bombsquad_server' try: - print(f'Building docker image {image_name} version {version_num}:{build_num}') + print( + f'Building docker image {image_name} version {version_num}:{build_num}' + ) _docker_build( image_name, '.', From 18faf2a67e026c2610e33eb53d95f30cf8dda5ce Mon Sep 17 00:00:00 2001 From: Loup-Garou911XD Date: Sun, 19 May 2024 15:24:12 +0530 Subject: [PATCH 3/7] now using -f flag for docker build --- Makefile | 2 +- tools/batools/build.py | 29 ++++++++++++++--------------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index eec952de..68df7215 100644 --- a/Makefile +++ b/Makefile @@ -222,7 +222,7 @@ pcommandbatch_speed_test: env # Prebuilt binaries for various platforms. -docker-build: +docker-build: assets-cmake $(PCOMMAND) build_docker docker-run: diff --git a/tools/batools/build.py b/tools/batools/build.py index 329f69f5..24a711fc 100644 --- a/tools/batools/build.py +++ b/tools/batools/build.py @@ -660,7 +660,9 @@ def _docker_build( 'build', '-t', image_name, + '-f', dockerfile_dir, + '.' ] if bombsquad_version is not None: build_cmd = build_cmd + [ @@ -685,22 +687,19 @@ def docker_build() -> None: import shutil # todo: add option to toggle between prefab and cmake - shutil.copy('config/docker/Dockerfile', '.') from batools import version version_num, build_num = version.get_current_version() image_name = 'bombsquad_server' - try: - print( - f'Building docker image {image_name} version {version_num}:{build_num}' - ) - _docker_build( - image_name, - '.', - version_num, - build_num, - ) - except KeyboardInterrupt: - print('Stopping docker image build.') - finally: - os.remove('Dockerfile') + + print( + f'Building docker image {image_name}' + + 'version {version_num}:{build_num}' + ) + _docker_build( + image_name, + os.getcwd()+'/config/docker/Dockerfile', + version_num, + build_num, + ) + From 93e452d3460384305e7ecdbf81812ed91648e4f2 Mon Sep 17 00:00:00 2001 From: Loup-Garou911XD Date: Sun, 19 May 2024 16:23:53 +0530 Subject: [PATCH 4/7] docker build cd integration --- .github/workflows/cd.yml | 32 +++++++++++++++++++++++++++++++- Makefile | 26 ++++++++++++++++++++------ 2 files changed, 51 insertions(+), 7 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index f27e3de9..202874ca 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -23,6 +23,7 @@ jobs: with: name: linux_x86_64_gui_(debug) path: build/prefab/full/linux_x86_64_gui + make_linux_x86_64_server_debug_build: runs-on: ubuntu-latest steps: @@ -40,6 +41,7 @@ jobs: with: name: linux_x86_64_server_(debug) path: build/prefab/full/linux_x86_64_server + make_linux_arm64_gui_debug_build: runs-on: ubuntu-latest steps: @@ -57,6 +59,7 @@ jobs: with: name: linux_arm64_gui_(debug) path: build/prefab/full/linux_arm64_gui + make_linux_arm64_server_debug_build: runs-on: ubuntu-latest steps: @@ -74,6 +77,7 @@ jobs: with: name: linux_arm64_server_(debug) path: build/prefab/full/linux_arm64_server + make_mac_x86_64_gui_debug_build: runs-on: ubuntu-latest steps: @@ -91,6 +95,7 @@ jobs: with: name: mac_x86_64_gui_(debug) path: build/prefab/full/mac_x86_64_gui + make_mac_x86_64_server_debug_build: runs-on: ubuntu-latest steps: @@ -108,6 +113,7 @@ jobs: with: name: mac_x86_64_server_(debug) path: build/prefab/full/mac_x86_64_server + make_mac_arm64_gui_debug_build: runs-on: ubuntu-latest steps: @@ -125,6 +131,7 @@ jobs: with: name: mac_arm64_gui_(debug) path: build/prefab/full/mac_arm64_gui + make_mac_arm64_server_debug_build: runs-on: ubuntu-latest steps: @@ -142,6 +149,7 @@ jobs: with: name: mac_arm64_server_(debug) path: build/prefab/full/mac_arm64_server + make_windows_x86_gui_debug_build: runs-on: ubuntu-latest steps: @@ -159,6 +167,7 @@ jobs: with: name: windows_x86_gui_(debug) path: build/prefab/full/windows_x86_gui + make_windows_x86_server_debug_build: runs-on: ubuntu-latest steps: @@ -176,6 +185,7 @@ jobs: with: name: windows_x86_server_(debug) path: build/prefab/full/windows_x86_server + make_sphinx_docs: runs-on: ubuntu-latest steps: @@ -192,4 +202,24 @@ jobs: uses: actions/upload-artifact@v4 with: name: sphinx_html_docs - path: build/sphinx \ No newline at end of file + path: build/sphinx + + make_docker_image: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + - name: Setup build dependencies + run: apt install cmake + - name: Setup project environment + run: make env + - name: Make the build + run: make docker-save + - name: Upload the build + uses: actions/upload-artifact@v4 + with: + name: docker_server(release) + path: build/docker/bombsquad_server_docker.tar \ No newline at end of file diff --git a/Makefile b/Makefile index 68df7215..9b90f040 100644 --- a/Makefile +++ b/Makefile @@ -222,12 +222,6 @@ pcommandbatch_speed_test: env # Prebuilt binaries for various platforms. -docker-build: assets-cmake - $(PCOMMAND) build_docker - -docker-run: - docker run -it bombsquad_server - # WSL is Linux but running under Windows, so it can target either. By default # we want these top level targets (prefab-gui-debug, etc.) to yield native # Windows builds from WSL, but this env var can be set to override that. @@ -1182,6 +1176,26 @@ clion-staging: assets-cmake resources meta cmake-modular-server-build cmake-modular-server-binary \ cmake-modular-server-clean clion-staging +################################################################################ +# # +# Docker # +# # +################################################################################ + +docker-build: assets-cmake + $(PCOMMAND) build_docker + +docker-run: + docker run -it bombsquad_server + +docker-save: docker-build + mkdir -p build/docker/ + docker save bombsquad_server -o build/docker/bombsquad_server_docker.tar + +docker-clean: + rm build/docker/bombsquad_server_docker.tar + docker rmi bombsquad_server --force + docker system prune ################################################################################ # # From c794e63091ec0454e51152fe5f7e452f687de33a Mon Sep 17 00:00:00 2001 From: Loup-Garou911XD Date: Sun, 19 May 2024 16:29:13 +0530 Subject: [PATCH 5/7] ci fix trial 1 --- .github/workflows/cd.yml | 2 +- tools/batools/build.py | 13 +++++-------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 202874ca..fdd07734 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -213,7 +213,7 @@ jobs: with: python-version: '3.12' - name: Setup build dependencies - run: apt install cmake + run: sudo apt-get install -y cmake - name: Setup project environment run: make env - name: Make the build diff --git a/tools/batools/build.py b/tools/batools/build.py index 24a711fc..48ffe89f 100644 --- a/tools/batools/build.py +++ b/tools/batools/build.py @@ -662,7 +662,7 @@ def _docker_build( image_name, '-f', dockerfile_dir, - '.' + '.', ] if bombsquad_version is not None: build_cmd = build_cmd + [ @@ -684,22 +684,19 @@ def _docker_build( def docker_build() -> None: """Build docker image.""" - import shutil - # todo: add option to toggle between prefab and cmake from batools import version version_num, build_num = version.get_current_version() image_name = 'bombsquad_server' - + print( - f'Building docker image {image_name}' + - 'version {version_num}:{build_num}' + f'Building docker image {image_name}' + + 'version {version_num}:{build_num}' ) _docker_build( image_name, - os.getcwd()+'/config/docker/Dockerfile', + os.getcwd() + '/config/docker/Dockerfile', version_num, build_num, ) - From 4c54270ca18ece820e844d6fdf7aa3c35c4b38fa Mon Sep 17 00:00:00 2001 From: Loup-Garou911XD Date: Sun, 19 May 2024 16:39:27 +0530 Subject: [PATCH 6/7] cleanup --- .github/workflows/cd.yml | 2 -- tools/batools/build.py | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index fdd07734..7ddd733d 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -212,8 +212,6 @@ jobs: uses: actions/setup-python@v5 with: python-version: '3.12' - - name: Setup build dependencies - run: sudo apt-get install -y cmake - name: Setup project environment run: make env - name: Make the build diff --git a/tools/batools/build.py b/tools/batools/build.py index 48ffe89f..940d8d19 100644 --- a/tools/batools/build.py +++ b/tools/batools/build.py @@ -696,7 +696,7 @@ def docker_build() -> None: ) _docker_build( image_name, - os.getcwd() + '/config/docker/Dockerfile', + 'config/docker/Dockerfile', version_num, build_num, ) From 9c42a81213ecf2669bb85836ccf8a29308c217db Mon Sep 17 00:00:00 2001 From: Eric Date: Sun, 19 May 2024 13:29:51 -0700 Subject: [PATCH 7/7] pubsync --- .efrocachemap | 32 ++++++++++++++++---------------- Makefile | 4 +++- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/.efrocachemap b/.efrocachemap index 9443c7c5..704a6bfa 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -4046,18 +4046,18 @@ "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "da731180827f74d0397ad8de3513d460", "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "e265dcac18f1daccf9df488fcc1b6724", "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "abc3bca14a09f7d72f00472ee69cbaa2", - "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "f5c4aad85554354e8a4113430051d3c0", + "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "87fbcd34d0963ed1f54c213e1e9ce24b", "build/prefab/full/mac_arm64_gui/release/ballisticakit": "33f20935cb1cf6ccaf409846f84b241f", - "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "b0ce064a823d99ed4339795bcc1fbab6", + "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "c1769fbf49db6b630e801ace3ac1f55e", "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "62682664253767b108dd4a90670f3d8e", - "build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "d9879931f0962b5775adbeca5ccf775e", + "build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "8b9ff340043ffcec5f50e2bb2239056d", "build/prefab/full/mac_x86_64_gui/release/ballisticakit": "4ca5c155c8acdd4440e8cbaf85edc0ff", - "build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "e6380a0bb4434fab60ca89747a59dd55", + "build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "5986c75ff3e956e57e996c9e1ea0b654", "build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "cd7243e6a94a8c4d7e4cd9e2817677d9", - "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "9d5823f786d59206c9f65f5c7b982c77", - "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "9d8db2efd49a26203e3c34bdafea0328", - "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "b558bb689b502c628eb7ef28df6e775c", - "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "e55855561a2c1665bc04293761ac4a9a", + "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "5d7017e7a1f06dd178893d0742994937", + "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "742261cb35cc08e844170242b52eabb7", + "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "c51b78b85aa079894b746ff1bc6adcd4", + "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "6b36f587dbbe61faba5aaabe51acf5f1", "build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "9162b53189b80d4e5938cd142acd2a1a", "build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "2226d0e2d34051d962320c86464f3a2d", "build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "9162b53189b80d4e5938cd142acd2a1a", @@ -4074,14 +4074,14 @@ "build/prefab/lib/mac_x86_64_gui/release/libballisticaplus.a": "299b6c4b83966040618b27563b700c2a", "build/prefab/lib/mac_x86_64_server/debug/libballisticaplus.a": "08c2f91d086e6f3fa73ebc299112358a", "build/prefab/lib/mac_x86_64_server/release/libballisticaplus.a": "299b6c4b83966040618b27563b700c2a", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "bf9b070d79c29b59a1a5a601f970181d", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "e4993050ca26d3407551c797207e7934", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "929ebabc472bf475bb0f761229e4b818", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "dbb096b31a43d7cf85d35404c2ae7222", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "892547735582daf94fd474d96ff02843", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "40f2bd5953e012d590c577ee28e488bb", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "6383d87955a72c1e63cf1626810bb81f", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "838f1b34920f9ab7b59fb2b353ddb367", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "434a62eab6f545afd9afae607a8acb25", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "51b4809a050b412f4d9354c76587775a", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "4012fbee0d10dca77a0ef61488cc4ca8", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "252ede4ca17f27db81ceb0d077091fb4", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "b064c926d89d5259cb58d4456be96fbc", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "27812420b5c838755c13a70eb46a42a5", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "866ed9a4d45775fc2f94a440e4bc68d6", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "dfc573dcb937e27276f7cd4b7a52bb8c", "src/assets/ba_data/python/babase/_mgen/__init__.py": "f885fed7f2ed98ff2ba271f9dbe3391c", "src/assets/ba_data/python/babase/_mgen/enums.py": "5548f407d97e380069f6c596c4e36cd7", "src/ballistica/base/mgen/pyembed/binding_base.inc": "efa61468cf098f77cc6a234461d8b86d", diff --git a/Makefile b/Makefile index 9b90f040..1e040aa3 100644 --- a/Makefile +++ b/Makefile @@ -1176,9 +1176,10 @@ clion-staging: assets-cmake resources meta cmake-modular-server-build cmake-modular-server-binary \ cmake-modular-server-clean clion-staging + ################################################################################ # # -# Docker # +# Docker # # # ################################################################################ @@ -1197,6 +1198,7 @@ docker-clean: docker rmi bombsquad_server --force docker system prune + ################################################################################ # # # Auxiliary #