 dbdab1bc60
			
		
	
	
	dbdab1bc60
	
	
	
		
			
			Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/2917 Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
		
			
				
	
	
		
			216 lines
		
	
	
	
		
			7.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			216 lines
		
	
	
	
		
			7.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: testing
 | |
| 
 | |
| on:
 | |
|   pull_request:
 | |
|   push:
 | |
|     branches:
 | |
|       - 'forgejo*'
 | |
|       - 'v*/forgejo*'
 | |
| 
 | |
| jobs:
 | |
|   backend-checks:
 | |
|     if: ${{ !startsWith(vars.ROLE, 'forgejo-') }}
 | |
|     runs-on: docker
 | |
|     container:
 | |
|       image: 'docker.io/node:20-bookworm'
 | |
|     steps:
 | |
|       - name: event info
 | |
|         run: |
 | |
|           cat <<'EOF'
 | |
|           ${{ toJSON(github) }}
 | |
|           EOF
 | |
|       - uses: https://code.forgejo.org/actions/checkout@v3
 | |
|       - uses: https://code.forgejo.org/actions/setup-go@v4
 | |
|         with:
 | |
|           go-version: "1.22"
 | |
|           check-latest: true
 | |
|       - run: make deps-backend deps-tools
 | |
|       - run: make --always-make -j$(nproc) lint-backend checks-backend # ensure the "go-licenses" make target runs
 | |
|   frontend-checks:
 | |
|     if: ${{ !startsWith(vars.ROLE, 'forgejo-') }}
 | |
|     runs-on: docker
 | |
|     container:
 | |
|       image: 'docker.io/node:20-bookworm'
 | |
|     steps:
 | |
|       - uses: https://code.forgejo.org/actions/checkout@v3
 | |
|       - run: make deps-frontend
 | |
|       - run: make lint-frontend
 | |
|       - run: make checks-frontend
 | |
|       - run: make test-frontend
 | |
|       - run: make frontend
 | |
|   test-unit:
 | |
|     if: ${{ !startsWith(vars.ROLE, 'forgejo-') }}
 | |
|     runs-on: docker
 | |
|     needs: [backend-checks, frontend-checks]
 | |
|     container:
 | |
|       image: 'docker.io/node:20-bookworm'
 | |
|     services:
 | |
|       minio:
 | |
|         image: bitnami/minio:2024.3.30
 | |
|         options: >-
 | |
|           --hostname gitea.minio
 | |
|         env:
 | |
|           MINIO_DOMAIN: minio
 | |
|           MINIO_ROOT_USER: 123456
 | |
|           MINIO_ROOT_PASSWORD: 12345678
 | |
|     steps:
 | |
|       - uses: https://code.forgejo.org/actions/checkout@v3
 | |
|       - uses: https://code.forgejo.org/actions/setup-go@v4
 | |
|         with:
 | |
|           go-version: "1.22"
 | |
|       - run: |
 | |
|           git config --add safe.directory '*'
 | |
|           adduser --quiet --comment forgejo --disabled-password forgejo
 | |
|           chown -R forgejo:forgejo .
 | |
|       - name: install git >= 2.42
 | |
|         run: |
 | |
|           export DEBIAN_FRONTEND=noninteractive
 | |
|           echo deb http://deb.debian.org/debian/ testing  main > /etc/apt/sources.list.d/testing.list
 | |
|           apt-get update -qq
 | |
|           apt-get -q install -qq -y git
 | |
|           rm /etc/apt/sources.list.d/testing.list
 | |
|           apt-get update -qq
 | |
|       - run: |
 | |
|           su forgejo -c 'make deps-backend'
 | |
|       - run: |
 | |
|           su forgejo -c 'make backend'
 | |
|         env:
 | |
|           TAGS: bindata
 | |
|       - run: |
 | |
|           su forgejo -c 'make test-backend test-check'
 | |
|         timeout-minutes: 50
 | |
|         env:
 | |
|           RACE_ENABLED: 'true'
 | |
|           TAGS: bindata
 | |
|   test-mysql:
 | |
|     if: ${{ !startsWith(vars.ROLE, 'forgejo-') }}
 | |
|     runs-on: docker
 | |
|     needs: [backend-checks, frontend-checks]
 | |
|     container:
 | |
|       image: 'docker.io/node:20-bookworm'
 | |
|     services:
 | |
|       mysql:
 | |
|         image: 'docker.io/mysql:8-debian'
 | |
|         env:
 | |
|           MYSQL_ALLOW_EMPTY_PASSWORD: yes
 | |
|           MYSQL_DATABASE: testgitea
 | |
|         #
 | |
|         # See also https://codeberg.org/forgejo/forgejo/issues/976
 | |
|         #
 | |
|         cmd: ['mysqld', '--innodb-adaptive-flushing=OFF', '--innodb-buffer-pool-size=4G', '--innodb-log-buffer-size=128M', '--innodb-flush-log-at-trx-commit=0', '--innodb-flush-log-at-timeout=30', '--innodb-flush-method=nosync', '--innodb-fsync-threshold=1000000000']
 | |
|     steps:
 | |
|       - uses: https://code.forgejo.org/actions/checkout@v3
 | |
|       - uses: https://code.forgejo.org/actions/setup-go@v4
 | |
|         with:
 | |
|           go-version: "1.22"
 | |
|       - name: install dependencies & git >= 2.42
 | |
|         run: |
 | |
