Added MySQL to Github Actions (#1438)

- Uses MariaDB setup from https://firefart.at/post/using-mysql-service-with-github-actions/
- Adds optional MYSQL_PORT env variable to test setup
This commit is contained in:
Risto Lahtela 2020-05-09 10:16:05 +03:00 committed by GitHub
parent 08ea042144
commit f89b4dcf28
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 28 additions and 1 deletions

View File

@ -8,13 +8,37 @@ jobs:
runs-on: ubuntu-latest
services:
mariadb:
image: mariadb:latest
ports:
- 3306
env:
MYSQL_USER: user
MYSQL_PASSWORD: password
MYSQL_DATABASE: test
MYSQL_ROOT_PASSWORD: password
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3
steps:
- uses: actions/checkout@v1
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Verify MariaDB connection
env:
PORT: ${{ job.services.mariadb.ports[3306] }}
run: |
while ! mysqladmin ping -h"127.0.0.1" -P"$PORT" --silent; do
sleep 1
done
- name: Build with Gradle
env:
MYSQL_DB: test
MYSQL_USER: user
MYSQL_PASS: password
MYSQL_PORT: ${{ job.services.mariadb.ports[3306] }}
run: |
cd Plan
./gradlew build

View File

@ -28,6 +28,7 @@ public class CIProperties {
// (To prevent outside connections with CI user)
public static final String MYSQL_USER = "MYSQL_USER";
public static final String MYSQL_PASS = "MYSQL_PASS";
public static final String MYSQL_PORT = "MYSQL_PORT";
public static final String CHROME_DRIVER = "CHROMEDRIVER";
private CIProperties() {

View File

@ -35,7 +35,7 @@ import java.util.Optional;
public class DBPreparer {
private final PlanSystem system;
private int testPortNumber;
private final int testPortNumber;
public DBPreparer(PlanSystem system, int testPortNumber) {
this.system = system;
@ -69,6 +69,7 @@ public class DBPreparer {
String database = System.getenv(CIProperties.MYSQL_DATABASE);
String user = System.getenv(CIProperties.MYSQL_USER);
String pass = System.getenv(CIProperties.MYSQL_PASS);
String port = System.getenv(CIProperties.MYSQL_PORT);
if (Verify.containsNull(database, user)) {
return Optional.empty();
}
@ -84,6 +85,7 @@ public class DBPreparer {
config.set(DatabaseSettings.MYSQL_USER, user);
config.set(DatabaseSettings.MYSQL_PASS, pass != null ? pass : "");
config.set(DatabaseSettings.MYSQL_HOST, "127.0.0.1");
config.set(DatabaseSettings.MYSQL_PORT, port != null ? port : "3306");
config.set(DatabaseSettings.TYPE, dbName);
return Optional.of(formattedDatabase);
}