diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 000000000..4a50c7f52
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,81 @@
+name: test
+
+on:
+ push:
+
+jobs:
+ test:
+ env:
+ DB: mysql
+ DB_USER: root
+ runs-on: ubuntu-18.04
+ strategy:
+ fail-fast: false
+ matrix:
+ php:
+ - '5.6'
+ - '7.2'
+ - '7.3'
+ - '7.4'
+# - '8.0'
+# - '8.1'
+ composer:
+ - ''
+ - '--prefer-lowest'
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Use PHP
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php }}
+ extensions: sqlite3, zip
+ coverage: xdebug
+ tools: composer:v1
+
+ - name: Get Composer Cache Directory
+ id: composer-cache
+ run: |
+ echo "::set-output name=dir::$(composer config cache-dir)"
+ working-directory: ./
+
+ - name: cache dependencies
+ id: cache-dependencies
+ uses: actions/cache@v1
+ with:
+ path: ${{ steps.composer-cache.outputs.dir }}
+ key: ${{ runner.os }}-${{ matrix.php }}-${{ matrix.composer }}-composer-${{ hashFiles('**/composer.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-${{ matrix.php }}-${{ matrix.composer }}-composer-
+
+ - name: Validate composer.json and composer.lock
+ run: composer validate
+ working-directory: ./
+
+ - name: Install dependencies
+ env:
+ COMPOSER_AUTH: ${{ secrets.COMPOSER_AUTH }}
+ COMPOSER_FLAGS: ${{ matrix.composer }}
+ run: composer update ${COMPOSER_FLAGS} --prefer-source
+ working-directory: ./
+
+ - name: Start MySQL
+ run: |
+ sudo systemctl start mysql
+ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -proot mysql
+
+ - name: Disable MySQL strict mode
+ run: |
+ echo "SET GLOBAL sql_mode = ''" | mysql -u root -proot mysql
+
+ - name: setup database
+ run: |
+ sh -c "if [ '$DB' = 'mysql' ]; then mysql -u root -proot mysql -e 'SET FOREIGN_KEY_CHECKS = 0; DROP DATABASE IF EXISTS test; DROP SCHEMA IF EXISTS second_hand_books; DROP SCHEMA IF EXISTS contest; DROP DATABASE IF EXISTS reverse_bookstore; DROP SCHEMA IF EXISTS bookstore_schemas; SET FOREIGN_KEY_CHECKS = 1;'; fi"
+ sh -c "if [ '$DB' = 'mysql' ]; then mysql -u root -proot mysql -e 'CREATE DATABASE test; CREATE SCHEMA bookstore_schemas; CREATE SCHEMA contest; CREATE SCHEMA second_hand_books; CREATE DATABASE reverse_bookstore;'; fi"
+ ./test/reset_tests.sh
+ working-directory: ./
+
+ - name: Run Tests
+ run: vendor/bin/phpunit
+ working-directory: ./
diff --git a/test/fixtures/bookstore/build.properties b/test/fixtures/bookstore/build.properties
index 23b1d04c2..681bb7540 100644
--- a/test/fixtures/bookstore/build.properties
+++ b/test/fixtures/bookstore/build.properties
@@ -19,7 +19,7 @@ propel.schema.autoPrefix = true
# For MySQL or Oracle, you also need to specify username & password
propel.database.user = root
-#propel.database.password = [db password]
+propel.database.password = root
# Note that if you do not wish to specify the database (e.g. if you
# are using multiple databases) you can use the @DB@ token which
diff --git a/test/fixtures/bookstore/runtime-conf.xml b/test/fixtures/bookstore/runtime-conf.xml
index f3fa856a8..da5f43269 100644
--- a/test/fixtures/bookstore/runtime-conf.xml
+++ b/test/fixtures/bookstore/runtime-conf.xml
@@ -21,7 +21,7 @@
For MySQL and Oracle you must specify username + password separate from DSN:
-->
root
-
+ root
@@ -56,7 +56,7 @@
For MySQL and Oracle you must specify username + password separate from DSN:
-->
root
-
+ root
@@ -78,7 +78,7 @@
For MySQL and Oracle you must specify username + password separate from DSN:
-->
root
-
+ root
diff --git a/test/fixtures/namespaced/build.properties b/test/fixtures/namespaced/build.properties
index de605d4ad..b3426f6d7 100644
--- a/test/fixtures/namespaced/build.properties
+++ b/test/fixtures/namespaced/build.properties
@@ -18,7 +18,7 @@ propel.disableIdentifierQuoting=true
# For MySQL or Oracle, you also need to specify username & password
propel.database.user = root
-#propel.database.password = [db password]
+propel.database.password = root
# Note that if you do not wish to specify the database (e.g. if you
# are using multiple databases) you can use the @DB@ token which
diff --git a/test/fixtures/namespaced/runtime-conf.xml b/test/fixtures/namespaced/runtime-conf.xml
index 2c351913e..d99174c89 100644
--- a/test/fixtures/namespaced/runtime-conf.xml
+++ b/test/fixtures/namespaced/runtime-conf.xml
@@ -21,7 +21,7 @@
For MySQL and Oracle you must specify username + password separate from DSN:
-->
root
-
+ root
diff --git a/test/fixtures/nestedset/runtime-conf.xml b/test/fixtures/nestedset/runtime-conf.xml
index 5ec3bbce1..802c76043 100644
--- a/test/fixtures/nestedset/runtime-conf.xml
+++ b/test/fixtures/nestedset/runtime-conf.xml
@@ -45,7 +45,7 @@
sqlite
sqlite:/var/tmp/nestedset.db
-
+ root
diff --git a/test/fixtures/reverse/mysql/build.properties b/test/fixtures/reverse/mysql/build.properties
index 05aaad78a..57db39b7c 100644
--- a/test/fixtures/reverse/mysql/build.properties
+++ b/test/fixtures/reverse/mysql/build.properties
@@ -17,7 +17,7 @@ propel.database.url = mysql:dbname=reverse_bookstore
# For MySQL or Oracle, you also need to specify username & password
propel.database.user = root
-#propel.database.password = [db password]
+propel.database.password = root
propel.mysql.tableType = InnoDB
diff --git a/test/fixtures/reverse/mysql/runtime-conf.xml b/test/fixtures/reverse/mysql/runtime-conf.xml
index c328761a3..39a8d0dea 100644
--- a/test/fixtures/reverse/mysql/runtime-conf.xml
+++ b/test/fixtures/reverse/mysql/runtime-conf.xml
@@ -19,7 +19,7 @@
For MySQL and Oracle you must specify username + password separate from DSN:
-->
root
-
+ root
diff --git a/test/fixtures/reverse/pgsql/runtime-conf.xml b/test/fixtures/reverse/pgsql/runtime-conf.xml
index d060ce54a..aee1ab4c4 100644
--- a/test/fixtures/reverse/pgsql/runtime-conf.xml
+++ b/test/fixtures/reverse/pgsql/runtime-conf.xml
@@ -18,7 +18,7 @@
diff --git a/test/fixtures/schemas/build.properties b/test/fixtures/schemas/build.properties
index 545840036..46ba085ef 100644
--- a/test/fixtures/schemas/build.properties
+++ b/test/fixtures/schemas/build.properties
@@ -14,6 +14,7 @@ propel.project = bookstore
propel.database = mysql
propel.database.url = mysql:dbname=test
propel.database.user = root
+propel.database.password = root
propel.mysql.tableType = InnoDB
propel.disableIdentifierQuoting = true
propel.schema.autoPrefix = true
diff --git a/test/fixtures/schemas/runtime-conf.xml b/test/fixtures/schemas/runtime-conf.xml
index 76f894101..fc6f5d58f 100644
--- a/test/fixtures/schemas/runtime-conf.xml
+++ b/test/fixtures/schemas/runtime-conf.xml
@@ -19,7 +19,7 @@
For MySQL and Oracle you must specify username + password separate from DSN:
-->
root
-
+ root
diff --git a/test/fixtures/treetest/runtime-conf.xml b/test/fixtures/treetest/runtime-conf.xml
index 0996495e0..274bd1c1c 100644
--- a/test/fixtures/treetest/runtime-conf.xml
+++ b/test/fixtures/treetest/runtime-conf.xml
@@ -45,7 +45,7 @@
sqlite
sqlite:/var/tmp/treetest.db
-
+ root