mirror of https://sc.cryxtal.org/crystal/forgejo
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
150 lines
3.6 KiB
150 lines
3.6 KiB
platform: linux/amd64
|
|
|
|
when:
|
|
event: [ push, pull_request, manual ]
|
|
branch:
|
|
exclude: [ soft-fork/*/*, soft-fork/*/*/* ]
|
|
|
|
depends_on:
|
|
- compliance
|
|
|
|
variables:
|
|
- &golang_image 'golang:1.20'
|
|
- &test_image 'codeberg.org/forgejo/test_env:1.18'
|
|
- &mysql_image 'mysql:8'
|
|
- &pgsql_image 'postgres:10'
|
|
- &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
|
|
|
|
services:
|
|
mysql8:
|
|
image: *mysql_image
|
|
pull: true
|
|
environment:
|
|
MYSQL_ALLOW_EMPTY_PASSWORD: yes
|
|
MYSQL_DATABASE: testgitea
|
|
|
|
pgsql:
|
|
image: *pgsql_image
|
|
pull: true
|
|
environment:
|
|
POSTGRES_DB: test
|
|
POSTGRES_PASSWORD: postgres
|
|
|
|
workspace:
|
|
base: /go
|
|
path: src/codeberg/gitea
|
|
|
|
pipeline:
|
|
git-safe:
|
|
image: *golang_image
|
|
pull: true
|
|
commands:
|
|
- git config --add safe.directory '*'
|
|
|
|
deps-backend:
|
|
image: *golang_image
|
|
pull: true
|
|
environment:
|
|
GOPROXY_OVERRIDE: *goproxy_override
|
|
secrets:
|
|
- goproxy_default
|
|
commands:
|
|
- *goproxy_setup
|
|
- make deps-backend
|
|
|
|
tag-pre-condition:
|
|
image: *golang_image
|
|
pull: true
|
|
commands:
|
|
- git update-ref refs/heads/tag_test ${CI_COMMIT_SHA}
|
|
|
|
prepare-test-env:
|
|
image: *test_image
|
|
pull: true
|
|
commands:
|
|
- ./build/test-env-prepare.sh
|
|
|
|
environment-to-ini:
|
|
image: *golang_image
|
|
environment:
|
|
GOPROXY_OVERRIDE: *goproxy_override
|
|
commands:
|
|
- *goproxy_setup
|
|
- go test contrib/environment-to-ini/environment-to-ini.go contrib/environment-to-ini/environment-to-ini_test.go
|
|
|
|
build:
|
|
image: *test_image
|
|
environment:
|
|
GOSUMDB: sum.golang.org
|
|
TAGS: bindata sqlite sqlite_unlock_notify
|
|
GOPROXY_OVERRIDE: *goproxy_override
|
|
secrets:
|
|
- goproxy_default
|
|
commands:
|
|
- *goproxy_setup
|
|
- su gitea -c './build/test-env-check.sh'
|
|
- su gitea -c 'make backend'
|
|
|
|
unit-test:
|
|
image: *test_image
|
|
environment:
|
|
TAGS: 'bindata sqlite sqlite_unlock_notify'
|
|
RACE_ENABLED: 'true'
|
|
GOPROXY_OVERRIDE: *goproxy_override
|
|
secrets:
|
|
- github_read_token
|
|
- goproxy_default
|
|
commands:
|
|
- *goproxy_setup
|
|
- su gitea -c 'make unit-test-coverage test-check'
|
|
|
|
test-mysql8:
|
|
group: integration
|
|
image: *test_image
|
|
commands:
|
|
- *goproxy_setup
|
|
- su gitea -c 'timeout -s ABRT 50m make test-mysql8-migration test-mysql8'
|
|
environment:
|
|
TAGS: 'bindata'
|
|
RACE_ENABLED: 'true'
|
|
USE_REPO_TEST_DIR: '1'
|
|
GOPROXY_OVERRIDE: *goproxy_override
|
|
secrets:
|
|
- goproxy_default
|
|
|
|
test-pgsql:
|
|
group: integration
|
|
image: *test_image
|
|
commands:
|
|
- *goproxy_setup
|
|
- su gitea -c 'timeout -s ABRT 50m make test-pgsql-migration test-pgsql'
|
|
environment:
|
|
TAGS: 'bindata'
|
|
RACE_ENABLED: 'true'
|
|
USE_REPO_TEST_DIR: '1'
|
|
GOPROXY_OVERRIDE: *goproxy_override
|
|
secrets:
|
|
- goproxy_default
|
|
|
|
test-sqlite:
|
|
group: integration
|
|
image: *test_image
|
|
environment:
|
|
- USE_REPO_TEST_DIR=1
|
|
- GOPROXY=off
|
|
- TAGS=bindata gogit sqlite sqlite_unlock_notify
|
|
- TEST_TAGS=bindata gogit sqlite sqlite_unlock_notify
|
|
commands:
|
|
- su gitea -c 'timeout -s ABRT 120m make test-sqlite-migration test-sqlite'
|