1
0
Fork 0
forgejo-build/.crystalintegration.yml

181 lines
4.4 KiB
YAML

platform: linux/amd64
when:
event: [ push, tag ]
variables:
- &ci_verify_image 'sc.cryxtal.org/ci-img/git-curl-jq:latest'
- &golang_image 'golang:1.20-bullseye'
- &forgejo_test_image 'codeberg.org/forgejo/test_env:1.18'
- &nodejs_image 'node:lts'
- &rsync_image 'instrumentisto/rsync-ssh'
- &build_submodule 'forgejo'
- &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: /go
path: src/forgejo-crystal-build
clone:
clone-recursive:
image: woodpeckerci/plugin-git
settings:
recursive: true
pipeline:
fetch-tags:
image: *ci_verify_image
pull: true
commands:
- git config --add safe.directory '*'
- git fetch --tags --force --recurse-submodules=no
ci-verify:
image: *ci_verify_image
group: deps
environment:
BUILD_SUBMODULE: *build_submodule
commands:
- ./.ci-verify.sh $BUILD_SUBMODULE
deps-frontend:
image: *nodejs_image
group: deps
environment:
BUILD_SUBMODULE: *build_submodule
commands:
- cd "$BUILD_SUBMODULE"
- make deps-frontend
deps-backend:
image: *golang_image
group: deps
environment:
BUILD_SUBMODULE: *build_submodule
GOPROXY_OVERRIDE: *goproxy_override
secrets:
- goproxy_default
commands:
- *goproxy_setup
- cd "$BUILD_SUBMODULE"
- make deps-backend
tag-pre-condition:
image: *ci_verify_image
environment:
BUILD_SUBMODULE: *build_submodule
commands:
- cd "$BUILD_SUBMODULE"
- git update-ref refs/heads/tag_test $(git rev-parse --verify HEAD)
security-check:
image: *golang_image
group: checks
environment:
BUILD_SUBMODULE: *build_submodule
GOPROXY_OVERRIDE: *goproxy_override
secrets:
- goproxy_default
commands:
- *goproxy_setup
- cd "$BUILD_SUBMODULE"
- make security-check
build-frontend:
image: *nodejs_image
group: checks
environment:
BUILD_SUBMODULE: *build_submodule
commands:
- cd "$BUILD_SUBMODULE"
- make frontend
checks-backend:
image: *forgejo_test_image
group: checks
environment:
BUILD_SUBMODULE: *build_submodule
GOPROXY_OVERRIDE: *goproxy_override
secrets:
- goproxy_default
commands:
- *goproxy_setup
- cd "$BUILD_SUBMODULE"
- make --always-make checks-backend
build-forgejo-amd64:
image: *golang_image
environment:
BUILD_SUBMODULE: *build_submodule
GOSUMDB: sum.golang.org
TAGS: bindata
GOPROXY_OVERRIDE: *goproxy_override
secrets:
- goproxy_default
commands:
- *goproxy_setup
- cd "$BUILD_SUBMODULE"
- make build
- ../.ci-mvbin.sh gitea forgejo linux-amd64
build-forgejo-sqlite-amd64:
image: *golang_image
environment:
BUILD_SUBMODULE: *build_submodule
GOSUMDB: sum.golang.org
TAGS: bindata sqlite sqlite_unlock_notify
GOPROXY_OVERRIDE: *goproxy_override
secrets:
- goproxy_default
commands:
- *goproxy_setup
- cd "$BUILD_SUBMODULE"
- make build
- ../.ci-mvbin.sh gitea forgejo-sqlite linux-amd64
gen-sha256:
image: *ci_verify_image
commands:
- ./.ci-sha256.sh forgejo linux-amd64
upload-luka:
image: *rsync_image
group: upload
secrets:
- luka_upload_key
commands:
- touch .id_rsa
- chmod 600 .id_rsa
- echo "$LUKA_UPLOAD_KEY" > .id_rsa
- rsync -e "ssh -oStrictHostKeyChecking=accept-new -i .id_rsa" forgejo-sqlite-linux-amd64 forgejo@luka.ip.crystalc.net:/home/forgejo/upload/
- rm .id_rsa
when:
event: [ push ]
branch: testing
upload-crystalcommit:
image: woodpeckerci/plugin-gitea-release
group: upload
settings:
base_url: https://sc.cryxtal.org
files:
- "forgejo-*-linux-amd64"
- "forgejo-*-linux-amd64.sha256"
api_key:
from_secret: sc_api_key
prerelease: false
skip_verify: true
when:
event: [ tag ]