百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

手把手系列之零基础:Github Actions使用入门

liuian 2025-01-03 17:19 62 浏览

之前在github上使用CI/CD我们通常使用的是travis,现在我们多了一个选择,那就是官方的Github Actions。

下面我们简单介绍一下如何使用Github Actions。

这里我们先简单介绍一下一些基本的概念。

  1. actions,一个action代表一个独立的任务(individual task)
  2. 一个或多个actions组成一个工作流(workflow)
  3. 一个工作流由多个jobs组成(个人感觉其实job就等同于action)
  4. 一个 job包含一个或多个步骤(steps)

workflow以yaml文件的格式存储在你代码.github/workflows/目录下。文件名必须以yml或yaml结尾。可以有多个yaml文件。

这里还是使用我们之前一直使用的示例代码来演示,地址https://github.com/zhuyijing/fastapisvc

首先点击Actions:

选择Python Application作为我们的模板:

点击Setup this workflow之后会跳转到以下页面:

我们来看一下生成的yaml文件,我在其中添加了一些注释:

# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: Python application

# 当有commit push到master branch或者有提交PR到master branch时触发
on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:
    # 在最新的ubuntu版本上运行
    runs-on: ubuntu-latest

    steps:
    # 第一步调用官方的action checkout代码
    - uses: actions/checkout@v2
    # 第二步setup Python环境
    - name: Set up Python 3.8
      uses: actions/setup-python@v2
      with:
        python-version: 3.8
    # 第三步从requirements安装依赖,并安装lint工具
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install flake8 pytest
        if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
    # 第四步运行lint
    - name: Lint with flake8
      run: |
        # stop the build if there are Python syntax errors or undefined names
        flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
        # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
        flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
    
         - name: Test with pytest
      run: |
        pytest

好了,我们现在点击Start commit来提交刚刚生成的yaml文件。

可以看到yaml文件已经被提交到版本库中了:

点击repo的名字,回到repo的首页:

这里可以看到,我们刚刚提交的commit(也就是刚刚提交的workflow yaml)运行失败了。我们点击红色的叉叉,然后点击Details:

这里可以看到pytest运行失败了,这是因为我们的repo里面没有编写测试用例。这里我们来修改一下workflow的yaml文件,删除掉pytest:

点击上图红色框中的笔图标进入编辑:

删除掉pytest的那几行,然后点击Start commit:

再次回到repo的首页,等待一会儿,刷新一下,可以看到刚才提交的Action已经通过了:

是不是很简单。

下面我们来试一下,把他编译成docker image并且上传到Docker Hub。这里你需要提前注册好你的Docker Hub账号,具体怎么注册可以参考我之前发布的文章。

下面,我们首先来注册一下github的secrets,secrets是你需要在workflow中用到,但是又不方便直接写在yaml中的一些数据,如用户名,密码。

同样在你饿项目首页,一次点击 setting,secrets,New secret:

依次添加2个secrets,DOCKER_HUB_USER & DOCKER_HUB_PASSWORD:

添加完你可以看到你所添加的secrets:

好了,我们现在再次编辑.github/workflows/pythonapp.yml文件:

在Marketplace下面的搜索框输入Docker,然后点击第一个Build and push docker images:

点击上图中的复制图标,然后在代码粘贴到左边的文件中,删除其中大部分的选项,只保留如下代码:

- name: Build and push Docker images
  uses: docker/build-push-action@v1.1.0
  with:
    username: ${{ secrets.DOCKER_HUB_USER }}
    password: ${{ secrets.DOCKER_HUB_PASSWORD }}
    repository: zhuyijing/myfirstrepo
    tags: latest

注意把repository替换成你自己的repository。修改完的文件如下图:

点击上图中的Start commit,返回到repo首页,你会看到刚刚的提交前面有一个黄色的小点,表示actions正在运行:

稍等一会儿刷新页面:

可以看到Action已经运行成功了,点击绿色小勾,然后点击Details,可以看到我们刚刚添加的task也运行成功了:

登录到你的Docker Hub,可以看到image也已经push上来了。

通过以上的配置,这样以后每次有push、PR到master branch上都会触发Actions进行lint检查并push最新的image到Docker Hub上。

是不是很简单呢。官方的Marketplace提供了非常多的有用的actions,常用的都有。基本不需要我们手动编写很多的yaml。使用起来十分的方便。

赶紧试试吧。

PS:点击Actions可以看到每次的运行结果:

相关推荐

路由器恢复出厂设置会怎么样

