如何在GitHub操作中使用您自己的Makefile? [英] How to use your own Makefile in github actions?

查看:14
本文介绍了如何在GitHub操作中使用您自己的Makefile?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用GitHub操作自动化CI/CD管道。我有一个Makefile,如下所示:

.virtualenv:
    virtualenv -p python3 .virtualenv
    . .virtualenv/bin/activate; 
    pip install -r requirements.txt -r requirements_test.txt

clean:
    find . -name __pycache__ -exec rm -rf {} +
    rm -rf *.egg-info
    rm -rf .virtualenv/


test: .virtualenv
    (. .virtualenv/bin/activate; 
    pycodestyle --max-line-length=79 app test; 
    nosetests --with-coverage --cover-tests --cover-min-percentage=80 --cover-package=app test)

build: test clean

.PHONY: test clean

我要使用GitHub操作自动执行此工作流。我按如下方式设置了GitHub工作流:

name: python-app

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

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - name: build application
      run: make build

我想要的是,当有推送到主或针对主创建公关时,工作流应该被触发。我知道这里给出了一个标准模板来测试Python应用程序:https://docs.github.com/en/actions/guides/building-and-testing-python#testing-your-code,但我想通过我自己的Makefile来做。当我运行此命令时,收到以下错误:

每一步必须定义一个usesrun

这方面的任何线索都将是有帮助的。谢谢

推荐答案

如果要执行当前存储库中的文件,则需要使用actions/checkout

这将允许您访问工作流中的存储库$github_workspace(Github environment variables之一)。

例如,考虑到您的Makefile文件位于存储库的根目录,您将使用如下内容:

   name: python-app

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

   jobs:
    build:
      runs-on: ubuntu-latest
      steps:
      - name: checkout repo
        uses: actions/checkout@v2
      - name: build application
        run: make build

Here是来自个人存储库的另一个工作流示例,如果您要执行特定脚本以执行任何操作,请遵循相同的逻辑。

这篇关于如何在GitHub操作中使用您自己的Makefile?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