Github 对 MySQL 测试数据库的操作

Github action with MySQL test database

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

您可以使用 GitHub Actions 服务容器连接到 mysql 等数据库。您可以在 https://docs.github.com/en/actions/guides/about-service-containers

找到详细信息

我认为这个脚本可以帮助人们使用 MySQL 数据库和 .sql 脚本文件进行单元测试,以加载 table 模式和 Github 操作上的数据.我在 Mysql 中使用 Codeigniter 4。但是只要您使用 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