|           export DEBIAN_FRONTEND=noninteractive
 | |
|           echo deb http://deb.debian.org/debian/ testing  main > /etc/apt/sources.list.d/testing.list
 | |
|           apt-get update -qq
 | |
|           apt-get install --no-install-recommends -qq -y git git-lfs
 | |
|           rm /etc/apt/sources.list.d/testing.list
 | |
|           apt-get update -qq
 | |
|       - name: setup user and permissions
 | |
|         run: |
 | |
|           git config --add safe.directory '*'
 | |
|           adduser --quiet --comment forgejo --disabled-password forgejo
 | |
|           chown -R forgejo:forgejo .
 | |
|       - run: |
 | |
|           su forgejo -c 'make deps-backend'
 | |
|       - run: |
 | |
|           su forgejo -c 'make backend'
 | |
|         env:
 | |
|           TAGS: bindata
 | |
|       - run: |
 | |
|           su forgejo -c 'make test-mysql-migration test-mysql'
 | |
|         timeout-minutes: 50
 | |
|         env:
 | |
|           TAGS: bindata
 | |
|           USE_REPO_TEST_DIR: 1
 | |
|   test-pgsql:
 | |
|     if: ${{ !startsWith(vars.ROLE, 'forgejo-') }}
 | |
|     runs-on: docker
 | |
|     needs: [backend-checks, frontend-checks]
 | |
|     container:
 | |
|       image: 'docker.io/node:20-bookworm'
 | |
|     services:
 | |
|       minio:
 | |
|         image: bitnami/minio:2024.3.30
 | |
|         env:
 | |
|           MINIO_ROOT_USER: 123456
 | |
|           MINIO_ROOT_PASSWORD: 12345678
 | |
|       pgsql:
 | |
|         image: 'docker.io/postgres:15'
 | |
|         env:
 | |
|           POSTGRES_DB: test
 | |
|           POSTGRES_PASSWORD: postgres
 | |
|     steps:
 | |
|       - uses: https://code.forgejo.org/actions/checkout@v3
 | |
|       - uses: https://code.forgejo.org/actions/setup-go@v4
 | |
|         with:
 | |
|           go-version: "1.22"
 | |
|       - name: install dependencies & git >= 2.42
 | |
|         run: |
 | |
|           export DEBIAN_FRONTEND=noninteractive
 | |
|           echo deb http://deb.debian.org/debian/ testing  main > /etc/apt/sources.list.d/testing.list
 | |
|           apt-get update -qq
 | |
|           apt-get install --no-install-recommends -qq -y git git-lfs
 | |
|           rm /etc/apt/sources.list.d/testing.list
 | |
|           apt-get update -qq
 | |
|       - name: setup user and permissions
 | |
|         run: |
 | |
|           git config --add safe.directory '*'
 | |
|           adduser --quiet --comment forgejo --disabled-password forgejo
 | |
|           chown -R forgejo:forgejo .
 | |
|       - run: |
 | |
|           su forgejo -c 'make deps-backend'
 | |
|       - run: |
 | |
|           su forgejo -c 'make backend'
 | |
|         env:
 | |
|           TAGS: bindata
 | |
|       - run: |
 | |
|           su forgejo -c 'make test-pgsql-migration test-pgsql'
 | |
|         timeout-minutes: 50
 | |
|         env:
 | |
|           TAGS: bindata
 | |
|           RACE_ENABLED: true
 | |
|           USE_REPO_TEST_DIR: 1
 | |
|   test-sqlite:
 | |
|     if: ${{ !startsWith(vars.ROLE, 'forgejo-') }}
 | |
|     runs-on: docker
 | |
|     needs: [backend-checks, frontend-checks]
 | |
|     container:
 | |
|       image: 'docker.io/node:20-bookworm'
 | |
|     steps:
 | |
|       - uses: https://code.forgejo.org/actions/checkout@v3
 | |
|       - uses: https://code.forgejo.org/actions/setup-go@v4
 | |
|         with:
 | |
|           go-version: "1.22"
 | |
|       - name: install dependencies & git >= 2.42
 | |
|         run: |
 | |
|           export DEBIAN_FRONTEND=noninteractive
 | |
|           echo deb http://deb.debian.org/debian/ testing  main > /etc/apt/sources.list.d/testing.list
 | |
|           apt-get update -qq
 | |
|           apt-get install --no-install-recommends -qq -y git git-lfs
 | |
|           rm /etc/apt/sources.list.d/testing.list
 | |
|           apt-get update -qq
 | |
|       - name: setup user and permissions
 | |
|         run: |
 | |
|           git config --add safe.directory '*'
 | |
|           adduser --quiet --comment forgejo --disabled-password forgejo
 | |
|           chown -R forgejo:forgejo .
 | |
|       - run: |
 | |
|           su forgejo -c 'make deps-backend'
 | |
|       - run: |
 | |
|           su forgejo -c 'make backend'
 | |
|         env:
 | |
|           TAGS: bindata sqlite sqlite_unlock_notify
 | |
|       - run: |
 | |
|           su forgejo -c 'make test-sqlite-migration test-sqlite'
 | |
|         timeout-minutes: 50
 | |
|         env:
 | |
|           TAGS: bindata sqlite sqlite_unlock_notify
 | |
|           RACE_ENABLED: true
 | |
|           TEST_TAGS: sqlite sqlite_unlock_notify
 | |
|           USE_REPO_TEST_DIR: 1
 |