mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2024-11-26 14:20:24 +00:00
[chore] Create modernc sqlite builds alongside default wasm; add openbsd builds (#3413)
This commit is contained in:
parent
a69142a403
commit
a504d8a105
2 changed files with 219 additions and 8 deletions
14
.drone.yml
14
.drone.yml
|
@ -94,7 +94,7 @@ steps:
|
||||||
- pull_request
|
- pull_request
|
||||||
|
|
||||||
- name: snapshot
|
- name: snapshot
|
||||||
image: superseriousbusiness/gotosocial-drone-build:0.6.0 # https://github.com/superseriousbusiness/gotosocial-drone-build
|
image: superseriousbusiness/gotosocial-drone-build:0.6.1 # https://github.com/superseriousbusiness/gotosocial-drone-build
|
||||||
volumes:
|
volumes:
|
||||||
- name: go-build-cache
|
- name: go-build-cache
|
||||||
path: /root/.cache/go-build
|
path: /root/.cache/go-build
|
||||||
|
@ -123,6 +123,12 @@ steps:
|
||||||
- docker push superseriousbusiness/gotosocial:snapshot-amd64
|
- docker push superseriousbusiness/gotosocial:snapshot-amd64
|
||||||
- docker manifest create superseriousbusiness/gotosocial:snapshot superseriousbusiness/gotosocial:snapshot-armv6 superseriousbusiness/gotosocial:snapshot-armv7 superseriousbusiness/gotosocial:snapshot-amd64 superseriousbusiness/gotosocial:snapshot-arm64v8
|
- docker manifest create superseriousbusiness/gotosocial:snapshot superseriousbusiness/gotosocial:snapshot-armv6 superseriousbusiness/gotosocial:snapshot-armv7 superseriousbusiness/gotosocial:snapshot-amd64 superseriousbusiness/gotosocial:snapshot-arm64v8
|
||||||
- docker manifest push superseriousbusiness/gotosocial:snapshot
|
- docker manifest push superseriousbusiness/gotosocial:snapshot
|
||||||
|
- docker push superseriousbusiness/gotosocial:snapshot-armv6-moderncsqlite
|
||||||
|
- docker push superseriousbusiness/gotosocial:snapshot-armv7-moderncsqlite
|
||||||
|
- docker push superseriousbusiness/gotosocial:snapshot-arm64v8-moderncsqlite
|
||||||
|
- docker push superseriousbusiness/gotosocial:snapshot-amd64-moderncsqlite
|
||||||
|
- docker manifest create superseriousbusiness/gotosocial:snapshot-moderncsqlite superseriousbusiness/gotosocial:snapshot-armv6-moderncsqlite superseriousbusiness/gotosocial:snapshot-armv7-moderncsqlite superseriousbusiness/gotosocial:snapshot-amd64-moderncsqlite superseriousbusiness/gotosocial:snapshot-arm64v8-moderncsqlite
|
||||||
|
- docker manifest push superseriousbusiness/gotosocial:snapshot-moderncsqlite
|
||||||
|
|
||||||
# Publish binary .tar.gz snapshots to S3.
|
# Publish binary .tar.gz snapshots to S3.
|
||||||
- /go/snapshot_publish.sh
|
- /go/snapshot_publish.sh
|
||||||
|
@ -135,7 +141,7 @@ steps:
|
||||||
- main
|
- main
|
||||||
|
|
||||||
- name: release
|
- name: release
|
||||||
image: superseriousbusiness/gotosocial-drone-build:0.6.0 # https://github.com/superseriousbusiness/gotosocial-drone-build
|
image: superseriousbusiness/gotosocial-drone-build:0.6.1 # https://github.com/superseriousbusiness/gotosocial-drone-build
|
||||||
volumes:
|
volumes:
|
||||||
- name: go-build-cache
|
- name: go-build-cache
|
||||||
path: /root/.cache/go-build
|
path: /root/.cache/go-build
|
||||||
|
@ -194,7 +200,7 @@ clone:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: mirror
|
- name: mirror
|
||||||
image: superseriousbusiness/gotosocial-drone-build:0.6.0
|
image: superseriousbusiness/gotosocial-drone-build:0.6.1
|
||||||
environment:
|
environment:
|
||||||
ORIGIN_REPO: https://github.com/superseriousbusiness/gotosocial
|
ORIGIN_REPO: https://github.com/superseriousbusiness/gotosocial
|
||||||
TARGET_REPO: https://codeberg.org/superseriousbusiness/gotosocial
|
TARGET_REPO: https://codeberg.org/superseriousbusiness/gotosocial
|
||||||
|
@ -207,6 +213,6 @@ steps:
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: signature
|
kind: signature
|
||||||
hmac: f4008d87e4e5b67251eb89f255c1224e6ab5818828cab24fc319b8f829176058
|
hmac: 475acfffed0cc2d45304f253cc8e57c6c19b8437571ec7e343a2ef85a7a270b8
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|
213
.goreleaser.yml
213
.goreleaser.yml
|
@ -12,7 +12,9 @@ before:
|
||||||
- yarn --cwd ./web/source build
|
- yarn --cwd ./web/source build
|
||||||
builds:
|
builds:
|
||||||
# https://goreleaser.com/customization/build/
|
# https://goreleaser.com/customization/build/
|
||||||
|
# DEFAULT WASM SQLITE BINARY BUILDS
|
||||||
-
|
-
|
||||||
|
id: gotosocial
|
||||||
main: ./cmd/gotosocial
|
main: ./cmd/gotosocial
|
||||||
binary: gotosocial
|
binary: gotosocial
|
||||||
ldflags:
|
ldflags:
|
||||||
|
@ -29,13 +31,12 @@ builds:
|
||||||
- timetzdata
|
- timetzdata
|
||||||
- >-
|
- >-
|
||||||
{{ if and (index .Env "DEBUG") (.Env.DEBUG) }}debugenv{{ end }}
|
{{ if and (index .Env "DEBUG") (.Env.DEBUG) }}debugenv{{ end }}
|
||||||
- >-
|
|
||||||
{{ if and (index .Env "MODERNCSQLITE3") (.Env.MODERNCSQLITE3) }}moderncsqlite3{{ end }}
|
|
||||||
env:
|
env:
|
||||||
- CGO_ENABLED=0
|
- CGO_ENABLED=0
|
||||||
goos:
|
goos:
|
||||||
- linux
|
- linux
|
||||||
- freebsd
|
- freebsd
|
||||||
|
- openbsd
|
||||||
goarch:
|
goarch:
|
||||||
- 386
|
- 386
|
||||||
- amd64
|
- amd64
|
||||||
|
@ -45,20 +46,79 @@ builds:
|
||||||
- 6
|
- 6
|
||||||
- 7
|
- 7
|
||||||
ignore:
|
ignore:
|
||||||
# build freebsd only for amd64
|
# build freebsd + openbsd only for amd64
|
||||||
- goos: freebsd
|
- goos: freebsd
|
||||||
goarch: arm64
|
goarch: arm64
|
||||||
- goos: freebsd
|
- goos: freebsd
|
||||||
goarch: arm
|
goarch: arm
|
||||||
- goos: freebsd
|
- goos: freebsd
|
||||||
goarch: 386
|
goarch: 386
|
||||||
|
- goos: openbsd
|
||||||
|
goarch: arm64
|
||||||
|
- goos: openbsd
|
||||||
|
goarch: arm
|
||||||
|
- goos: openbsd
|
||||||
|
goarch: 386
|
||||||
|
mod_timestamp: "{{ .CommitTimestamp }}"
|
||||||
|
# MODERNC SQLITE BINARY BUILDS
|
||||||
|
-
|
||||||
|
id: gotosocial_moderncsqlite
|
||||||
|
main: ./cmd/gotosocial
|
||||||
|
binary: gotosocial
|
||||||
|
ldflags:
|
||||||
|
- -s
|
||||||
|
- -w
|
||||||
|
- -extldflags
|
||||||
|
- -static
|
||||||
|
- -X main.Version={{.Version}}
|
||||||
|
tags:
|
||||||
|
- netgo
|
||||||
|
- osusergo
|
||||||
|
- static_build
|
||||||
|
- kvformat
|
||||||
|
- timetzdata
|
||||||
|
- >-
|
||||||
|
{{ if and (index .Env "DEBUG") (.Env.DEBUG) }}debugenv{{ end }}
|
||||||
|
- moderncsqlite3
|
||||||
|
env:
|
||||||
|
- CGO_ENABLED=0
|
||||||
|
goos:
|
||||||
|
- linux
|
||||||
|
- freebsd
|
||||||
|
- openbsd
|
||||||
|
goarch:
|
||||||
|
- 386
|
||||||
|
- amd64
|
||||||
|
- arm
|
||||||
|
- arm64
|
||||||
|
goarm:
|
||||||
|
- 6
|
||||||
|
- 7
|
||||||
|
ignore:
|
||||||
|
# build freebsd + openbsd only for amd64
|
||||||
|
- goos: freebsd
|
||||||
|
goarch: arm64
|
||||||
|
- goos: freebsd
|
||||||
|
goarch: arm
|
||||||
|
- goos: freebsd
|
||||||
|
goarch: 386
|
||||||
|
- goos: openbsd
|
||||||
|
goarch: arm64
|
||||||
|
- goos: openbsd
|
||||||
|
goarch: arm
|
||||||
|
- goos: openbsd
|
||||||
|
goarch: 386
|
||||||
mod_timestamp: "{{ .CommitTimestamp }}"
|
mod_timestamp: "{{ .CommitTimestamp }}"
|
||||||
dockers:
|
dockers:
|
||||||
# https://goreleaser.com/customization/docker/
|
# https://goreleaser.com/customization/docker/
|
||||||
|
# DEFAULT WASM SQLITE DOCKER BUILDS
|
||||||
-
|
-
|
||||||
use: buildx
|
use: buildx
|
||||||
goos: linux
|
goos: linux
|
||||||
goarch: amd64
|
goarch: amd64
|
||||||
|
id: amd64
|
||||||
|
ids:
|
||||||
|
- gotosocial
|
||||||
image_templates:
|
image_templates:
|
||||||
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-amd64"
|
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-amd64"
|
||||||
- "superseriousbusiness/{{ .ProjectName }}:latest-amd64"
|
- "superseriousbusiness/{{ .ProjectName }}:latest-amd64"
|
||||||
|
@ -79,6 +139,9 @@ dockers:
|
||||||
use: buildx
|
use: buildx
|
||||||
goos: linux
|
goos: linux
|
||||||
goarch: arm64
|
goarch: arm64
|
||||||
|
id: arm64v8
|
||||||
|
ids:
|
||||||
|
- gotosocial
|
||||||
image_templates:
|
image_templates:
|
||||||
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-arm64v8"
|
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-arm64v8"
|
||||||
- "superseriousbusiness/{{ .ProjectName }}:latest-arm64v8"
|
- "superseriousbusiness/{{ .ProjectName }}:latest-arm64v8"
|
||||||
|
@ -100,6 +163,9 @@ dockers:
|
||||||
goos: linux
|
goos: linux
|
||||||
goarch: arm
|
goarch: arm
|
||||||
goarm: 6
|
goarm: 6
|
||||||
|
id: armv6
|
||||||
|
ids:
|
||||||
|
- gotosocial
|
||||||
image_templates:
|
image_templates:
|
||||||
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv6"
|
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv6"
|
||||||
- "superseriousbusiness/{{ .ProjectName }}:latest-armv6"
|
- "superseriousbusiness/{{ .ProjectName }}:latest-armv6"
|
||||||
|
@ -121,6 +187,9 @@ dockers:
|
||||||
goos: linux
|
goos: linux
|
||||||
goarch: arm
|
goarch: arm
|
||||||
goarm: 7
|
goarm: 7
|
||||||
|
id: armv7
|
||||||
|
ids:
|
||||||
|
- gotosocial
|
||||||
image_templates:
|
image_templates:
|
||||||
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv7"
|
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv7"
|
||||||
- "superseriousbusiness/{{ .ProjectName }}:latest-armv7"
|
- "superseriousbusiness/{{ .ProjectName }}:latest-armv7"
|
||||||
|
@ -137,7 +206,103 @@ dockers:
|
||||||
- go.sum
|
- go.sum
|
||||||
- cmd
|
- cmd
|
||||||
- internal
|
- internal
|
||||||
|
# MODERNC SQLITE DOCKER BUILDS
|
||||||
|
-
|
||||||
|
use: buildx
|
||||||
|
goos: linux
|
||||||
|
goarch: amd64
|
||||||
|
id: amd64-moderncsqlite
|
||||||
|
ids:
|
||||||
|
- gotosocial_moderncsqlite
|
||||||
|
image_templates:
|
||||||
|
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-amd64-moderncsqlite"
|
||||||
|
- "superseriousbusiness/{{ .ProjectName }}:latest-amd64-moderncsqlite"
|
||||||
|
- "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot-amd64-moderncsqlite{{ end }}"
|
||||||
|
build_flag_templates:
|
||||||
|
- "--platform=linux/amd64"
|
||||||
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
||||||
|
- "--label=org.opencontainers.image.title={{.ProjectName}}"
|
||||||
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
||||||
|
- "--label=org.opencontainers.image.version={{.Version}}"
|
||||||
|
extra_files:
|
||||||
|
- web
|
||||||
|
- go.mod
|
||||||
|
- go.sum
|
||||||
|
- cmd
|
||||||
|
- internal
|
||||||
|
-
|
||||||
|
use: buildx
|
||||||
|
goos: linux
|
||||||
|
goarch: arm64
|
||||||
|
id: arm64v8-moderncsqlite
|
||||||
|
ids:
|
||||||
|
- gotosocial_moderncsqlite
|
||||||
|
image_templates:
|
||||||
|
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-arm64v8-moderncsqlite"
|
||||||
|
- "superseriousbusiness/{{ .ProjectName }}:latest-arm64v8-moderncsqlite"
|
||||||
|
- "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot-arm64v8-moderncsqlite{{ end }}"
|
||||||
|
build_flag_templates:
|
||||||
|
- "--platform=linux/arm64/v8"
|
||||||
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
||||||
|
- "--label=org.opencontainers.image.title={{.ProjectName}}"
|
||||||
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
||||||
|
- "--label=org.opencontainers.image.version={{.Version}}"
|
||||||
|
extra_files:
|
||||||
|
- web
|
||||||
|
- go.mod
|
||||||
|
- go.sum
|
||||||
|
- cmd
|
||||||
|
- internal
|
||||||
|
-
|
||||||
|
use: buildx
|
||||||
|
goos: linux
|
||||||
|
goarch: arm
|
||||||
|
goarm: 6
|
||||||
|
id: armv6-moderncsqlite
|
||||||
|
ids:
|
||||||
|
- gotosocial_moderncsqlite
|
||||||
|
image_templates:
|
||||||
|
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv6-moderncsqlite"
|
||||||
|
- "superseriousbusiness/{{ .ProjectName }}:latest-armv6-moderncsqlite"
|
||||||
|
- "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot-armv6-moderncsqlite{{ end }}"
|
||||||
|
build_flag_templates:
|
||||||
|
- "--platform=linux/arm/v6"
|
||||||
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
||||||
|
- "--label=org.opencontainers.image.title={{.ProjectName}}"
|
||||||
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
||||||
|
- "--label=org.opencontainers.image.version={{.Version}}"
|
||||||
|
extra_files:
|
||||||
|
- web
|
||||||
|
- go.mod
|
||||||
|
- go.sum
|
||||||
|
- cmd
|
||||||
|
- internal
|
||||||
|
-
|
||||||
|
use: buildx
|
||||||
|
goos: linux
|
||||||
|
goarch: arm
|
||||||
|
goarm: 7
|
||||||
|
id: armv7-moderncsqlite
|
||||||
|
ids:
|
||||||
|
- gotosocial_moderncsqlite
|
||||||
|
image_templates:
|
||||||
|
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv7-moderncsqlite"
|
||||||
|
- "superseriousbusiness/{{ .ProjectName }}:latest-armv7-moderncsqlite"
|
||||||
|
- "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot-armv7-moderncsqlite{{ end }}"
|
||||||
|
build_flag_templates:
|
||||||
|
- "--platform=linux/arm/v7"
|
||||||
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
||||||
|
- "--label=org.opencontainers.image.title={{.ProjectName}}"
|
||||||
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
||||||
|
- "--label=org.opencontainers.image.version={{.Version}}"
|
||||||
|
extra_files:
|
||||||
|
- web
|
||||||
|
- go.mod
|
||||||
|
- go.sum
|
||||||
|
- cmd
|
||||||
|
- internal
|
||||||
docker_manifests:
|
docker_manifests:
|
||||||
|
# DEFAULT WASM SQLITE BUILDS
|
||||||
- name_template: superseriousbusiness/{{ .ProjectName }}:{{ .Version }}
|
- name_template: superseriousbusiness/{{ .ProjectName }}:{{ .Version }}
|
||||||
image_templates:
|
image_templates:
|
||||||
- superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-amd64
|
- superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-amd64
|
||||||
|
@ -156,10 +321,32 @@ docker_manifests:
|
||||||
- superseriousbusiness/{{ .ProjectName }}:snapshot-arm64v8
|
- superseriousbusiness/{{ .ProjectName }}:snapshot-arm64v8
|
||||||
- superseriousbusiness/{{ .ProjectName }}:snapshot-armv6
|
- superseriousbusiness/{{ .ProjectName }}:snapshot-armv6
|
||||||
- superseriousbusiness/{{ .ProjectName }}:snapshot-armv7
|
- superseriousbusiness/{{ .ProjectName }}:snapshot-armv7
|
||||||
|
# MODERNC SQLITE BUILDS
|
||||||
|
- name_template: superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-moderncsqlite
|
||||||
|
image_templates:
|
||||||
|
- superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-amd64-moderncsqlite
|
||||||
|
- superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-arm64v8-moderncsqlite
|
||||||
|
- superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv6-moderncsqlite
|
||||||
|
- superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv7-moderncsqlite
|
||||||
|
- name_template: superseriousbusiness/{{ .ProjectName }}:latest-moderncsqlite
|
||||||
|
image_templates:
|
||||||
|
- superseriousbusiness/{{ .ProjectName }}:latest-amd64-moderncsqlite
|
||||||
|
- superseriousbusiness/{{ .ProjectName }}:latest-arm64v8-moderncsqlite
|
||||||
|
- superseriousbusiness/{{ .ProjectName }}:latest-armv6-moderncsqlite
|
||||||
|
- superseriousbusiness/{{ .ProjectName }}:latest-armv7-moderncsqlite
|
||||||
|
- name_template: "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot-moderncsqlite{{ end }}"
|
||||||
|
image_templates:
|
||||||
|
- superseriousbusiness/{{ .ProjectName }}:snapshot-amd64-moderncsqlite
|
||||||
|
- superseriousbusiness/{{ .ProjectName }}:snapshot-arm64v8-moderncsqlite
|
||||||
|
- superseriousbusiness/{{ .ProjectName }}:snapshot-armv6-moderncsqlite
|
||||||
|
- superseriousbusiness/{{ .ProjectName }}:snapshot-armv7-moderncsqlite
|
||||||
archives:
|
archives:
|
||||||
# https://goreleaser.com/customization/archive/
|
# https://goreleaser.com/customization/archive/
|
||||||
|
# DEFAULT WASM SQLITE BUILD
|
||||||
-
|
-
|
||||||
id: binary-release
|
id: gotosocial
|
||||||
|
builds:
|
||||||
|
- gotosocial
|
||||||
files:
|
files:
|
||||||
# standard release files
|
# standard release files
|
||||||
- LICENSE
|
- LICENSE
|
||||||
|
@ -171,6 +358,24 @@ archives:
|
||||||
# example config files
|
# example config files
|
||||||
- example/config.yaml
|
- example/config.yaml
|
||||||
- example/gotosocial.service
|
- example/gotosocial.service
|
||||||
|
name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ with .Arm }}v{{ . }}{{ end }}{{ with .Mips }}_{{ . }}{{ end }}{{ if not (eq .Amd64 \"v1\") }}{{ .Amd64 }}{{ end }}"
|
||||||
|
# MODERNC SQLITE BUILD
|
||||||
|
-
|
||||||
|
id: gotosocial_moderncsqlite
|
||||||
|
builds:
|
||||||
|
- gotosocial_moderncsqlite
|
||||||
|
files:
|
||||||
|
# standard release files
|
||||||
|
- LICENSE
|
||||||
|
- README.md
|
||||||
|
- CHANGELOG*
|
||||||
|
# web stuff minus source
|
||||||
|
- web/assets
|
||||||
|
- web/template
|
||||||
|
# example config files
|
||||||
|
- example/config.yaml
|
||||||
|
- example/gotosocial.service
|
||||||
|
name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ with .Arm }}v{{ . }}{{ end }}{{ with .Mips }}_{{ . }}{{ end }}{{ if not (eq .Amd64 \"v1\") }}{{ .Amd64 }}{{ end }}_moderncsqlite"
|
||||||
-
|
-
|
||||||
id: web-assets
|
id: web-assets
|
||||||
files:
|
files:
|
||||||
|
|
Loading…
Reference in a new issue