- more tidying up

- setting up distribution plugin
- using more variables for mod config
This commit is contained in:
Adam 2021-12-02 00:54:15 +01:00
parent afbfeda616
commit 7091f7648d
34 changed files with 293 additions and 169 deletions

View file

@ -1,15 +1,12 @@
import dev.adamko.kafkatorio.gradle.asConsumer
import dev.adamko.kafkatorio.gradle.factorioModAttributes
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
plugins {
id("dev.adamko.kafkatorio.process-runner")
id("dev.adamko.kafkatorio.infra.docker-compose")
}
val tokens: Map<String, String> by project.extra
val modInfraDir: Directory = layout.projectDirectory.dir("infra")
val factorioServerDataDir: Directory = modInfraDir.dir("factorio-server")
val srcDir: Directory by extra
val factorioServerDataDir: Directory = srcDir.dir("factorio-server")
val factorioMod: Configuration by configurations.creating {
asConsumer()
@ -32,46 +29,58 @@ val deployModToServer by tasks.registering(Copy::class) {
}
}
//<editor-fold desc="Factorio server lifecycle tasks">
val factorioServerStop = tasks.register<Exec>("factorioServerStop") {
group = project.name
mustRunAfter(deployModToServer)
workingDir(modInfraDir)
commandLine = parseSpaceSeparatedArgs("docker-compose stop factorio-server")
tasks.dockerUp {
dependsOn(
deployModToServer,
":modules:infra-kafka-cluster:processRun",
)
}
val factorioServerUp = tasks.register<Exec>("factorioServerUp") {
group = project.name
mustRunAfter(deployModToServer)
dependsOn(factorioServerStop)
workingDir(modInfraDir)
commandLine = parseSpaceSeparatedArgs("docker-compose up -d factorio-server")
tasks.updateEnv {
properties("FACTORIO_VERSION" to libs.versions.factorio.get())
}
val factorioServerRestart: Task by tasks.creating {
group = project.name
dependsOn(factorioServerStop, factorioServerUp)
}
//</editor-fold>
tasks.build { dependsOn(deployModToServer) }
tasks.processRun {
description = "Build the mod, upload to Server and Client, and start both"
dependsOn(
deployModToServer,
factorioServerRestart,
)
}
//<editor-fold desc="Factorio server lifecycle tasks">
//val factorioServerStop = tasks.register<Exec>("factorioServerStop") {
// group = project.name
//
// mustRunAfter(deployModToServer)
//
// workingDir(modInfraDir)
// commandLine = parseSpaceSeparatedArgs("docker-compose stop factorio-server")
//}
tasks.processKill {
dependsOn(
factorioServerStop,
)
}
//val factorioServerUp = tasks.register<Exec>("factorioServerUp") {
// group = project.name
//
// mustRunAfter(deployModToServer)
// dependsOn(factorioServerStop)
//
// workingDir(modInfraDir)
// commandLine = parseSpaceSeparatedArgs("docker-compose up -d factorio-server")
//}
//val factorioServerRestart: Task by tasks.creating {
// group = project.name
//
// dependsOn(factorioServerStop, factorioServerUp)
//}
//</editor-fold>
//
//tasks.processRun {
// description = "Build the mod, upload to Server and Client, and start both"
// dependsOn(
// deployModToServer,
// factorioServerRestart,
// )
//}
//
//tasks.processKill {
// dependsOn(
// factorioServerStop,
// )
//}
//

View file

@ -1 +0,0 @@
COMPOSE_PROJECT_NAME=factorio-infra

View file

@ -0,0 +1,3 @@
# Do not edit manually. This file was created with task 'updateEnv'
COMPOSE_PROJECT_NAME=kafkatorio
FACTORIO_VERSION=1.1.48

View file

@ -3,13 +3,13 @@ version: "3.9"
services:
factorio-server:
image: factoriotools/factorio:1.1.48
image: factoriotools/factorio:${FACTORIO_VERSION}
# logging:
# driver: "json-file"
container_name: "factorio-server"
restart: "unless-stopped"
networks:
- "factorio-events-nw"
- "kafkatorio-nw"
ports:
- "34197:34197/udp" # factorio
- "27015:27015/tcp" # rcon
@ -32,8 +32,6 @@ services:
# - TOKEN=FactorioToken
networks:
kafka-nw:
name: "kafka-nw"
kafkatorio-nw:
name: "kafkatorio-nw"
external: true
factorio-events-nw:
name: "factorio-events-nw"

View file

@ -3,7 +3,11 @@ ARG factorioVersion=1.1.42
FROM factoriotools/factorio:$factorioVersion
# In progress
# The intention is to remove kafka-pipe and have a
# pre-preared Factorio Docker container than can
# just run, without needing an additional
# container with kcat.
#RUN apk add --update \
# curl \
@ -19,5 +23,3 @@ RUN apt-get update && apt-get install -y \
WORKDIR /
COPY kafka-pipe.sh kafka-pipe.sh