112 lines
3.4 KiB
YAML
112 lines
3.4 KiB
YAML
|
platform: linux/amd64
|
||
|
|
||
|
when:
|
||
|
event: tag
|
||
|
|
||
|
depends_on:
|
||
|
- testing-amd64
|
||
|
|
||
|
variables:
|
||
|
- &git_image 'docker:git'
|
||
|
- &node_image 'node:18'
|
||
|
- &golang_image 'golang:1.19'
|
||
|
- &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: *git_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
|
||
|
|
||
|
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'
|
||
|
|
||
|
gpg-sign:
|
||
|
image: *gpg_sign_image
|
||
|
pull: true
|
||
|
settings:
|
||
|
detach_sign: true
|
||
|
excludes:
|
||
|
- "dist/release/*.sha256"
|
||
|
files:
|
||
|
- "dist/release/*"
|
||
|
key:
|
||
|
from_secret: releaseteamgpg
|
||
|
|
||
|
release:
|
||
|
image: *golang_image
|
||
|
commands:
|
||
|
- curl -sL https://dl.gitea.io/tea/0.9.0/tea-0.9.0-linux-amd64 > /bin/tea && chmod +x /bin/tea
|
||
|
- REMOTE=$(echo $CI_REPO_LINK | sed -e 's|.*://||' -e 's|/.*||')
|
||
|
- GITEA_SERVER_URL=$CI_REPO_LINK GITEA_SERVER_TOKEN=$RELEASETEAMTOKEN tea login add --name $RELEASETEAMUSER --url $REMOTE
|
||
|
- ASSETS=$(ls dist/release/* | sed -e 's/^/-a /')
|
||
|
- echo "$${CI_COMMIT_TAG##v}" | grep -qi '\-rc' && export RELEASETYPE="--prerelease" && echo "Uploading as Pre-Release"
|
||
|
- echo "$${CI_COMMIT_TAG##v}" | grep -qi '\-test' && export RELEASETYPE="--draft" && echo "Uploading as Draft"
|
||
|
- test $${RELEASETYPE+false} || echo "Uploading as Stable"
|
||
|
- anchor=$(echo $CI_COMMIT_TAG | sed -e 's/^v//' -e 's/[^a-zA-Z0-9]/-/g')
|
||
|
- tea release create $ASSETS --note "See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#$${anchor}" --tag $CI_COMMIT_TAG --title $CI_COMMIT_TAG $${RELEASETYPE}
|
||
|
secrets:
|
||
|
- releaseteamtoken
|
||
|
- releaseteamuser
|