From c493431915a04df1c4f50d5ccf45fa2f236a3496 Mon Sep 17 00:00:00 2001 From: Bo-Yi Wu Date: Sun, 16 Jun 2019 14:19:20 +0800 Subject: [PATCH] feat(database): support mysql --- defaults/main.yml | 12 ++++++---- tasks/drone-database.yml | 50 ++++++++++++++++++++++++++++++++++------ tasks/drone-server.yml | 2 +- 3 files changed, 52 insertions(+), 12 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index 7fb415e..01cd3ae 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -16,8 +16,12 @@ drone_runner_capacity: "3" drone_host_port: "8080" drone_database_driver: "sqlite" drone_sqlite_dir: "/var/lib/drone" -drone_postgress_data_dir: "/var/lib/postgresql/data" -drone_postgress_password: "drone" -drone_postgress_user: "drone" -drone_postgress_db: "drone" +drone_postgres_data_dir: "/var/lib/postgresql/data" +drone_postgres_password: "drone" +drone_postgres_user: "drone" +drone_postgres_db: "drone" drone_database_datasource: "" +drone_mysql_data_dir: "/var/lib/mysql/data" +drone_mysql_password: "drone" +drone_mysql_user: "drone" +drone_mysql_db: "drone" diff --git a/tasks/drone-database.yml b/tasks/drone-database.yml index db74716..1059d89 100644 --- a/tasks/drone-database.yml +++ b/tasks/drone-database.yml @@ -1,12 +1,14 @@ --- - name: Creates postgres directory file: - path: "{{ drone_postgress_data_dir }}" + path: "{{ drone_postgres_data_dir }}" state: directory mode: 0755 - register: drone_postgress_data_dir + register: drone_postgres_data_dir + when: drone_database_driver == "postgres" tags: - postgres + - database - name: start postgres for drone ci docker_container: @@ -17,11 +19,45 @@ ports: - "5432:5432" volumes: - - "{{ drone_postgress_data_dir }}:/var/lib/postgresql/data" + - "{{ drone_postgres_data_dir }}:/var/lib/postgresql/data" env: - POSTGRES_PASSWORD: "{{ drone_postgress_password }}" - POSTGRES_USER: "{{ drone_postgress_user }}" - POSTGRES_DB: "{{ drone_postgress_db }}" - when: drone_postgress_data_dir is defined and drone_postgress_data_dir.changed + POSTGRES_PASSWORD: "{{ drone_postgres_password }}" + POSTGRES_USER: "{{ drone_postgres_user }}" + POSTGRES_DB: "{{ drone_postgres_db }}" + when: drone_postgres_data_dir is defined and drone_postgres_data_dir.changed or + drone_database_driver == "postgres" tags: - postgres + - database + +- name: Creates mysql directory + file: + path: "{{ drone_mysql_data_dir }}" + state: directory + mode: 0755 + register: drone_mysql_data_dir + when: drone_database_driver == "mysql" + tags: + - mysql + - database + +- name: start mysql for drone ci + docker_container: + name: mysql + image: mysql:5.7 + state: started + restart_policy: always + ports: + - "3306:3306" + volumes: + - "{{ drone_mysql_data_dir }}:/var/lib/mysqlql/data" + env: + MYSQL_PASSWORD: "{{ drone_mysql_password }}" + MYSQL_USER: "{{ drone_mysql_user }}" + MYSQL_DATABASE: "{{ drone_mysql_db }}" + MYSQL_ROOT_PASSWORD: "{{ drone_mysql_password }}" + when: drone_mysql_data_dir is defined and drone_mysql_data_dir.changed or + drone_database_driver == "mysql" + tags: + - mysql + - database diff --git a/tasks/drone-server.yml b/tasks/drone-server.yml index 598fdb7..ece7c6c 100644 --- a/tasks/drone-server.yml +++ b/tasks/drone-server.yml @@ -48,7 +48,7 @@ - "{{ drone_sqlite_dir }}:/data" env_file: /etc/drone/drone-server.env when: ((drone_server_config is defined and drone_server_config.changed) or - (drone_postgress_data_dir is defined and drone_postgress_data_dir.changed)) and + (drone_postgres_data_dir is defined and drone_postgres_data_dir.changed)) or drone_database_driver != "sqlite" tags: - drone-server