d6f6ca7d3e
Refs: https://codeberg.org/forgejo/forgejo/issues/73 Refs: https://codeberg.org/forgejo/forgejo/issues/101 Refs: https://codeberg.org/woodpecker-plugins/plugin-docker-buildx/issues/51 Refs: https://codeberg.org/forgejo/forgejo/issues/117 Refs: https://codeberg.org/forgejo/forgejo/issues/25 Refs: https://codeberg.org/forgejo/forgejo/issues/154 Refs: https://codeberg.org/forgejo/forgejo/issues/180 Refs: https://codeberg.org/forgejo/forgejo/issues/230 Refs: https://codeberg.org/forgejo/forgejo/issues/316
144 lines
3.4 KiB
YAML
144 lines
3.4 KiB
YAML
platform: linux/amd64
|
|
|
|
when:
|
|
event: [ push, pull_request, manual ]
|
|
branch:
|
|
exclude: [ soft-fork/*/*, soft-fork/*/*/* ]
|
|
path:
|
|
exclude: [ '*.md', 'CONTRIBUTING/**' ]
|
|
|
|
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:
|
|
fetch-tags:
|
|
image: *golang_image
|
|
pull: true
|
|
commands:
|
|
- git config --add safe.directory '*'
|
|
- git fetch --tags --force
|
|
|
|
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'
|