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'
 |