Replace the Woodpecker pipelines with Actions workflows under `.github/workflows`, matching the conventions the other migrated repositories now use (butterrobot, smtp2shoutrrr, terraria-companion, dharma). ## Workflows - Jobs run on `ubuntu-latest`, answered with the catthehacker act image — no `ci-base` container. - Short `uses:` resolves against github.com, so every action carries its real name: `goreleaser/goreleaser-action`, `oven-sh/setup-bun`, `docker/setup-qemu-action`, `docker/setup-buildx-action`. - The act image carries none of the tooling `ci-base` provided, so each job installs what it calls: `make` everywhere, `build-essential` for the CGO test job, `upx-ucl` for goreleaser's `upx` block, bun for the webapp build, goreleaser itself for `make build`. - `e2e` gets a Docker-in-Docker service so testcontainers can resolve its mapped ports from inside the job container; Playwright installs with `--with-deps` now that the job has sudo. ## Supporting changes - `Makefile` drops unused variables and adopts a self-documenting `help` target. - `.goreleaser.yml` keeps `dockers_v2` for the multi-platform image. - `Containerfile` moves to Alpine 3.23; nfpm description fixed. - e2e: shared Docker network so link creation reaches the test web server, `mattn/go-sqlite3` added to the e2e module, `all:dist` embed directive so dot-files ship in the webapp bundle. Reviewed-on: #1
126 lines
2.5 KiB
YAML
126 lines
2.5 KiB
YAML
version: 2
|
|
|
|
gitea_urls:
|
|
api: https://git.nakama.town/api/v1
|
|
download: https://git.nakama.town
|
|
|
|
before:
|
|
hooks:
|
|
- go mod tidy
|
|
- make build-webapp
|
|
|
|
git:
|
|
ignore_tags:
|
|
- "{{ if not .IsNightly }}*-rc*{{ end }}"
|
|
|
|
builds:
|
|
- binary: hako
|
|
main: ./cmd/hako
|
|
env:
|
|
- CGO_ENABLED=0
|
|
- GIN_MODE=release
|
|
tags:
|
|
- netgo
|
|
- osusergo
|
|
ldflags:
|
|
- -s -w
|
|
goos:
|
|
- linux
|
|
- windows
|
|
- darwin
|
|
goarch:
|
|
- amd64
|
|
- arm
|
|
- arm64
|
|
goarm:
|
|
- "7"
|
|
ignore:
|
|
- goos: darwin
|
|
goarch: arm
|
|
- goos: windows
|
|
goarch: arm
|
|
- goos: windows
|
|
goarch: arm64
|
|
|
|
archives:
|
|
- id: hako
|
|
name_template: >-
|
|
{{ .ProjectName }}_
|
|
{{- if eq .Os "darwin" }}Darwin{{- else if eq .Os "linux" }}Linux{{- else if eq .Os "windows" }}Windows{{- else }}{{ .Os }}{{ end }}_
|
|
{{- if eq .Arch "amd64" }}x86_64{{- else if eq .Arch "arm64" }}aarch64{{- else }}{{ .Arch }}{{ end }}_{{ .Version }}
|
|
format_overrides:
|
|
- goos: windows
|
|
formats: ["zip"]
|
|
|
|
dockers_v2:
|
|
- images:
|
|
- "git.nakama.town/fmartingr/hako"
|
|
tags:
|
|
- "{{ .Version }}"
|
|
- latest
|
|
dockerfile: Containerfile
|
|
platforms:
|
|
- linux/amd64
|
|
- linux/arm64
|
|
- linux/arm/v7
|
|
|
|
nfpms:
|
|
- maintainer: Felipe Martin <me@fmartingr.com>
|
|
description: Self-hosted link archival service
|
|
homepage: https://git.nakama.town/fmartingr/hako
|
|
license: AGPL-3.0
|
|
formats:
|
|
- deb
|
|
- rpm
|
|
- apk
|
|
|
|
upx:
|
|
- enabled: true
|
|
ids:
|
|
- hako
|
|
goos: [linux, darwin]
|
|
goarch: [amd64, arm, arm64]
|
|
goarm: ["7"]
|
|
|
|
checksum:
|
|
name_template: "checksums.txt"
|
|
|
|
snapshot:
|
|
version_template: "{{ incpatch .Version }}-next"
|
|
|
|
changelog:
|
|
sort: asc
|
|
groups:
|
|
- title: Features
|
|
regexp: '^.*?feat(\([[:word:]]+\))??!?:.+$'
|
|
order: 0
|
|
- title: "Fixes"
|
|
regexp: '^.*?fix(\([[:word:]]+\))??!?:.+$'
|
|
order: 1
|
|
- title: "Performance"
|
|
regexp: '^.*?perf(\([[:word:]]+\))??!?:.+$'
|
|
order: 2
|
|
- title: API
|
|
regexp: '^.*?api(\([[:word:]]+\))??!?:.+$'
|
|
order: 3
|
|
- title: Documentation
|
|
regexp: '^.*?docs(\([[:word:]]+\))??!?:.+$'
|
|
order: 4
|
|
- title: "Tests"
|
|
regexp: '^.*?test(\([[:word:]]+\))??!?:.+$'
|
|
order: 5
|
|
- title: CI and Delivery
|
|
regexp: '^.*?ci(\([[:word:]]+\))??!?:.+$'
|
|
order: 6
|
|
- title: Others
|
|
order: 999
|
|
filters:
|
|
exclude:
|
|
- "^deps:"
|
|
- "^chore\\(deps\\):"
|
|
|
|
release:
|
|
gitea:
|
|
owner: fmartingr
|
|
name: hako
|
|
prerelease: auto
|