GitHub动作:如何在容器内运行测试

时间:2020-10-15 04:40:56

标签: docker github-actions github-actions-services

我想在容器内运行Django测试用例。 我能够从docker hub提取私有映像。但是当我运行命令进行测试时,它无法运行。

任何人都试图在容器内运行测试用例。

jobs:
test:
container:
  image: abcd
  credentials:
    username: "<username>"
    password: "<password>"

steps:
  - uses: actions/checkout@v2
  - name: Display Python version
    run: |
      python -m pip install --upgrade pip
      pip install -r requirements/dev.txt
  - name: run test
    run: |
      python3 manage.py test
   

1 个答案:

答案 0 :(得分:3)

根据我的经验,我发现使用GitHub的container指令比简单地在运行器本身上运行任何内容(就像在自己的计算机上运行它)引起的混乱更多。

我在GitHub动作上运行的大部分测试都在容器中运行,其中一些需要私有DockerHub映像。

我总是这样做:

  1. 创建一个docker-compose.yml供开发使用,这样我就可以在本地进行测试。
  2. 通常在CI中,您可能希望docker-compose中的内容稍有不同(例如,没有卷映射)-如果是这种情况,我将在{{1}中创建另一个docker-compose.yml }子文件夹。
  3. 我的.ci包含一个docker-compose.yml服务,该服务可以运行我想要的任何测试(或测试套件)。

这是我正在使用的示例GitHub动作文件:

test

当然,这需要设置两个提到的秘密,但是除此之外,我发现此方法是:

  • 可靠
  • 便携式(我以相同的方式轻松地从Travis CI切换了)
  • 与开发环境兼容
  • 易于在本地和CI中理解和复制