mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-29 13:59:15 -05:00
142 lines
3.3 KiB
YAML
142 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'
|