mirror of
https://github.com/muety/wakapi.git
synced 2023-08-10 21:12:56 +03:00
Merge branch 'upgrade-testing'
This commit is contained in:
commit
db6dde32cd
17
.github/workflows/ci.yml
vendored
17
.github/workflows/ci.yml
vendored
@ -101,3 +101,20 @@ jobs:
|
||||
|
||||
- name: Build
|
||||
run: go build -v .
|
||||
|
||||
migration:
|
||||
name: Migration tests
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Set up Go 1.x
|
||||
uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: ^1.19
|
||||
id: go
|
||||
|
||||
- name: Check out code into the Go module directory
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Run sqlite
|
||||
run: ./testing/run_api_tests.sh sqlite --migration
|
||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -5,6 +5,7 @@ wakapi
|
||||
build
|
||||
*.exe
|
||||
*.db
|
||||
*.zip
|
||||
config*.yml
|
||||
!config.default.yml
|
||||
!testing/config.testing.yml
|
||||
|
@ -1,15 +1,44 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Compiling."
|
||||
CGO_ENABLED=0 go build
|
||||
|
||||
if ! command -v newman &> /dev/null
|
||||
then
|
||||
echo "Newman could not be found. Run 'npm install -g newman' first."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
for i in "$@"; do
|
||||
case $i in
|
||||
--migration)
|
||||
MIGRATION=1
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
script_path=$(realpath "${BASH_SOURCE[0]}")
|
||||
script_dir=$(dirname "$script_path")
|
||||
|
||||
echo "Compiling."
|
||||
(cd "$script_dir/.." || exit 1; CGO_ENABLED=0 go build)
|
||||
|
||||
cd "$script_dir" || exit 1
|
||||
|
||||
# Download previous release (when upgrade testing)
|
||||
initial_run_exe="../wakapi"
|
||||
if [[ $MIGRATION -eq 1 ]]; then
|
||||
if [ ! -f wakapi_linux_amd64.zip ]; then
|
||||
echo "Downloading latest release"
|
||||
curl https://github.com/muety/wakapi/releases/latest/download/wakapi_linux_amd64.zip -O -L
|
||||
fi
|
||||
unzip -o wakapi_linux_amd64.zip
|
||||
initial_run_exe="./wakapi"
|
||||
echo "Running tests with release version"
|
||||
fi
|
||||
|
||||
# Initialise test data
|
||||
case $1 in
|
||||
sqlite|*)
|
||||
rm -f wakapi_testing.db
|
||||
|
||||
echo "Creating database and schema ..."
|
||||
sqlite3 wakapi_testing.db < schema.sql
|
||||
@ -17,17 +46,32 @@ sqlite3 wakapi_testing.db < schema.sql
|
||||
echo "Importing seed data ..."
|
||||
sqlite3 wakapi_testing.db < data.sql
|
||||
|
||||
echo "Running Wakapi testing instance in background ..."
|
||||
../wakapi -config config.testing.yml &
|
||||
pid=$!
|
||||
config="config.testing.yml"
|
||||
;;
|
||||
esac
|
||||
|
||||
wait_for_wakapi () {
|
||||
counter=0
|
||||
echo "Waiting for Wakapi to come up ..."
|
||||
until $(curl --output /dev/null --silent --get --fail http://localhost:3000/api/health); do
|
||||
until curl --output /dev/null --silent --get --fail http://localhost:3000/api/health; do
|
||||
if [ "$counter" -ge 5 ]; then
|
||||
echo "Waited for 5s, but Wakapi failed to come up ..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
printf '.'
|
||||
sleep 1
|
||||
counter=$((counter+1))
|
||||
done
|
||||
sleep 1
|
||||
printf "\n"
|
||||
}
|
||||
|
||||
echo ""
|
||||
# Run tests
|
||||
echo "Running Wakapi testing instance in background ..."
|
||||
"$initial_run_exe" -config "$config" &
|
||||
pid=$!
|
||||
wait_for_wakapi
|
||||
|
||||
echo "Running test collection ..."
|
||||
newman run "wakapi_api_tests.postman_collection.json"
|
||||
@ -36,7 +80,16 @@ exit_code=$?
|
||||
echo "Shutting down Wakapi ..."
|
||||
kill -TERM $pid
|
||||
|
||||
echo "Deleting database ..."
|
||||
rm wakapi_testing.db
|
||||
# Run upgrade tests
|
||||
if [[ $MIGRATION -eq 1 ]]; then
|
||||
echo "Running migrations with build"
|
||||
../wakapi -config "$config" &
|
||||
pid=$!
|
||||
|
||||
wait_for_wakapi
|
||||
echo "Shutting down Wakapi ..."
|
||||
kill -TERM $pid
|
||||
fi
|
||||
|
||||
echo "Exiting with status $exit_code"
|
||||
exit $exit_code
|
||||
|
Loading…
Reference in New Issue
Block a user