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)
141 lines
3.3 KiB
YAML
141 lines
3.3 KiB
YAML
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:main'
|
|
- &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
|
|
|
|
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'
|