summaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2021-10-15 14:50:51 +0200
committerBadlop <badlop@process-one.net>2021-10-15 16:59:32 +0200
commit4d384b6bf58f8bf68531cee35c3cb394d63e73a3 (patch)
treea271d6f2fb7bc20c347e0144dca3387768c95a2c /.github
parentWhen tests fail, show also error.log as it may have meaningful content (diff)
If tests succeed, test also new SQL schema
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/ci.yml47
1 files changed, 47 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 634bd2a1..7baa5790 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -181,6 +181,53 @@ jobs:
"payload":{"build_num":$GITHUB_RUN_ID,
"status":"done"}}'
+ - name: Prepare new schema
+ run: |
+ [[ -d logs ]] && rm -rf logs
+ [[ -d _build/test/logs ]] && rm -rf _build/test/logs
+ mysql -u root -proot -e "DROP DATABASE ejabberd_test;"
+ sudo -u postgres psql -c "DROP DATABASE ejabberd_test;"
+ mysql -u root -proot -e "CREATE DATABASE ejabberd_test;"
+ mysql -u root -proot -e "GRANT ALL ON ejabberd_test.*
+ TO 'ejabberd_test'@'localhost';"
+ mysql -u root -proot ejabberd_test < sql/mysql.new.sql
+ sudo -u postgres psql -c "CREATE DATABASE ejabberd_test;"
+ sudo -u postgres psql ejabberd_test -f sql/pg.new.sql
+ sudo -u postgres psql -c "GRANT ALL PRIVILEGES
+ ON DATABASE ejabberd_test TO ejabberd_test;"
+ sudo -u postgres psql ejabberd_test -c "GRANT ALL PRIVILEGES ON ALL
+ TABLES IN SCHEMA public
+ TO ejabberd_test;"
+ sudo -u postgres psql ejabberd_test -c "GRANT ALL PRIVILEGES ON ALL
+ SEQUENCES IN SCHEMA public
+ TO ejabberd_test;"
+ sudo sed -i 's|new_schema, false|new_schema, true|g' test/suite.erl
+ - run: CT_BACKENDS=mysql,pgsql make test
+ - name: Check results
+ if: always()
+ run: |
+ [[ -d _build ]] && ln -s _build/test/logs/ logs \
+ || ln dialyzer/error.log logs/dialyzer.log
+ ln `find logs/ -name suite.log` logs/suite.log
+ grep 'TEST COMPLETE' logs/suite.log
+ grep -q 'TEST COMPLETE,.* 0 failed' logs/suite.log
+ test $(find logs/ -empty -name error.log)
+ - name: View full suite.log
+ run: cat logs/suite.log
+ - name: View suite.log failures
+ if: failure()
+ run: cat logs/suite.log | awk
+ 'BEGIN{RS="\n=case";FS="\n"} /=result\s*failed/ {print "=case" $0}'
+ - name: View full ejabberd.log
+ if: failure()
+ run: find logs/ -name ejabberd.log -exec cat '{}' ';'
+ - name: View error.log
+ if: failure()
+ run: find logs/ -name error.log -exec cat '{}' ';'
+ - name: View exunit.log
+ if: failure()
+ run: find logs/ -name exunit.log -exec cat '{}' ';'
+
binaries:
name: Binaries
needs: [tests]