diff options
| author | 2024-10-10 18:15:02 +0200 | |
|---|---|---|
| committer | 2024-10-10 16:15:02 +0000 | |
| commit | a504d8a105d3924ac6e10074630561f18ed60dd2 (patch) | |
| tree | cffe026270e44ddc65943c3a1e23dab74196764c | |
| parent | [bugfix/frontend] Don't show replies to hidden parents; return 404 if no "mai... (diff) | |
| download | gotosocial-a504d8a105d3924ac6e10074630561f18ed60dd2.tar.xz | |
[chore] Create modernc sqlite builds alongside default wasm; add openbsd builds (#3413)
| -rw-r--r-- | .drone.yml | 14 | ||||
| -rw-r--r-- | .goreleaser.yml | 211 | 
2 files changed, 218 insertions, 7 deletions
| diff --git a/.drone.yml b/.drone.yml index 1a5239a13..5ae306b69 100644 --- a/.drone.yml +++ b/.drone.yml @@ -94,7 +94,7 @@ steps:            - pull_request    - 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:        - name: go-build-cache          path: /root/.cache/go-build @@ -123,6 +123,12 @@ steps:        - 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 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.        - /go/snapshot_publish.sh @@ -135,7 +141,7 @@ steps:            - main    - 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:        - name: go-build-cache          path: /root/.cache/go-build @@ -194,7 +200,7 @@ clone:  steps:    - name: mirror -    image: superseriousbusiness/gotosocial-drone-build:0.6.0 +    image: superseriousbusiness/gotosocial-drone-build:0.6.1      environment:        ORIGIN_REPO: https://github.com/superseriousbusiness/gotosocial        TARGET_REPO: https://codeberg.org/superseriousbusiness/gotosocial @@ -207,6 +213,6 @@ steps:  ---  kind: signature -hmac: f4008d87e4e5b67251eb89f255c1224e6ab5818828cab24fc319b8f829176058 +hmac: 475acfffed0cc2d45304f253cc8e57c6c19b8437571ec7e343a2ef85a7a270b8  ... diff --git a/.goreleaser.yml b/.goreleaser.yml index 6a7fccfd0..c43e8e085 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -12,7 +12,9 @@ before:    - yarn --cwd ./web/source build  builds:    # https://goreleaser.com/customization/build/ +  # DEFAULT WASM SQLITE BINARY BUILDS    - +    id: gotosocial      main: ./cmd/gotosocial      binary: gotosocial      ldflags: @@ -29,13 +31,61 @@ builds:        - timetzdata        - >-          {{ if and (index .Env "DEBUG") (.Env.DEBUG) }}debugenv{{ end }} +    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 }}" +  # 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 "MODERNCSQLITE3") (.Env.MODERNCSQLITE3) }}moderncsqlite3{{ end }} +        {{ if and (index .Env "DEBUG") (.Env.DEBUG) }}debugenv{{ end }} +      - moderncsqlite3      env:        - CGO_ENABLED=0      goos:        - linux        - freebsd +      - openbsd      goarch:        - 386        - amd64 @@ -45,20 +95,30 @@ builds:        - 6        - 7      ignore: -      # build freebsd only for amd64 +      # 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 }}"  dockers:    # https://goreleaser.com/customization/docker/ +  # DEFAULT WASM SQLITE DOCKER BUILDS    -      use: buildx      goos: linux      goarch: amd64 +    id: amd64 +    ids: +    - gotosocial      image_templates:      - "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-amd64"      - "superseriousbusiness/{{ .ProjectName }}:latest-amd64" @@ -79,6 +139,9 @@ dockers:      use: buildx      goos: linux      goarch: arm64 +    id: arm64v8 +    ids: +    - gotosocial      image_templates:      - "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-arm64v8"      - "superseriousbusiness/{{ .ProjectName }}:latest-arm64v8" @@ -100,6 +163,9 @@ dockers:      goos: linux      goarch: arm      goarm: 6 +    id: armv6 +    ids: +    - gotosocial      image_templates:      - "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv6"      - "superseriousbusiness/{{ .ProjectName }}:latest-armv6" @@ -121,6 +187,9 @@ dockers:      goos: linux      goarch: arm      goarm: 7 +    id: armv7 +    ids: +    - gotosocial      image_templates:      - "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv7"      - "superseriousbusiness/{{ .ProjectName }}:latest-armv7" @@ -137,7 +206,103 @@ dockers:      - go.sum      - cmd      - 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: +  # DEFAULT WASM SQLITE BUILDS    - name_template: superseriousbusiness/{{ .ProjectName }}:{{ .Version }}      image_templates:      - superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-amd64 @@ -156,10 +321,49 @@ docker_manifests:      - superseriousbusiness/{{ .ProjectName }}:snapshot-arm64v8      - superseriousbusiness/{{ .ProjectName }}:snapshot-armv6      - 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:    # https://goreleaser.com/customization/archive/ +  # DEFAULT WASM SQLITE BUILD +  - +    id: gotosocial +    builds: +      - gotosocial +    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 }}" +  # MODERNC SQLITE BUILD    - -    id: binary-release +    id: gotosocial_moderncsqlite +    builds: +      - gotosocial_moderncsqlite      files:      # standard release files      - LICENSE @@ -171,6 +375,7 @@ archives:      # 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      files: | 
