diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5fa5e4ae77fa7bc330a9eb47373fd8ec3ffd4490..0833653a5ece5526c872b09c0f0af39134a82827 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,10 +5,21 @@ stages: - frontend test cache: + key: ${CI_COMMIT_REF_SLUG} paths: - .m2/repository/ - target/ - .yarn + - android-sdk/ + - .gradle/wrapper + - .gradle/caches + +variables: + # Specify the SDK tools version and build tools version to use + ANDROID_COMPILE_SDK: 31 + ANDROID_BUILD_TOOLS: 31.0.0 + ANDROID_SDK_TOOLS: 7583922 + ANDROID_HOME: "/usr/local/android-sdk" Prettier check: @@ -30,3 +41,18 @@ Backend build: - yarn - yarn tsc +Frontend build: + image: gradle:7.5.0-jdk11 + stage: backend test + needs: [] + script: + # Restore Android SDK from cache + - if [ -d android-sdk ]; then mv android-sdk/* $ANDROID_HOME/; fi + # Download and install Android SDK + - wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_TOOLS}_latest.zip + - unzip -q android-sdk.zip -d android-sdk + - echo y | android-sdk/cmdline-tools/bin/sdkmanager --sdk_root=$ANDROID_HOME "platforms;android-${ANDROID_COMPILE_SDK}" "build-tools;${ANDROID_BUILD_TOOLS}" + - cd frontend + - ./gradlew clean + - ./gradlew build --refresh-dependencies + - gradle build diff --git a/frontend/build.gradle b/frontend/build.gradle index dcbdcb8a57b286e800b3064c72ac414f33487783..f2b240ad6c1498d7024f7ca54415dcb281531638 100644 --- a/frontend/build.gradle +++ b/frontend/build.gradle @@ -77,22 +77,6 @@ project(":android") { } } -project(":html") { - apply plugin: "java-library" - apply plugin: "gwt" - apply plugin: "war" - apply plugin: "org.gretty" - - - dependencies { - implementation project(":core") - api "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion" - api "com.badlogicgames.gdx:gdx:$gdxVersion:sources" - api "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion:sources" - - } -} - project(":core") { apply plugin: "java-library" diff --git a/frontend/core/src/TankWarsGame.gwt.xml b/frontend/core/src/TankWarsGame.gwt.xml deleted file mode 100644 index 6e150872f37d50514299f7e1465eb41326f01bb0..0000000000000000000000000000000000000000 --- a/frontend/core/src/TankWarsGame.gwt.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit trunk//EN" "http://www.gwtproject.org/doctype/2.8.0/gwt-module.dtd"> -<module> - <source path="com/game/tankwars" /> -</module> \ No newline at end of file diff --git a/frontend/html/build.gradle b/frontend/html/build.gradle deleted file mode 100644 index 1b443e26e3032e6dcbf7e5312017b84e6ecc05fe..0000000000000000000000000000000000000000 --- a/frontend/html/build.gradle +++ /dev/null @@ -1,92 +0,0 @@ -gwt { - gwtVersion='2.8.2' // Should match the gwt version used for building the gwt backend - maxHeapSize="1G" // Default 256m is not enough for gwt compiler. GWT is HUNGRY - minHeapSize="1G" - - src = files(file("src/")) // Needs to be in front of "modules" below. - modules 'com.game.tankwars.GdxDefinition' - devModules 'com.game.tankwars.GdxDefinitionSuperdev' - project.webAppDirName = 'webapp' - - compiler { - strict = true; - disableCastChecking = true; - } -} - -import org.wisepersist.gradle.plugins.gwt.GwtSuperDev -import org.akhikhl.gretty.AppBeforeIntegrationTestTask - -gretty.httpPort = 8080 -gretty.resourceBase = project.buildDir.path + "/gwt/draftOut" -gretty.contextPath = "/" -gretty.portPropertiesFileName = "TEMP_PORTS.properties" - -task startHttpServer () { - dependsOn draftCompileGwt - - doFirst { - copy { - from "webapp" - into gretty.resourceBase - } - - copy { - from "war" - into gretty.resourceBase - } - } -} - -task beforeRun(type: AppBeforeIntegrationTestTask, dependsOn: startHttpServer) { - // The next line allows ports to be reused instead of - // needing a process to be manually terminated. - file("build/TEMP_PORTS.properties").delete() - // Somewhat of a hack; uses Gretty's support for wrapping a task in - // a start and then stop of a Jetty server that serves files while - // also running the SuperDev code server. - integrationTestTask 'superDev' - - interactive false -} - -task superDev (type: GwtSuperDev) { - dependsOn startHttpServer - doFirst { - gwt.modules = gwt.devModules - } -} - -task dist(dependsOn: [clean, compileGwt]) { - doLast { - file("build/dist").mkdirs() - copy { - from "build/gwt/out" - into "build/dist" - } - copy { - from "webapp" - into "build/dist" - } - copy { - from "war" - into "build/dist" - } - } -} - -task addSource { - doLast { - sourceSets.main.compileClasspath += files(project(':core').sourceSets.main.allJava.srcDirs) - } -} - -tasks.compileGwt.dependsOn(addSource) -tasks.draftCompileGwt.dependsOn(addSource) -tasks.checkGwt.dependsOn(addSource) -checkGwt.war = file("war") - -sourceCompatibility = 1.7 -sourceSets.main.java.srcDirs = [ "src/" ] - -eclipse.project.name = appName + "-html" diff --git a/frontend/html/src/com/game/tankwars/GdxDefinition.gwt.xml b/frontend/html/src/com/game/tankwars/GdxDefinition.gwt.xml deleted file mode 100644 index cf4f97607356c0c8a355365f68c415b62857a669..0000000000000000000000000000000000000000 --- a/frontend/html/src/com/game/tankwars/GdxDefinition.gwt.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit trunk//EN" "http://www.gwtproject.org/doctype/2.8.0/gwt-module.dtd"> -<module rename-to="html"> - <inherits name='com.badlogic.gdx.backends.gdx_backends_gwt' /> - - <inherits name='TankWarsGame' /> - <entry-point class='com.game.tankwars.client.HtmlLauncher' /> - <set-configuration-property name='xsiframe.failIfScriptTag' value='FALSE'/> - <set-configuration-property name="gdx.assetpath" value="../assets" /> - <set-property name="user.agent" value="gecko1_8, safari"/> - <collapse-property name="user.agent" values="*" /> -</module> diff --git a/frontend/html/src/com/game/tankwars/GdxDefinitionSuperdev.gwt.xml b/frontend/html/src/com/game/tankwars/GdxDefinitionSuperdev.gwt.xml deleted file mode 100644 index 62ba476b113486f62e14da9923bbabe478162b08..0000000000000000000000000000000000000000 --- a/frontend/html/src/com/game/tankwars/GdxDefinitionSuperdev.gwt.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit trunk//EN" "http://www.gwtproject.org/doctype/2.8.0/gwt-module.dtd"> -<module rename-to="html"> - <inherits name='com.badlogic.gdx.backends.gdx_backends_gwt' /> - - <inherits name='com.game.tankwars.GdxDefinition' /> - - <collapse-all-properties /> - - <add-linker name="xsiframe"/> - <set-configuration-property name="devModeRedirectEnabled" value="true"/> - <set-configuration-property name='xsiframe.failIfScriptTag' value='FALSE'/> -</module> diff --git a/frontend/html/src/com/game/tankwars/client/HtmlLauncher.java b/frontend/html/src/com/game/tankwars/client/HtmlLauncher.java deleted file mode 100644 index 42dff39df3a14c7c1398372c107659fcc5313aa6..0000000000000000000000000000000000000000 --- a/frontend/html/src/com/game/tankwars/client/HtmlLauncher.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.game.tankwars.client; - -import com.badlogic.gdx.ApplicationListener; -import com.badlogic.gdx.backends.gwt.GwtApplication; -import com.badlogic.gdx.backends.gwt.GwtApplicationConfiguration; -import com.game.tankwars.TankWarsGame; - -public class HtmlLauncher extends GwtApplication { - - @Override - public GwtApplicationConfiguration getConfig () { - // Resizable application, uses available space in browser - return new GwtApplicationConfiguration(true); - // Fixed size application: - //return new GwtApplicationConfiguration(480, 320); - } - - @Override - public ApplicationListener createApplicationListener () { - return new TankWarsGame(); - } -} \ No newline at end of file diff --git a/frontend/html/webapp/WEB-INF/web.xml b/frontend/html/webapp/WEB-INF/web.xml deleted file mode 100644 index 4301df2483bb501c3c72079c65b160578721412f..0000000000000000000000000000000000000000 --- a/frontend/html/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,3 +0,0 @@ -<?xml version="1.0" ?> -<web-app> -</web-app> \ No newline at end of file diff --git a/frontend/html/webapp/index.html b/frontend/html/webapp/index.html deleted file mode 100644 index b42db3b0d0588c6ad180bad0453c326d1be5987f..0000000000000000000000000000000000000000 --- a/frontend/html/webapp/index.html +++ /dev/null @@ -1,31 +0,0 @@ -<!doctype html> -<html> - <head> - <title>Tank Wars</title> - <meta http-equiv="content-type" content="text/html; charset=UTF-8"> - <meta id="gameViewport" name="viewport" content="width=device-width initial-scale=1"> - <link href="styles.css" rel="stylesheet" type="text/css"> - </head> - - <body> - <a class="superdev" href="javascript:%7B%20window.__gwt_bookmarklet_params%20%3D%20%7B'server_url'%3A'http%3A%2F%2Flocalhost%3A9876%2F'%7D%3B%20var%20s%20%3D%20document.createElement('script')%3B%20s.src%20%3D%20'http%3A%2F%2Flocalhost%3A9876%2Fdev_mode_on.js'%3B%20void(document.getElementsByTagName('head')%5B0%5D.appendChild(s))%3B%7D">↻</a> - <div align="center" id="embed-html"></div> - <script type="text/javascript" src="html/html.nocache.js"></script> - </body> - - <script> - function handleMouseDown(evt) { - evt.preventDefault(); - evt.stopPropagation(); - window.focus(); - } - - function handleMouseUp(evt) { - evt.preventDefault(); - evt.stopPropagation(); - } - document.addEventListener('contextmenu', event => event.preventDefault()); - document.getElementById('embed-html').addEventListener('mousedown', handleMouseDown, false); - document.getElementById('embed-html').addEventListener('mouseup', handleMouseUp, false); - </script> -</html> diff --git a/frontend/html/webapp/styles.css b/frontend/html/webapp/styles.css deleted file mode 100644 index 0abbdaa32d9e099605f1a428c6fe752ed2c72830..0000000000000000000000000000000000000000 --- a/frontend/html/webapp/styles.css +++ /dev/null @@ -1,43 +0,0 @@ -canvas { - cursor: default; - outline: none; -} - -body { - background-color: #222222; -} - -.superdev { - color: rgb(37,37,37); - text-shadow: 0px 1px 1px rgba(250,250,250,0.1); - font-size: 50pt; - display: block; - position: relative; - text-decoration: none; - background-color: rgb(83,87,93); - box-shadow: 0px 3px 0px 0px rgb(34,34,34), - 0px 7px 10px 0px rgb(17,17,17), - inset 0px 1px 1px 0px rgba(250, 250, 250, .2), - inset 0px -12px 35px 0px rgba(0, 0, 0, .5); - width: 70px; - height: 70px; - border: 0; - border-radius: 35px; - text-align: center; - line-height: 68px; -} - -.superdev:active { - box-shadow: 0px 0px 0px 0px rgb(34,34,34), - 0px 3px 7px 0px rgb(17,17,17), - inset 0px 1px 1px 0px rgba(250, 250, 250, .2), - inset 0px -10px 35px 5px rgba(0, 0, 0, .5); - background-color: rgb(83,87,93); - top: 3px; - color: #fff; - text-shadow: 0px 0px 3px rgb(250,250,250); -} - -.superdev:hover { - background-color: rgb(100,100,100); -} diff --git a/frontend/settings.gradle b/frontend/settings.gradle index 14bee42fc44d0b54cd1651dfeb340025b453c343..e6a9599f31db19484df8c49748d9e2fb1c590d7c 100644 --- a/frontend/settings.gradle +++ b/frontend/settings.gradle @@ -1 +1 @@ -include 'desktop', 'android', 'html', 'core' \ No newline at end of file +include 'desktop', 'android', 'core'