我在.github/workflows/main.yaml上有此代码
window.top.location.href = "http://www.example.com";
这项工作的主要思想是在容器模式下运行所有步骤。不在Linux主机模式下。
在同一存储库下,我有一个名为ruby-rimy-2.6.3的公共Docker映像。由于它不是在DockerHub上公开托管的,所以我找不到一种以编程方式向GitHub Packages / Registry进行身份验证的方法。
我确实尝试了不同的语法(请参见下面的代码),但是没有用。
# .github/workflows/main.yaml
name: CI Workflow
on: [push]
jobs:
rspec-job:
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
container:
image: I-stucked-here
volumes:
- /vendor/bundle
steps:
- code omitted for brevity
在文档中,GitHub表示# .github/workflows/main.yaml
name: CI Workflow
on: [push]
jobs:
rspec-job:
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
container:
image: docker://docker.pkg.github.com/zulhfreelancer/rimy/ruby-rimy-2.6.3:latest
volumes:
- /vendor/bundle
steps:
- code omitted for brevity
在作业运行时可用。我如何使用此GITHUB_TOKEN
环境变量在其上运行类似GITHUB_TOKEN
的内容
docker login
部分,以便作业能够拉出图像?
使用GitHub个人令牌对我来说不是一种选择,因为在将相同的内容应用于我的GitHub组织之前,该存储库只是我的实验存储库。我不想将我的个人令牌放在组织的存储库环境变量/秘密下,而这只会将我的个人令牌公开给我的同事。
答案 0 :(得分:0)
您无需使用import pandas as pd
import os
import glob
path = '/path/to/my/files/'
filelist = glob.glob(path + "/*.csv")
frame = pd.concat([pd.read_csv(file,names=['name', 'product', 'quantity']) for file in filelist])
指令即可在容器中运行测试。
GitHub Actions主机安装了docker和docker-compose。我这样做的方法是在我的存储库中有一个container
,其中包括一个运行测试的“服务”。然后,您的工作流程需要执行docker-compose.yml
并只需运行docker login
命令。
请注意,此方法的优点在于,您的测试在您自己的计算机和CI机器上执行的方式完全相同。完全相同的步骤。
遵循以下原则:
docker-compose run test
我正在使用DockerHub进行相同的操作,非常轻松且成功。
当然,如果您不想使用docker-compose,在登录步骤中正确登录后,仍然可以使用任何普通的name: Test
on:
pull_request:
push: { branches: master }
jobs:
test:
name: Run test suite
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Docker login
run: echo ${GITHUB_TOKEN} | docker login -u ${GITHUB_ACTOR} --password-stdin docker.pkg.github.com
- name: Build docker images
run: docker-compose build
- name: Run tests
run: docker-compose run test
命令。
我不确定docker run ...
命令是否可以正常使用,请参阅以下内容进行更深入的讨论: