mirror of
https://github.com/nolen777/eagle0.git
synced 2026-07-28 21:35:42 +00:00
* Next steps for productionization * Run deploy job on self-hosted runner for secure SSH * Temporarily disable production environment to debug runner * Use ubuntu-latest for deploy job * Add remote_tags to oci_push for latest tag
131 lines
3.3 KiB
Python
131 lines
3.3 KiB
Python
load("@rules_oci//oci:defs.bzl", "oci_image", "oci_load", "oci_push")
|
|
load("@rules_pkg//pkg:tar.bzl", "pkg_tar")
|
|
|
|
#
|
|
# Eagle Server Docker Image
|
|
#
|
|
# Build: bazel build //ci:eagle_server_image
|
|
# Load: bazel run //ci:eagle_server_load
|
|
# Push: bazel run //ci:eagle_server_push
|
|
#
|
|
|
|
# Package the deploy JAR
|
|
pkg_tar(
|
|
name = "eagle_server_jar_layer",
|
|
srcs = ["//src/main/scala/net/eagle0/eagle:eagle_server_deploy.jar"],
|
|
package_dir = "/app",
|
|
)
|
|
|
|
# Package the game resources needed at runtime
|
|
pkg_tar(
|
|
name = "eagle_resources_layer",
|
|
srcs = [
|
|
"//src/main/resources/net/eagle0/eagle:beasts",
|
|
"//src/main/resources/net/eagle0/eagle:game_parameters",
|
|
"//src/main/resources/net/eagle0/eagle:headshots",
|
|
"//src/main/resources/net/eagle0/eagle:heroes",
|
|
"//src/main/resources/net/eagle0/eagle:province_map",
|
|
"//src/main/resources/net/eagle0/eagle:settings",
|
|
],
|
|
package_dir = "/app/resources",
|
|
)
|
|
|
|
oci_image(
|
|
name = "eagle_server_image",
|
|
base = "@eclipse_temurin_17_linux_amd64",
|
|
entrypoint = [
|
|
"java",
|
|
"-Xmx4g",
|
|
"-XX:+UseG1GC",
|
|
"-jar",
|
|
"/app/eagle_server_deploy.jar",
|
|
],
|
|
env = {
|
|
"JAVA_OPTS": "-Xmx4g -XX:+UseG1GC",
|
|
},
|
|
exposed_ports = ["40032/tcp"],
|
|
tars = [
|
|
":eagle_server_jar_layer",
|
|
":eagle_resources_layer",
|
|
],
|
|
workdir = "/app",
|
|
)
|
|
|
|
# Load into Docker locally: bazel run //ci:eagle_server_load
|
|
oci_load(
|
|
name = "eagle_server_load",
|
|
image = ":eagle_server_image",
|
|
repo_tags = ["eagle0/eagle-server:latest"],
|
|
)
|
|
|
|
# Push to DigitalOcean Container Registry
|
|
oci_push(
|
|
name = "eagle_server_push",
|
|
image = ":eagle_server_image",
|
|
remote_tags = ["latest"],
|
|
repository = "registry.digitalocean.com/eagle0/eagle-server",
|
|
)
|
|
|
|
#
|
|
# Shardok Server Docker Image
|
|
#
|
|
# Build: bazel build //ci:shardok_server_image
|
|
# Load: bazel run //ci:shardok_server_load
|
|
# Push: bazel run //ci:shardok_server_push
|
|
#
|
|
|
|
# Package the Shardok binary
|
|
pkg_tar(
|
|
name = "shardok_binary_layer",
|
|
srcs = ["//src/main/cpp/net/eagle0/shardok:shardok-server"],
|
|
package_dir = "/app",
|
|
)
|
|
|
|
# Package the Shardok resources (battalion types, settings)
|
|
pkg_tar(
|
|
name = "shardok_resources_layer",
|
|
srcs = [
|
|
"//src/main/resources/net/eagle0/shardok:battalion_types",
|
|
"//src/main/resources/net/eagle0/shardok:settings",
|
|
],
|
|
package_dir = "/app/resources",
|
|
)
|
|
|
|
# Package the converted maps
|
|
pkg_tar(
|
|
name = "shardok_maps_layer",
|
|
srcs = ["//src/main/resources/net/eagle0/shardok/maps"],
|
|
package_dir = "/app/resources/maps",
|
|
)
|
|
|
|
oci_image(
|
|
name = "shardok_server_image",
|
|
base = "@ubuntu_24_04_linux_amd64",
|
|
entrypoint = ["/app/shardok-server"],
|
|
exposed_ports = [
|
|
"40042/tcp",
|
|
"40052/tcp",
|
|
],
|
|
tars = [
|
|
":shardok_binary_layer",
|
|
":shardok_resources_layer",
|
|
":shardok_maps_layer",
|
|
],
|
|
workdir = "/app",
|
|
)
|
|
|
|
# Load into Docker locally: bazel run //ci:shardok_server_load
|
|
oci_load(
|
|
name = "shardok_server_load",
|
|
image = ":shardok_server_image",
|
|
repo_tags = ["eagle0/shardok-server:latest"],
|
|
)
|
|
|
|
# Push to DigitalOcean Container Registry
|
|
oci_push(
|
|
name = "shardok_server_push",
|
|
image = ":shardok_server_image",
|
|
remote_tags = ["latest"],
|
|
repository = "registry.digitalocean.com/eagle0/shardok-server",
|
|
)
|