GitHub Actions:从“use”语句访问服务

GitHub Actions: access service from an 'use' statement

提问人:Maxxer 提问时间:7/18/2023 更新时间:7/19/2023 访问量:29

问:

我有一个小的工作流程来测试我的应用程序。它需要MySQL,我将其用作服务,因此我可以指定我想要的版本。测试贯穿始终,我不得不分叉和自定义官方映像,添加一些我需要的命令。phing

Phing 目标运行一些命令,例如将数据导入 MySQL 数据库。“运行 phing 测试”步骤似乎无法连接到实例。maindb

根据文档:

服务容器的主机名会自动映射到标签名称。例如,如果创建带有标签 redis 的服务容器,则该服务容器的主机名为 。redis

但该操作具有以下输出:

[echo] mysql -udbuser -p --port=3306 -hmaindb dbname -e 'source ./data/sql/testing.create.sql'
ERROR 2005 (HY000): Unknown server host 'maindb' (-3)

这是我的工作流程定义:

name: Unit tests
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
on:
  push:
    branches:
      - production

jobs:
  phpunit:
    runs-on: ubuntu-20.04
    timeout-minutes: 15

    services:
      maindb:
        image: mysql:5.7
        env:
          # Values from build/properties/default.properties
          MYSQL_DATABASE: dbname
          MYSQL_USER: dbuser
          MYSQL_PASSWORD: dbpass
        ports:
          - 3306:3306
    steps:
...
      - name: Run phing tests
        uses: maxxer/phing-github-action@main
        with:
            targets: runtests

如何允许phing-github-action镜像访问MySQL服务?谢谢

GitHub-Actions PHING

评论


答:

0赞 Maxxer 7/19/2023 #1

我在带有运行状况检查的MySQL服务定义中缺少options标签。工作定义如下:

    services:
      maindb:
        image: mysql:5.7
        env:
          MYSQL_DATABASE: dbname
          MYSQL_USER: dbuser
          MYSQL_PASSWORD: dbpass
          MYSQL_RANDOM_ROOT_PASSWORD: yes
        ports:
          - 3306:3306
        options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3

我还必须包括工作。MYSQL_RANDOM_ROOT_PASSWORDmysqladmin