现在的很多路由器都很智能化,我们在日常使用的时候,很多时候出现卡死或者忘记了路由器的登录密码等问题,这个时候我们就需要对路由器进行重置或者是恢复出厂设置,这样就可以用初始化的用户名和密码登录路由器了...

电脑密码忘了如何取消开机密码

1/5第一种方法:在开机时,按下F8进入带命令提示符的安全"模式输入"netuser+用户名+123456/add"可把自己的密码设置为"123456",这样进入控制面板就可以清除自己用户密码了。...

安卓手机exe文件怎么打开(安卓手机用什么打开exe文件)

在Android操作系统中,通常情况下是无法直接运行.exe文件的,因为Android手机和Windows操作系统在底层架构上存在较大差异。不过,有一些方法可以让Android手机...

声卡怎么安装在电脑主机上(声卡怎么插到电脑上)

安装电脑主机的声卡通常需要进行以下步骤:1.确认声卡的类型:首先,确定您要安装的声卡类型,是内置声卡还是外部插卡声卡。内置声卡通常已经集成在主板上,而外部插卡声卡需要插入主板的PCIe插槽或其他的扩...

hplaserjet1020驱动下载 win10

您好,感谢您选择惠普产品。首先确认打印机本身无报错请您点击开始--设置--打印机和传真(设备和打印机)--看到打印机图标把鼠标放在图标上确认状态文档是否为就绪文档0如果不是建议删除文档重启电脑,...

联想小新怎么找售后维修(联想小新怎么找售后维修点)

给大家介绍几种解决的办法,大家可以试试:方法一:最简单的方法就是重启一下你的电脑,一般没有太大问题重启一下电脑就可以了。方法二:如果你电脑中安装了360安全卫士,那么你可以打开360安全卫士,然后点击...

笔记本win10系统重装(笔记本win10系统重装u盘启动)

win10系统重装方法如下第一步:下载安装好老毛桃U盘启动盘制作工具,制作一个U盘启动盘,建议U盘内存在8G以打开浏览器,搜索“老毛桃官网”,进入官网后,在首页点击“完整版”下载第二步:下载好win1...

主题之家移动版(主题中心下载手机版)

根据我的了解,汽车之家王国分为多个主题。其中包括新车评测、汽车导购、行业资讯、改装技术、赛车运动等。新车评测主题提供各种品牌和型号的汽车评测文章和视频,帮助消费者了解车辆性能和特点。汽车导购主题提供购...

win7电脑分盘(windows7电脑分盘)

在Win7系统电脑上分盘,您可以按照以下步骤进行操作:1.打开“计算机管理”:右键点击“计算机”图标,选择“管理”选项,打开“计算机管理”窗口。2.打开“磁盘管理”:在“计算机管理”窗口中,选择“...

电脑任务栏怎么还原到下边快捷键

电脑任务栏还原到下边方法:1.在任务栏上单击右键进入Windows电脑桌面后直接在任务栏上单击鼠标右键。2.点击锁定任务栏在弹出的菜单里面点击倒数第二个锁定任务栏选项。3.将任务栏拖到下方再按下鼠标左...

windows7怎么单击修复计算机

方法/步骤windows7的设置一般都可以在“控制面板”调整,鼠标的功能调整也不例外。首先打开“开始”-“控制面板”。“控制面板”默认是按照类别分类的,可能看不到鼠标选项,不过我们可以在搜索框里搜索“...

rog售后维修服务中心(rog官方维修点查询)

如果你的rog手机坏了,可以选择去rog手机官方维修点或者授权的维修中心修理。在这些地方,工程师们具有专业的维修知识和技能,能够确保对rog手机进行正确的维修和保养。此外,他们也会使用原厂备件,以确保...

装机系统哪个好(装系统那个好)

一、【重装win10正版系统】   二、【好用一键重装系统】  三、【优盘一键重装系统】 四、【免u盘一键重装系统】五、【小白在线一键重装系...

计算机怎么设置密码(计算机怎么设置密码锁屏)
  • 计算机怎么设置密码(计算机怎么设置密码锁屏)
  • 计算机怎么设置密码(计算机怎么设置密码锁屏)
  • 计算机怎么设置密码(计算机怎么设置密码锁屏)
  • 计算机怎么设置密码(计算机怎么设置密码锁屏)
win10刻录光盘的方法和步骤(win10系统怎么刻录光盘)

1.打开Windows10中的“文件资源管理器”,找到要刻录的文件或文件夹。2.选中文件/文件夹,右键单击选中“发送到-->DVDRW驱动器”。3.确认要刻录的光盘的名称和格式(默...