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:
52
.goreleaser.yaml
Normal file
52
.goreleaser.yaml
Normal 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
|
||||
Reference in New Issue
Block a user