mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-13 18:03:10 -06:00
Untangle precommit and travis test scripts
This commit is contained in:
parent
c78d9a5952
commit
890bd9cf19
|
|
@ -24,8 +24,8 @@ before_script:
|
|||
- openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt -days 365 -nodes -subj /CN=localhost
|
||||
|
||||
script:
|
||||
- ./travis-install-kafka.sh
|
||||
- ./travis-test.sh
|
||||
- ./scripts/install-local-kafka.sh
|
||||
- ./scripts/travis-test.sh
|
||||
|
||||
notifications:
|
||||
webhooks:
|
||||
|
|
|
|||
|
|
@ -2,33 +2,4 @@
|
|||
|
||||
set -eu
|
||||
|
||||
# Tune the GC to use more memory to reduce the number of garbage collections
|
||||
export GOGC=400
|
||||
export GOPATH="$(pwd):$(pwd)/vendor"
|
||||
export PATH="$PATH:$(pwd)/vendor/bin:$(pwd)/bin"
|
||||
|
||||
echo "Checking that it builds"
|
||||
gb build
|
||||
|
||||
# Check that all the packages can build.
|
||||
# When `go build` is given multiple packages it won't output anything, and just
|
||||
# checks that everything builds. This seems to do a better job of handling
|
||||
# missing imports than `gb build` does.
|
||||
echo "Double checking it builds..."
|
||||
go build github.com/matrix-org/dendrite/cmd/...
|
||||
|
||||
echo "Installing lint search engine..."
|
||||
go install github.com/alecthomas/gometalinter/
|
||||
gometalinter --config=linter.json ./... --install
|
||||
|
||||
echo "Looking for lint..."
|
||||
gometalinter --config=linter.json ./... --enable-gc
|
||||
|
||||
echo "Double checking spelling..."
|
||||
misspell -error src *.md
|
||||
|
||||
echo "Testing..."
|
||||
gb test
|
||||
|
||||
|
||||
echo "Done!"
|
||||
./scripts/build-test-lint.sh
|
||||
|
|
|
|||
21
scripts/README.md
Normal file
21
scripts/README.md
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
# Dev Scripts
|
||||
|
||||
These are a collection of scripts that should be helpful for those developing
|
||||
on dendrite.
|
||||
|
||||
- `./scripts/find-lint.sh` runs the linters against dendrite,
|
||||
`./scripts/find-lint.sh fast` runs a subset of faster lints
|
||||
- `./scripts/build-test-lint.sh` builds, tests and lints dendrite, and
|
||||
should be run before pushing commits
|
||||
- `./scripts/install-local-kafka.sh` downloads, installs and runs a
|
||||
kafka instance
|
||||
- `./scripts/travis-test.sh` is what travis runs
|
||||
|
||||
|
||||
The linters can take a lot of resources and are slow, so they can be
|
||||
configured using two enviroment variables:
|
||||
|
||||
- `DENDRITE_LINT_CONCURRENCY` - number of concurrent linters to run,
|
||||
gometalinter defaults this to 8
|
||||
- `DENDRITE_LINT_DISABLE_GC` - if set then the the go gc will be disabled
|
||||
when running the linters, speeding them up but using much more memory.
|
||||
27
scripts/build-test-lint.sh
Executable file
27
scripts/build-test-lint.sh
Executable file
|
|
@ -0,0 +1,27 @@
|
|||
#! /bin/bash
|
||||
|
||||
set -eu
|
||||
|
||||
export GOPATH="$(pwd):$(pwd)/vendor"
|
||||
export PATH="$PATH:$(pwd)/vendor/bin:$(pwd)/bin"
|
||||
|
||||
echo "Checking that it builds"
|
||||
gb build
|
||||
|
||||
# Check that all the packages can build.
|
||||
# When `go build` is given multiple packages it won't output anything, and just
|
||||
# checks that everything builds. This seems to do a better job of handling
|
||||
# missing imports than `gb build` does.
|
||||
echo "Double checking it builds..."
|
||||
go build github.com/matrix-org/dendrite/cmd/...
|
||||
|
||||
./scripts/find-lint.sh
|
||||
|
||||
echo "Double checking spelling..."
|
||||
misspell -error src *.md
|
||||
|
||||
echo "Testing..."
|
||||
gb test
|
||||
|
||||
|
||||
echo "Done!"
|
||||
32
scripts/find-lint.sh
Executable file
32
scripts/find-lint.sh
Executable file
|
|
@ -0,0 +1,32 @@
|
|||
#! /bin/bash
|
||||
|
||||
set -eu
|
||||
|
||||
export GOPATH="$(pwd):$(pwd)/vendor"
|
||||
export PATH="$PATH:$(pwd)/vendor/bin:$(pwd)/bin"
|
||||
|
||||
args=""
|
||||
if [ ${1:-""} = "fast" ]
|
||||
then args="--config=linter-fast.json"
|
||||
else args="--config=linter.json"
|
||||
fi
|
||||
|
||||
if [ -n "${DENDRITE_LINT_CONCURRENCY:-}" ]
|
||||
then args="$args --concurrency=$DENDRITE_LINT_CONCURRENCY"
|
||||
fi
|
||||
|
||||
if [ -z "${DENDRITE_LINT_DISABLE_GC:-}" ]
|
||||
then args="$args --enable-gc"
|
||||
fi
|
||||
|
||||
echo "Installing lint search engine..."
|
||||
go install github.com/alecthomas/gometalinter/
|
||||
gometalinter --config=linter.json ./... --install
|
||||
|
||||
echo "Looking for lint..."
|
||||
gometalinter ./... $args
|
||||
|
||||
echo "Double checking spelling..."
|
||||
misspell -error src *.md
|
||||
|
||||
echo "Done!"
|
||||
|
|
@ -2,6 +2,9 @@
|
|||
|
||||
set -eu
|
||||
|
||||
# Tune the GC to use more memory to reduce the number of garbage collections
|
||||
export GOGC=400
|
||||
|
||||
# Check that the servers build (this is done explicitly because `gb build` can silently fail (exit 0) and then we'd test a stale binary)
|
||||
gb build github.com/matrix-org/dendrite/cmd/dendrite-room-server
|
||||
gb build github.com/matrix-org/dendrite/cmd/roomserver-integration-tests
|
||||
|
|
@ -13,7 +16,7 @@ gb build github.com/matrix-org/dendrite/cmd/mediaapi-integration-tests
|
|||
gb build github.com/matrix-org/dendrite/cmd/client-api-proxy
|
||||
|
||||
# Run the pre commit hooks
|
||||
./hooks/pre-commit
|
||||
DENDRITE_LINT_DISABLE_GC=1 ./scripts/build-test-lint.sh
|
||||
|
||||
# Run the integration tests
|
||||
bin/roomserver-integration-tests
|
||||
Loading…
Reference in a new issue