首页 > 解决方案 > 如何设置 GitHub 操作以使用 mysql 数据库运行 Spring Boot 项目?

问题描述

我正在尝试设置一个 GitHub Action,它能够测试我的 Spring Boot 项目是否在每次提交后编译。Spring 项目连接到 MySQL 数据库。我创建了以下工作流文件。

# This workflow will build a Java project with Gradle
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle

name: Java CI with Gradle

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest
    
    services:
      mysql:
        image: mysql:5.7
        env:
          MYSQL_DATABASE: jeremyuniversity
          MYSQL_ALLOW_EMPTY_PASSWORD: yes
        ports:
        - 3306
        options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3

    steps:
    - uses: actions/checkout@v2
    - name: Set up JDK 1.14
      uses: actions/setup-java@v1
      with:
        java-version: 14.0.2
      env:
        database.password: 
    - name: Grant execute permission for gradlew
      run: chmod +x gradlew
    - name: Build with Gradle
      run: ./gradlew build  --stacktrace

然而,构建总是失败并出现以下错误。

JeremyUniversityApplicationTests > testGetStudents() FAILED
    java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:132
        Caused by: org.springframework.beans.factory.BeanCreationException at BeanDefinitionValueResolver.java:342
            Caused by: org.springframework.beans.factory.BeanCreationException at AbstractAutowireCapableBeanFactory.java:1794
                Caused by: org.hibernate.service.spi.ServiceException at AbstractServiceRegistryImpl.java:275
                    Caused by: org.hibernate.HibernateException at DialectFactoryImpl.java:100

环境变量 database.password 用于在 application.properties 文件中设置数据库密码。是什么导致这个错误被抛出?

完整代码:https ://github.com/rustylocks79/jeremyuniversity.git

标签: mysqlspring-bootgithubgithub-actions

解决方案


推荐阅读