【问题标题】:Github action with MySQL test database使用 MySQL 测试数据库的 Github 操作
【发布时间】:2021-05-01 00:01:12
【问题描述】:

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

【问题讨论】:

    标签: mysql docker github continuous-integration


    【解决方案1】:

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

    【讨论】:

      【解决方案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
      

      【讨论】:

      • 直接一步运行容器与使用github的“服务容器”有优缺点吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-23
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      • 2021-06-26
      • 2020-10-26
      • 1970-01-01
      相关资源
      最近更新 更多