diff --git a/.github/actions/setup-database/action.yml b/.github/actions/setup-database/action.yml new file mode 100644 index 0000000000..b580d65e03 --- /dev/null +++ b/.github/actions/setup-database/action.yml @@ -0,0 +1,85 @@ +# evennia/setup-database + +# Use this action in a workflow for when you need to do initialization of database services +# (such as with PostgreSQL and MySQL) before you initiate unit tests that will employ that +# database service. + +# NOTE: This action was intended for use with the core Evennia workflows ONLY. + +name: Set up Evennia database service +author: dvoraen +description: "Activates the database server for the passed in service and ensures it's ready for use." + +inputs: + database: + description: "Database service being initialized." + required: true + +runs: + using: "composite" + + steps: + - name: Set up PostgreSQL server + if: ${{ inputs.database == 'postgresql' }} + uses: harmon758/postgresql-action@v1 + with: + postgresql version: "11" + postgresql db: "evennia" + postgresql user: "evennia" + postgresql password: "password" + + - name: Wait for PostgreSQL to activate + if: ${{ inputs.database == 'postgresql' }} + run: | + while ! pg_isready -h 127.0.0.1 -q >/dev/null 2>&1 + do + sleep 1 + echo -n . + done + echo + shell: bash + + - name: Set up MySQL server + if: ${{ inputs.database == 'mysql' }} + uses: mirromutth/mysql-action@v1.1 + with: + host port: 3306 + # character set server: "utf8mb4" + # collation server: "utf8mb4_unicode_ci" + character set server: "utf8" + collation server: "utf8_general_ci" + mysql database: "evennia" + mysql user: "evennia" + mysql password: "password" + mysql root password: root_password + + - name: Wait for MySQL to activate + if: ${{ inputs.database == 'mysql' }} + run: | + while ! mysqladmin ping -h 127.0.0.1 -u root -proot_password -s >/dev/null 2>&1 + do + sleep 1 + echo -n . + done + echo + shell: bash + + - name: Set up MySQL Privileges + if: ${{ inputs.database == 'mysql' }} + run: | + cat <