Use /tmp for test repositories (#11126)

* Add option to use /tmp for test repositories

* Fix exit status

* Add feedback about using tmp repos

Co-authored-by: Guillermo Prandi <guillep2k@users.noreply.github.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
guillep2k 2020-04-19 08:17:02 -03:00 committed by GitHub
parent 16f39ce426
commit 23163e98a3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 43 additions and 9 deletions

View file

@ -176,6 +176,7 @@ steps:
GOPROXY: off GOPROXY: off
TAGS: bindata TAGS: bindata
TEST_LDAP: 1 TEST_LDAP: 1
USE_REPO_TEST_DIR: 1
depends_on: depends_on:
- build - build
@ -190,6 +191,7 @@ steps:
GOPROXY: off GOPROXY: off
TAGS: bindata TAGS: bindata
TEST_LDAP: 1 TEST_LDAP: 1
USE_REPO_TEST_DIR: 1
depends_on: depends_on:
- build - build
@ -204,6 +206,7 @@ steps:
GOPROXY: off GOPROXY: off
TAGS: bindata TAGS: bindata
TEST_LDAP: 1 TEST_LDAP: 1
USE_REPO_TEST_DIR: 1
depends_on: depends_on:
- build - build
@ -302,6 +305,7 @@ steps:
environment: environment:
GOPROXY: off GOPROXY: off
TAGS: bindata TAGS: bindata
USE_REPO_TEST_DIR: 1
depends_on: depends_on:
- build - build
@ -316,6 +320,7 @@ steps:
GOPROXY: off GOPROXY: off
TAGS: bindata TAGS: bindata
TEST_LDAP: 1 TEST_LDAP: 1
USE_REPO_TEST_DIR: 1
depends_on: depends_on:
- build - build

1
.gitignore vendored
View file

@ -68,6 +68,7 @@ coverage.all
/integrations/indexers-pgsql /integrations/indexers-pgsql
/integrations/indexers-sqlite /integrations/indexers-sqlite
/integrations/indexers-mssql /integrations/indexers-mssql
/integrations/sqlite.ini
/integrations/mysql.ini /integrations/mysql.ini
/integrations/mysql8.ini /integrations/mysql8.ini
/integrations/pgsql.ini /integrations/pgsql.ini

View file

@ -1,3 +1,20 @@
ifeq ($(USE_REPO_TEST_DIR),1)
# This rule replaces the whole Makefile when we're trying to use /tmp repository temporary files
location = $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
self := $(location)
%:
@tmpdir=`mktemp --tmpdir -d` ; \
echo Using temporary directory $$tmpdir for test repositories ; \
USE_REPO_TEST_DIR= $(MAKE) -f $(self) --no-print-directory REPO_TEST_DIR=$$tmpdir/ $@ ; \
STATUS=$$? ; rm -r "$$tmpdir" ; exit $$STATUS
else
# This is the "normal" part of the Makefile
DIST := dist DIST := dist
DIST_DIRS := $(DIST)/binaries $(DIST)/release DIST_DIRS := $(DIST)/binaries $(DIST)/release
IMPORT := code.gitea.io/gitea IMPORT := code.gitea.io/gitea
@ -321,16 +338,20 @@ test-vendor: vendor
exit 1; \ exit 1; \
fi; fi;
generate-ini-sqlite:
sed -e 's|{{REPO_TEST_DIR}}|${REPO_TEST_DIR}|g' \
integrations/sqlite.ini.tmpl > integrations/sqlite.ini
.PHONY: test-sqlite .PHONY: test-sqlite
test-sqlite: integrations.sqlite.test test-sqlite: integrations.sqlite.test generate-ini-sqlite
GITEA_ROOT=${CURDIR} GITEA_CONF=integrations/sqlite.ini ./integrations.sqlite.test GITEA_ROOT=${CURDIR} GITEA_CONF=integrations/sqlite.ini ./integrations.sqlite.test
.PHONY: test-sqlite\#% .PHONY: test-sqlite\#%
test-sqlite\#%: integrations.sqlite.test test-sqlite\#%: integrations.sqlite.test generate-ini-sqlite
GITEA_ROOT=${CURDIR} GITEA_CONF=integrations/sqlite.ini ./integrations.sqlite.test -test.run $(subst .,/,$*) GITEA_ROOT=${CURDIR} GITEA_CONF=integrations/sqlite.ini ./integrations.sqlite.test -test.run $(subst .,/,$*)
.PHONY: test-sqlite-migration .PHONY: test-sqlite-migration
test-sqlite-migration: migrations.sqlite.test test-sqlite-migration: migrations.sqlite.test generate-ini-sqlite
GITEA_ROOT=${CURDIR} GITEA_CONF=integrations/sqlite.ini ./migrations.sqlite.test GITEA_ROOT=${CURDIR} GITEA_CONF=integrations/sqlite.ini ./migrations.sqlite.test
generate-ini-mysql: generate-ini-mysql:
@ -338,6 +359,7 @@ generate-ini-mysql:
-e 's|{{TEST_MYSQL_DBNAME}}|${TEST_MYSQL_DBNAME}|g' \ -e 's|{{TEST_MYSQL_DBNAME}}|${TEST_MYSQL_DBNAME}|g' \
-e 's|{{TEST_MYSQL_USERNAME}}|${TEST_MYSQL_USERNAME}|g' \ -e 's|{{TEST_MYSQL_USERNAME}}|${TEST_MYSQL_USERNAME}|g' \
-e 's|{{TEST_MYSQL_PASSWORD}}|${TEST_MYSQL_PASSWORD}|g' \ -e 's|{{TEST_MYSQL_PASSWORD}}|${TEST_MYSQL_PASSWORD}|g' \
-e 's|{{REPO_TEST_DIR}}|${REPO_TEST_DIR}|g' \
integrations/mysql.ini.tmpl > integrations/mysql.ini integrations/mysql.ini.tmpl > integrations/mysql.ini
.PHONY: test-mysql .PHONY: test-mysql
@ -357,6 +379,7 @@ generate-ini-mysql8:
-e 's|{{TEST_MYSQL8_DBNAME}}|${TEST_MYSQL8_DBNAME}|g' \ -e 's|{{TEST_MYSQL8_DBNAME}}|${TEST_MYSQL8_DBNAME}|g' \
-e 's|{{TEST_MYSQL8_USERNAME}}|${TEST_MYSQL8_USERNAME}|g' \ -e 's|{{TEST_MYSQL8_USERNAME}}|${TEST_MYSQL8_USERNAME}|g' \
-e 's|{{TEST_MYSQL8_PASSWORD}}|${TEST_MYSQL8_PASSWORD}|g' \ -e 's|{{TEST_MYSQL8_PASSWORD}}|${TEST_MYSQL8_PASSWORD}|g' \
-e 's|{{REPO_TEST_DIR}}|${REPO_TEST_DIR}|g' \
integrations/mysql8.ini.tmpl > integrations/mysql8.ini integrations/mysql8.ini.tmpl > integrations/mysql8.ini
.PHONY: test-mysql8 .PHONY: test-mysql8
@ -377,6 +400,7 @@ generate-ini-pgsql:
-e 's|{{TEST_PGSQL_USERNAME}}|${TEST_PGSQL_USERNAME}|g' \ -e 's|{{TEST_PGSQL_USERNAME}}|${TEST_PGSQL_USERNAME}|g' \
-e 's|{{TEST_PGSQL_PASSWORD}}|${TEST_PGSQL_PASSWORD}|g' \ -e 's|{{TEST_PGSQL_PASSWORD}}|${TEST_PGSQL_PASSWORD}|g' \
-e 's|{{TEST_PGSQL_SCHEMA}}|${TEST_PGSQL_SCHEMA}|g' \ -e 's|{{TEST_PGSQL_SCHEMA}}|${TEST_PGSQL_SCHEMA}|g' \
-e 's|{{REPO_TEST_DIR}}|${REPO_TEST_DIR}|g' \
integrations/pgsql.ini.tmpl > integrations/pgsql.ini integrations/pgsql.ini.tmpl > integrations/pgsql.ini
.PHONY: test-pgsql .PHONY: test-pgsql
@ -396,6 +420,7 @@ generate-ini-mssql:
-e 's|{{TEST_MSSQL_DBNAME}}|${TEST_MSSQL_DBNAME}|g' \ -e 's|{{TEST_MSSQL_DBNAME}}|${TEST_MSSQL_DBNAME}|g' \
-e 's|{{TEST_MSSQL_USERNAME}}|${TEST_MSSQL_USERNAME}|g' \ -e 's|{{TEST_MSSQL_USERNAME}}|${TEST_MSSQL_USERNAME}|g' \
-e 's|{{TEST_MSSQL_PASSWORD}}|${TEST_MSSQL_PASSWORD}|g' \ -e 's|{{TEST_MSSQL_PASSWORD}}|${TEST_MSSQL_PASSWORD}|g' \
-e 's|{{REPO_TEST_DIR}}|${REPO_TEST_DIR}|g' \
integrations/mssql.ini.tmpl > integrations/mssql.ini integrations/mssql.ini.tmpl > integrations/mssql.ini
.PHONY: test-mssql .PHONY: test-mssql
@ -411,7 +436,7 @@ test-mssql-migration: migrations.mssql.test generate-ini-mssql
GITEA_ROOT=${CURDIR} GITEA_CONF=integrations/mssql.ini ./migrations.mssql.test GITEA_ROOT=${CURDIR} GITEA_CONF=integrations/mssql.ini ./migrations.mssql.test
.PHONY: bench-sqlite .PHONY: bench-sqlite
bench-sqlite: integrations.sqlite.test bench-sqlite: integrations.sqlite.test generate-ini-sqlite
GITEA_ROOT=${CURDIR} GITEA_CONF=integrations/sqlite.ini ./integrations.sqlite.test -test.cpuprofile=cpu.out -test.run DontRunTests -test.bench . GITEA_ROOT=${CURDIR} GITEA_CONF=integrations/sqlite.ini ./integrations.sqlite.test -test.cpuprofile=cpu.out -test.run DontRunTests -test.bench .
.PHONY: bench-mysql .PHONY: bench-mysql
@ -627,3 +652,6 @@ golangci-lint:
curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(GOPATH)/bin v1.24.0; \ curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(GOPATH)/bin v1.24.0; \
fi fi
golangci-lint run --timeout 5m golangci-lint run --timeout 5m
# This endif closes the if at the top of the file
endif

View file

@ -15,7 +15,7 @@ REPO_INDEXER_ENABLED = true
REPO_INDEXER_PATH = integrations/indexers-mssql/repos.bleve REPO_INDEXER_PATH = integrations/indexers-mssql/repos.bleve
[repository] [repository]
ROOT = integrations/gitea-integration-mssql/gitea-repositories ROOT = {{REPO_TEST_DIR}}integrations/gitea-integration-mssql/gitea-repositories
[repository.local] [repository.local]
LOCAL_COPY_PATH = tmp/local-repo-mssql LOCAL_COPY_PATH = tmp/local-repo-mssql

View file

@ -17,7 +17,7 @@ REPO_INDEXER_ENABLED = true
REPO_INDEXER_PATH = integrations/indexers-mysql/repos.bleve REPO_INDEXER_PATH = integrations/indexers-mysql/repos.bleve
[repository] [repository]
ROOT = integrations/gitea-integration-mysql/gitea-repositories ROOT = {{REPO_TEST_DIR}}integrations/gitea-integration-mysql/gitea-repositories
[repository.local] [repository.local]
LOCAL_COPY_PATH = tmp/local-repo-mysql LOCAL_COPY_PATH = tmp/local-repo-mysql

View file

@ -15,7 +15,7 @@ REPO_INDEXER_ENABLED = true
REPO_INDEXER_PATH = integrations/indexers-mysql8/repos.bleve REPO_INDEXER_PATH = integrations/indexers-mysql8/repos.bleve
[repository] [repository]
ROOT = integrations/gitea-integration-mysql8/gitea-repositories ROOT = {{REPO_TEST_DIR}}integrations/gitea-integration-mysql8/gitea-repositories
[repository.local] [repository.local]
LOCAL_COPY_PATH = tmp/local-repo-mysql8 LOCAL_COPY_PATH = tmp/local-repo-mysql8

View file

@ -16,7 +16,7 @@ REPO_INDEXER_ENABLED = true
REPO_INDEXER_PATH = integrations/indexers-pgsql/repos.bleve REPO_INDEXER_PATH = integrations/indexers-pgsql/repos.bleve
[repository] [repository]
ROOT = integrations/gitea-integration-pgsql/gitea-repositories ROOT = {{REPO_TEST_DIR}}integrations/gitea-integration-pgsql/gitea-repositories
[repository.local] [repository.local]
LOCAL_COPY_PATH = tmp/local-repo-pgsql LOCAL_COPY_PATH = tmp/local-repo-pgsql

View file

@ -11,7 +11,7 @@ REPO_INDEXER_ENABLED = true
REPO_INDEXER_PATH = integrations/indexers-sqlite/repos.bleve REPO_INDEXER_PATH = integrations/indexers-sqlite/repos.bleve
[repository] [repository]
ROOT = integrations/gitea-integration-sqlite/gitea-repositories ROOT = {{REPO_TEST_DIR}}integrations/gitea-integration-sqlite/gitea-repositories
[repository.local] [repository.local]
LOCAL_COPY_PATH = tmp/local-repo-sqlite LOCAL_COPY_PATH = tmp/local-repo-sqlite