[ISSUE #32] Set up GitHub MySQL workflow to support unit test (#35)

* Set up MySQL according to https://stackoverflow.com/questions/72294279/how-to-connect-to-mysql-databas-using-github-actions

* Set up MySQL according to https://medium.com/@michaelmatere606/configuring-mysql-for-github-actions-a-step-by-step-guide-f49e0a7aeedc and https://ovirium.com/blog/how-to-make-mysql-work-in-your-github-actions/

* Change password according to https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md

* Fit database name with `_` instead of `-`

* Use the `service` sector instead of starting the mysql service of GitHub's ubuntu image
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 76dd28e..f16cdb5 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -36,6 +36,19 @@
         language: ['java']
     runs-on: ${{ matrix.os }}
 
+    services:
+      mysql:
+        image: mysql:8
+        env:
+          # The MySQL docker container requires these environment variables to be set, so we can create and migrate the test database.
+          MYSQL_DATABASE: EVENTMESH_DASHBOARD
+          MYSQL_ROOT_PASSWORD: password
+        ports:
+          # https://docs.github.com/en/actions/using-containerized-services/about-service-containers
+          - 3306:3306
+        # Set health checks to wait until MySQL has started
+        options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
+
     steps:
       - name: Checkout repository
         uses: actions/checkout@v3