使用 MySQL 测试数据库进行 Github 操作

sfs*_*797 5 mysql continuous-integration github docker

我有一个与在 docker 中开发的 Mysql 连接的 CodeIgniter Web 应用程序。我想在 ci/cd 管道的 GitHub 操作中进行一些单元测试。问题是有些功能需要从Mysql数据库查询数据。那么我是否可以知道是否有一种方法可以在 Github 操作上设置 MySQL 实例并运行一些 .sql 文件,以便我的测试数据位于数据库中?

sfs*_*797 2

我认为这个脚本可以帮助人们使用 MySQL 数据库和 .sql 脚本文件进行单元测试,以加载 Github 操作上的表架构和数据。我正在使用 Codeigniter 4 和 Mysql。但只要您使用 MySQL,设置数据库的过程就会类似。

name:  CI Pipeline

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:

  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Build the Docker image
      run: docker-compose build

    - name: up mysql and apache container runs
      run: docker-compose up -d

     #I am using codeIgniter4
    - name: install dependencies
      run: docker exec  CI4_1 php composer.phar install

    - name: buffering time for db container
      uses: jakejarvis/wait-action@master
      with:
        time: '30s'

    #db_1 is the name of database
    - name: load database
      run: docker exec -i mysql_1  mysql -uroot  -proot  db_1< ./testDatabase.sql

   

    - name: unit test
      run: docker exec  CI4_1  ./vendor/bin/phpunit
Run Code Online (Sandbox Code Playgroud)