Compare commits
9 Commits
be73abca63
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
852f8e2a0c
|
|||
|
8074084137
|
|||
|
7084a075f9
|
|||
|
8c3d9fd625
|
|||
|
8954723510
|
|||
|
73c6c52798
|
|||
|
640c5de108
|
|||
|
7edd290c68
|
|||
|
55ab0dbf4d
|
3
.dockerignore
Normal file
3
.dockerignore
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
.git/
|
||||||
|
Dockerfile
|
||||||
|
bin/
|
||||||
22
.gitea/workflows/ci.yaml
Normal file
22
.gitea/workflows/ci.yaml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
name: build-and-test
|
||||||
|
on: [push]
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Check out repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Set up Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: ^1.24
|
||||||
|
- name: Build binary
|
||||||
|
run: go build -v ./...
|
||||||
|
- name: Run tests
|
||||||
|
run: go test -json ./... > test-results.json
|
||||||
|
- name: Upload artefacts
|
||||||
|
uses: https://gitea.com/actions/gitea-upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: test-results
|
||||||
|
path: test-results.json
|
||||||
38
.gitea/workflows/release.yaml
Normal file
38
.gitea/workflows/release.yaml
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
name: release
|
||||||
|
on:
|
||||||
|
release:
|
||||||
|
types: [published]
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Check out repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Set up docker
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
- name: Log in to the Gitea container registry
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: ${{ gitea.server_url }}
|
||||||
|
username: ${{ gitea.actor }}
|
||||||
|
password: ${{ secrets.PACKAGES_TOKEN }}
|
||||||
|
- name: Extract metadata
|
||||||
|
id: meta
|
||||||
|
uses: docker/metadata-action@v5
|
||||||
|
with:
|
||||||
|
images: gitea.bp99.eu/${{ gitea.repository }}
|
||||||
|
tags: |
|
||||||
|
type=ref,event=tag
|
||||||
|
type=semver,pattern={{version}}
|
||||||
|
type=semver,pattern={{major}}.{{minor}}
|
||||||
|
type=semver,pattern={{major}}
|
||||||
|
type=raw,value=latest,enable={{is_default_branch}}
|
||||||
|
- name: Build and push docker image
|
||||||
|
uses: docker/build-push-action@v5
|
||||||
|
with:
|
||||||
|
context: ./
|
||||||
|
platforms: linux/amd64
|
||||||
|
push: true
|
||||||
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
11
Dockerfile
Normal file
11
Dockerfile
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
FROM golang:1.24-alpine AS build
|
||||||
|
WORKDIR /app/
|
||||||
|
COPY go.mod go.sum ./
|
||||||
|
RUN go mod download
|
||||||
|
COPY . .
|
||||||
|
RUN CGO_ENABLED=0 GOOS=linux go build -o bin/urbanterror-agones ./cmd/urbanterror-agones/
|
||||||
|
|
||||||
|
FROM alpine:3
|
||||||
|
WORKDIR /app/
|
||||||
|
COPY --from=build /app/bin/urbanterror-agones ./
|
||||||
|
ENTRYPOINT ["/app/urbanterror-agones"]
|
||||||
@ -53,7 +53,7 @@ func (o *agonesObserver) GetID() string {
|
|||||||
return o.id
|
return o.id
|
||||||
}
|
}
|
||||||
|
|
||||||
func StartAgonesSidecar() error {
|
func StartAgonesSidecar(host string, port int) error {
|
||||||
slog.Info("Starting Urban Terror Agones sidecar")
|
slog.Info("Starting Urban Terror Agones sidecar")
|
||||||
|
|
||||||
// Create context
|
// Create context
|
||||||
@ -61,7 +61,7 @@ func StartAgonesSidecar() error {
|
|||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
// Create simple game client
|
// Create simple game client
|
||||||
client, err := q3c.New("localhost", 27960)
|
client, err := q3c.New(host, port)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error("Failed to create new Quake3 client", "error", err)
|
slog.Error("Failed to create new Quake3 client", "error", err)
|
||||||
return err
|
return err
|
||||||
|
|||||||
@ -1,17 +1,15 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
|
||||||
"flag"
|
"flag"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
"os"
|
"os"
|
||||||
"time"
|
|
||||||
|
|
||||||
q3c "bp99.eu/ut-agones/internal/quake3/client"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
verbose := flag.Bool("v", false, "Enable debug verbosity")
|
verbose := flag.Bool("v", false, "Enable debug verbosity")
|
||||||
|
host := flag.String("s", "localhost", "UT server hostname")
|
||||||
|
port := flag.Int("p", 27960, "UT server port")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
level := slog.LevelInfo
|
level := slog.LevelInfo
|
||||||
@ -27,63 +25,7 @@ func main() {
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
if err := StartAgonesSidecar(); err != nil {
|
if err := StartAgonesSidecar(*host, *port); err != nil {
|
||||||
slog.Error("Agones sidecar error", "error", err)
|
slog.Error("Agones sidecar error", "error", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func smain() {
|
|
||||||
slog.SetDefault(
|
|
||||||
slog.New(
|
|
||||||
slog.NewJSONHandler(
|
|
||||||
os.Stdout,
|
|
||||||
&slog.HandlerOptions{Level: slog.LevelDebug},
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
c, err := q3c.New("localhost", 27960)
|
|
||||||
if err != nil {
|
|
||||||
slog.Error("Failed to create client", "error", err)
|
|
||||||
return
|
|
||||||
} else {
|
|
||||||
slog.Info("Client created")
|
|
||||||
}
|
|
||||||
|
|
||||||
ticker := time.NewTicker(2 * time.Second)
|
|
||||||
defer ticker.Stop()
|
|
||||||
for {
|
|
||||||
select {
|
|
||||||
case <-ticker.C:
|
|
||||||
if err := c.Ping(); err != nil {
|
|
||||||
slog.Error("Failed to ping with client", "error", err)
|
|
||||||
} else {
|
|
||||||
slog.Info("Pinged client")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func xmain() {
|
|
||||||
slog.SetDefault(
|
|
||||||
slog.New(
|
|
||||||
slog.NewJSONHandler(
|
|
||||||
os.Stdout,
|
|
||||||
&slog.HandlerOptions{Level: slog.LevelDebug},
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
c, err := q3c.New("localhost", 27960)
|
|
||||||
if err != nil {
|
|
||||||
slog.Error("Failed to create client", "error", err)
|
|
||||||
return
|
|
||||||
} else {
|
|
||||||
slog.Info("Client created", "client", c)
|
|
||||||
}
|
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
q3c.NewRobust(ctx, c)
|
|
||||||
|
|
||||||
select {}
|
|
||||||
}
|
|
||||||
|
|||||||
4
renovate.json
Normal file
4
renovate.json
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"extends": ["config:recommended"],
|
||||||
|
"labels": ["renovate", "deps"]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user