mirror of https://github.com/go-gitea/gitea.git
Use Actions for DB & E2E tests (#24494)
following https://github.com/go-gitea/gitea/pull/24314 and https://github.com/go-gitea/gitea/pull/24434, this PR moves drone cron pipelines to (GitHub) Actions. As these are mostly compatible with Gitea Actions, when we start to dogfood, these will already be migrated. --------- Co-authored-by: silverwind <me@silverwind.io>pull/24506/head^2
parent
ad8631c069
commit
f7f0782132
@ -0,0 +1,133 @@
|
||||
name: "Pull: Compliance Tests"
|
||||
|
||||
on: [pull_request]
|
||||
|
||||
jobs:
|
||||
lint_basic:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: setup go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '>=1.20'
|
||||
- name: deps-backend
|
||||
run: make deps-backend deps-tools
|
||||
- name: lint backend
|
||||
run: make lint-backend
|
||||
env:
|
||||
GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
|
||||
GOSUMDB: sum.golang.org
|
||||
TAGS: bindata sqlite sqlite_unlock_notify
|
||||
lint_windows:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: setup go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '>=1.20'
|
||||
- name: deps-backend
|
||||
run: make deps-backend deps-tools
|
||||
- name: lint-backend-windows
|
||||
run: make lint-go-windows lint-go-vet
|
||||
env:
|
||||
GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
|
||||
GOSUMDB: sum.golang.org
|
||||
TAGS: bindata sqlite sqlite_unlock_notify
|
||||
GOOS: windows
|
||||
GOARCH: amd64
|
||||
lint_gogit:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: setup go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '>=1.20'
|
||||
- name: deps-backend
|
||||
run: make deps-backend deps-tools
|
||||
- name: lint-backend-gogit
|
||||
run: make lint-backend
|
||||
env:
|
||||
GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
|
||||
GOSUMDB: sum.golang.org
|
||||
TAGS: bindata gogit sqlite sqlite_unlock_notify
|
||||
- name: checks backend
|
||||
run: make --always-make checks-backend # ensure the 'go-licenses' make target runs
|
||||
check_backend:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: setup go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '>=1.20'
|
||||
- name: deps-backend
|
||||
run: make deps-backend deps-tools
|
||||
- name: checks backend
|
||||
run: make --always-make checks-backend # ensure the 'go-licenses' make target runs
|
||||
frontend:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: setup node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 18
|
||||
- name: deps-frontend
|
||||
run: make deps-frontend
|
||||
- name: lint frontend
|
||||
run: make lint-frontend
|
||||
- name: checks frontend
|
||||
run: make checks-frontend
|
||||
- name: test frontend
|
||||
run: make test-frontend
|
||||
backend:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: setup go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '>=1.20'
|
||||
- name: setup node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 18
|
||||
- name: deps-backend
|
||||
run: make deps-backend deps-tools
|
||||
- name: deps-frontend
|
||||
run: make deps-frontend
|
||||
- name: build frontend
|
||||
run: make frontend
|
||||
- name: build-backend-no-gcc
|
||||
run: go build -o gitea_no_gcc # test if build succeeds without the sqlite tag
|
||||
env:
|
||||
GOPROXY: https://goproxy.io
|
||||
- name: build-backend-arm64
|
||||
run: make backend # test cross compile
|
||||
env:
|
||||
GOPROXY: https://goproxy.io
|
||||
GOOS: linux
|
||||
GOARCH: arm64
|
||||
TAGS: bindata gogit
|
||||
- name: build-backend-windows
|
||||
run: go build -o gitea_windows
|
||||
env:
|
||||
GOPROXY: https://goproxy.io
|
||||
GOOS: windows
|
||||
GOARCH: amd64
|
||||
TAGS: bindata gogit
|
||||
- name: build-backend-386
|
||||
run: go build -o gitea_linux_386 # test if compatible with 32 bit
|
||||
env:
|
||||
GOPROXY: https://goproxy.io
|
||||
GOOS: linux
|
||||
GOARCH: 386
|
@ -0,0 +1,260 @@
|
||||
name: "Pull: Database Tests"
|
||||
|
||||
on: [pull_request]
|
||||
|
||||
jobs:
|
||||
# PostgreSQL Tests
|
||||
db_pgsql_test:
|
||||
runs-on: ubuntu-latest
|
||||
services:
|
||||
pgsql:
|
||||
image: postgres:15
|
||||
env:
|
||||
POSTGRES_DB: test
|
||||
POSTGRES_PASSWORD: postgres
|
||||
ports:
|
||||
- "5432:5432"
|
||||
ldap:
|
||||
image: gitea/test-openldap:latest
|
||||
ports:
|
||||
- "389:389"
|
||||
- "636:636"
|
||||
minio:
|
||||
# as github actions doesn't support "entrypoint", we need to use a non-official image
|
||||
# that has a custom entrypoint set to "minio server /data"
|
||||
image: bitnami/minio:2021.3.17
|
||||
env:
|
||||
MINIO_ACCESS_KEY: 123456
|
||||
MINIO_SECRET_KEY: 12345678
|
||||
ports:
|
||||
- "9000:9000"
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: setup go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '>=1.20.0'
|
||||
- name: Add hosts to /etc/hosts
|
||||
run: echo "127.0.0.1 pgsql ldap minio" | sudo tee -a /etc/hosts
|
||||
- name: install dependencies
|
||||
run: make deps-backend
|
||||
- name: build
|
||||
run: make backend
|
||||
env:
|
||||
GOPROXY: https://goproxy.io
|
||||
GOSUMDB: sum.golang.org
|
||||
TAGS: bindata
|
||||
- name: run tests
|
||||
run: timeout -s ABRT 50m make test-pgsql-migration test-pgsql
|
||||
env:
|
||||
GOPROXY: https://goproxy.io
|
||||
TAGS: bindata gogit
|
||||
RACE_ENABLED: true
|
||||
TEST_TAGS: gogit
|
||||
TEST_LDAP: 1
|
||||
USE_REPO_TEST_DIR: 1
|
||||
|
||||
# SQLite Tests
|
||||
db_sqlite_test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: setup go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '>=1.20.0'
|
||||
- name: install dependencies
|
||||
run: make deps-backend
|
||||
- name: build
|
||||
run: make backend
|
||||
env:
|
||||
GOPROXY: https://goproxy.io
|
||||
GOSUMDB: sum.golang.org
|
||||
TAGS: bindata gogit sqlite sqlite_unlock_notify
|
||||
- name: run tests
|
||||
run: timeout -s ABRT 50m make test-sqlite-migration test-sqlite
|
||||
env:
|
||||
GOPROXY: https://goproxy.io
|
||||
TAGS: bindata gogit sqlite sqlite_unlock_notify
|
||||
RACE_ENABLED: true
|
||||
TEST_TAGS: gogit sqlite sqlite_unlock_notify
|
||||
USE_REPO_TEST_DIR: 1
|
||||
|
||||
# Unit Tests
|
||||
db_unit_tests:
|
||||
runs-on: ubuntu-latest
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:5.7
|
||||
env:
|
||||
MYSQL_ALLOW_EMPTY_PASSWORD: yes
|
||||
MYSQL_DATABASE: test
|
||||
ports:
|
||||
- "3306:3306"
|
||||
elasticsearch:
|
||||
image: elasticsearch:7.5.0
|
||||
env:
|
||||
discovery.type: single-node
|
||||
ports:
|
||||
- "9200:9200"
|
||||
smtpimap:
|
||||
image: tabascoterrier/docker-imap-devel:latest
|
||||
ports:
|
||||
- "25:25"
|
||||
- "143:143"
|
||||
- "587:587"
|
||||
- "993:993"
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: setup go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '>=1.20.0'
|
||||
- name: Add hosts to /etc/hosts
|
||||
run: echo "127.0.0.1 mysql elasticsearch smtpimap" | sudo tee -a /etc/hosts
|
||||
- name: install dependencies
|
||||
run: make deps-backend
|
||||
- name: build
|
||||
run: make backend
|
||||
env:
|
||||
GOPROXY: https://goproxy.io
|
||||
GOSUMDB: sum.golang.org
|
||||
TAGS: bindata
|
||||
- name: unit tests
|
||||
run: make unit-test-coverage test-check
|
||||
env:
|
||||
GOPROXY: https://goproxy.io
|
||||
TAGS: bindata
|
||||
RACE_ENABLED: true
|
||||
GITHUB_READ_TOKEN: ${{ secrets.GITHUB_READ_TOKEN }}
|
||||
- name: unit tests (gogit)
|
||||
run: make unit-test-coverage test-check
|
||||
env:
|
||||
GOPROXY: https://goproxy.io
|
||||
TAGS: bindata gogit
|
||||
RACE_ENABLED: true
|
||||
GITHUB_READ_TOKEN: ${{ secrets.GITHUB_READ_TOKEN }}
|
||||
|
||||
# MySQL Tests
|
||||
db_mysql_test:
|
||||
runs-on: ubuntu-latest
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:5.7
|
||||
env:
|
||||
MYSQL_ALLOW_EMPTY_PASSWORD: yes
|
||||
MYSQL_DATABASE: test
|
||||
ports:
|
||||
- "3306:3306"
|
||||
elasticsearch:
|
||||
image: elasticsearch:7.5.0
|
||||
env:
|
||||
discovery.type: single-node
|
||||
ports:
|
||||
- "9200:9200"
|
||||
smtpimap:
|
||||
image: tabascoterrier/docker-imap-devel:latest
|
||||
ports:
|
||||
- "25:25"
|
||||
- "143:143"
|
||||
- "587:587"
|
||||
- "993:993"
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: setup go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '>=1.20.0'
|
||||
- name: Add hosts to /etc/hosts
|
||||
run: echo "127.0.0.1 mysql elasticsearch smtpimap" | sudo tee -a /etc/hosts
|
||||
- name: install dependencies
|
||||
run: make deps-backend
|
||||
- name: build
|
||||
run: make backend
|
||||
env:
|
||||
GOPROXY: https://goproxy.io
|
||||
GOSUMDB: sum.golang.org
|
||||
TAGS: bindata
|
||||
- name: run tests
|
||||
run: make test-mysql-migration integration-test-coverage
|
||||
env:
|
||||
GOPROXY: https://goproxy.io
|
||||
TAGS: bindata
|
||||
RACE_ENABLED: true
|
||||
USE_REPO_TEST_DIR: 1
|
||||
TEST_INDEXER_CODE_ES_URL: "http://elastic:changeme@elasticsearch:9200"
|
||||
|
||||
# MySQL8 Tests
|
||||
db_mysql8_test:
|
||||
runs-on: ubuntu-latest
|
||||
services:
|
||||
mysql8:
|
||||
image: mysql:8
|
||||
env:
|
||||
MYSQL_ALLOW_EMPTY_PASSWORD: yes
|
||||
MYSQL_DATABASE: testgitea
|
||||
ports:
|
||||
- "3306:3306"
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: setup go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '>=1.20.0'
|
||||
- name: Add hosts to /etc/hosts
|
||||
run: echo "127.0.0.1 mysql8" | sudo tee -a /etc/hosts
|
||||
- name: install dependencies
|
||||
run: make deps-backend
|
||||
- name: build
|
||||
run: make backend
|
||||
env:
|
||||
GOPROXY: https://goproxy.io
|
||||
GOSUMDB: sum.golang.org
|
||||
TAGS: bindata
|
||||
- name: run tests
|
||||
run: timeout -s ABRT 50m make test-mysql8-migration test-mysql8
|
||||
env:
|
||||
GOPROXY: https://goproxy.io
|
||||
TAGS: bindata
|
||||
USE_REPO_TEST_DIR: 1
|
||||
|
||||
# MSSQL Tests
|
||||
db_mssql_test:
|
||||
runs-on: ubuntu-latest
|
||||
services:
|
||||
mssql:
|
||||
image: mcr.microsoft.com/mssql/server:latest
|
||||
env:
|
||||
ACCEPT_EULA: Y
|
||||
MSSQL_PID: Standard
|
||||
SA_PASSWORD: MwantsaSecurePassword1
|
||||
ports:
|
||||
- "1433:1433"
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: setup go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '>=1.20.0'
|
||||
- name: Add hosts to /etc/hosts
|
||||
run: echo "127.0.0.1 mssql" | sudo tee -a /etc/hosts
|
||||
- name: install dependencies
|
||||
run: make deps-backend
|
||||
- name: build
|
||||
run: make backend
|
||||
env:
|
||||
GOPROXY: https://goproxy.io
|
||||
GOSUMDB: sum.golang.org
|
||||
TAGS: bindata
|
||||
- name: run tests
|
||||
run: timeout -s ABRT 50m make test-mssql-migration test-mssql
|
||||
env:
|
||||
GOPROXY: https://goproxy.io
|
||||
TAGS: bindata
|
||||
USE_REPO_TEST_DIR: 1
|
@ -0,0 +1,28 @@
|
||||
name: "Pull: E2E Tests"
|
||||
|
||||
on: [pull_request]
|
||||
|
||||
jobs:
|
||||
e2e_tests:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: setup go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '>=1.20'
|
||||
- name: setup node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 18
|
||||
- name: build
|
||||
run: make deps-frontend frontend deps-backend
|
||||
- name: Install playwright browsers
|
||||
run: npx playwright install --with-deps
|
||||
- name: run tests
|
||||
run: timeout -s ABRT 40m make test-e2e-sqlite
|
||||
env:
|
||||
GOPROXY: https://goproxy.io
|
||||
GOSUMDB: sum.golang.org
|
||||
USE_REPO_TEST_DIR: 1
|
Loading…
Reference in New Issue