ci: add build and distribution pipeline with goreleaser and Gitea Actions

- .goreleaser.yaml: cross-compile linux/windows, Docker image, Gitea releases
- .gitea/workflows/ci.yml: verify build on every push/PR
- .gitea/workflows/release.yml: goreleaser + Docker on tag push
- Dockerfile: switch to debian:bookworm-slim, install steamcmd from Valve
- Dockerfile.goreleaser: minimal image used by goreleaser dockers
- docker-compose.yml: parameterize SERVERS_DIR via env var
This commit is contained in:
MrFastwind
2026-07-06 17:35:23 +02:00
parent cc7cb0bc56
commit d94593743f
7 changed files with 167 additions and 12 deletions

52
.goreleaser.yaml Normal file
View File

@@ -0,0 +1,52 @@
version: 2
project_name: arma3-web-server
before:
hooks:
- cd frontend && npm ci && npm run build
builds:
- id: server
dir: backend
main: ./cmd/server/
binary: arma3-web-server
goos:
- linux
- windows
goarch:
- amd64
env:
- CGO_ENABLED=0
archives:
- id: default
name_template: >-
{{ .ProjectName }}_{{ .Tag }}_{{ .Os }}_{{ .Arch }}
files:
- frontend/dist/**/*
dockers:
- ids:
- server
goos: linux
goarch: amd64
image_templates:
- "{{ .Env.REGISTRY }}/{{ .Env.REPOSITORY_OWNER }}/arma3-web-server:{{ .Tag }}"
- "{{ .Env.REGISTRY }}/{{ .Env.REPOSITORY_OWNER }}/arma3-web-server:latest"
dockerfile: Dockerfile.goreleaser
extra_files:
- frontend/dist
checksum:
name_template: "checksums.txt"
snapshot:
name_template: "{{ incpatch .Version }}-next"
release:
gitea:
owner: "{{ .Env.REPOSITORY_OWNER }}"
name: arma3-web-server
draft: false
prerelease: auto