forked from NYANDEV/forgejo
cf5e3b046c
(cherry picked from commit c2a7aaeee82293793b2740251dc5fd27dfb32ddb) (cherry picked from commit 4277bdb7414885ef87a4c72fa73c088caa7cc5f1) (cherry picked from commit adebc446711af1342671a75570edc69c73a480e9) (cherry picked from commit 9a7332c2be588884056e34aa301f37967f33c0f2)
107 lines
2.9 KiB
YAML
107 lines
2.9 KiB
YAML
platform: linux/amd64
|
|
|
|
when:
|
|
event: tag
|
|
tag: v*
|
|
|
|
variables:
|
|
- &node_image 'node:18'
|
|
- &golang_image 'golang:1.20'
|
|
- &alpine_image 'alpine:3.17'
|
|
- &gpg_sign_image 'plugins/gpgsign:1'
|
|
- &xgo_image 'techknowlogick/xgo:go-1.19.x'
|
|
- &gpg_sign_image 'plugins/gpgsign:1'
|
|
- &goproxy_override ''
|
|
- &goproxy_setup |-
|
|
if [ -n "$${GOPROXY_OVERRIDE:-}" ]; then
|
|
export GOPROXY="$${GOPROXY_OVERRIDE}";
|
|
echo "Using goproxy from goproxy_override \"$${GOPROXY}\"";
|
|
elif [ -n "$${GOPROXY_DEFAULT:-}" ]; then
|
|
export GOPROXY="$${GOPROXY_DEFAULT}";
|
|
echo "Using goproxy from goproxy_default (secret) not displaying";
|
|
else
|
|
export GOPROXY="https://proxy.golang.org,direct";
|
|
echo "No goproxy overrides or defaults given, using \"$${GOPROXY}\"";
|
|
fi
|
|
|
|
workspace:
|
|
base: /source
|
|
path: /
|
|
|
|
pipeline:
|
|
fetch-tags:
|
|
image: *golang_image
|
|
pull: true
|
|
group: deps
|
|
commands:
|
|
- git config --add safe.directory '*'
|
|
- git fetch --tags --force
|
|
|
|
deps-frontend:
|
|
image: *node_image
|
|
pull: true
|
|
group: deps
|
|
commands:
|
|
- make deps-frontend
|
|
|
|
deps-backend:
|
|
image: *golang_image
|
|
pull: true
|
|
group: deps
|
|
environment:
|
|
GOPROXY_OVERRIDE: *goproxy_override
|
|
secrets:
|
|
- goproxy_default
|
|
commands:
|
|
- *goproxy_setup
|
|
- make deps-backend
|
|
|
|
static:
|
|
image: *xgo_image
|
|
pull: true
|
|
commands:
|
|
- *goproxy_setup
|
|
- curl -sL https://deb.nodesource.com/setup_16.x | bash - && apt-get -qqy install nodejs
|
|
- export PATH=$PATH:$GOPATH/bin
|
|
- make CI=true LINUX_ARCHS=linux/amd64,linux/arm64,linux/arm-6 release
|
|
environment:
|
|
TAGS: 'bindata sqlite sqlite_unlock_notify'
|
|
DEBIAN_FRONTEND: 'noninteractive'
|
|
GOPROXY_OVERRIDE: *goproxy_override
|
|
secrets:
|
|
- goproxy_default
|
|
|
|
#
|
|
# See https://codeberg.org/forgejo/forgejo/issues/230 for a discussion on this
|
|
# compilation stage. The goal is just to verify the build does not break, not that
|
|
# the binary produced actually works.
|
|
#
|
|
freebsd:
|
|
image: *xgo_image
|
|
group: build
|
|
commands:
|
|
- *goproxy_setup
|
|
- export PATH=$PATH:$GOPATH/bin
|
|
- make CI=false release-freebsd
|
|
environment:
|
|
TAGS: 'bindata sqlite sqlite_unlock_notify'
|
|
GOPROXY_OVERRIDE: *goproxy_override
|
|
secrets:
|
|
- goproxy_default
|
|
|
|
verifyruns:
|
|
image: *golang_image
|
|
commands:
|
|
- ./dist/release/forgejo-*-amd64 --version | grep 'built with'
|
|
- apt-get update
|
|
- apt-get install -y qemu-user-static
|
|
- /usr/bin/qemu-aarch64-static ./dist/release/forgejo-*-arm64 --version | grep 'built with'
|
|
- /usr/bin/qemu-arm-static ./dist/release/forgejo-*-arm-6 --version | grep 'built with'
|
|
|
|
push-integration:
|
|
image: *alpine_image
|
|
commands:
|
|
- PUSH_USER=$CI_REPO_OWNER releases/binaries-pull-push.sh push
|
|
secrets:
|
|
- releaseteamtoken
|
|
- releaseteamuser
|