相关文章推荐
飘逸的饭卡  ·  《asyncio 系列》9. 使用基于 ...·  4 月前    · 
谦和的电影票  ·  最新通知_中国人民大学应用统计科学研究中心·  2 年前    · 
成熟的熊猫  ·  存储过程调用存储过程_存储过程调用另一个存储 ...·  2 年前    · 
考研的苦瓜  ·  CSS 用div画一个1px高的细线 ...·  2 年前    · 
淡定的打火机  ·  CMake@1 - CMake v1 ...·  3 年前    · 
小百科  ›  Github Actions教程:运行python代码并Push到远端仓库开发者社区
骑白马的海龟
2 月前
marsggbo
社区首页 > 专栏 > Github Actions教程:运行python代码并Push到远端仓库

Github Actions教程:运行python代码并Push到远端仓库

作者头像
marsggbo
发布 于 2020-06-12 09:59:22
发布 于 2020-06-12 09:59:22
2.5K 1
举报
文章被收录于专栏: AutoML(自动机器学习) AutoML(自动机器学习)

我自己做了一个网站,这个网站会使用一个python脚本来生成。

具体生成的方法是python脚本会读取目录下的csv文件,将每一行数据解析成固定格式,然后生成html文件,最后需要将修改后的文件自动push到github

当然上面所有的步骤都是自动化实现的,总结如下:

  1. 我本地修改csv文件,然后push到github
  2. 我的push操作会触发实现设定好的action

action代码设置如下:

代码语言: javascript
复制
name: Python application
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: checkout actions
    - uses: actions/checkout@v1
    - name: Set up Python 3.7
      uses: actions/setup-python@v1
      with:
        python-version: 3.7
    - name: Update paper list
      run: |
        cd paper_infos
        python generate_tables.py
    - name: commit
      run: |
        git config --global user.email 1435679023@qq.com
        git config --global user.name marsggbo
        git add .
        git commit -m "update" -a
    - name: Push changes
      uses: ad-m/github-push-action@master
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}

代码解释:

  • 第一行 name : 随便可以设置,就是你的action名字
  • on : 触发条件,我这里设置的是 push 操作一旦发生就出发
  • jobs : Github Actions的层级关系是这样的: workflow/jobs/steps/action。 注意将action和Github Actions中的Actions区分开来,二者是不同的概念,action就表示最低level的动作,Actions就是Github给我们提供的一个功能的名字而已。
  • steps :和jobs类似。可以看到steps由若干个step组成,每个step都可以设置 name
  • uses :这个表示使用别人预先设置好的Actions,比如因为我代码中要用到python,所以就用了 actions/setup-python@v1 来设置python环境,不用我自己设置了。
  • run : 表示具体运行什么命令行代码
    • 可以看到,我首先在名字为 Update paper list 里运行了python脚本
    • 之后对github文件夹做了commit
    • 最后使用别人的actions把更新后的代码再次push到github
  • 最后一行 github_token 需要注意,这个弄了我好一会才明白,这个其实就相当于你的密码吧。这个设置方法是进入你在个人设置页面(即Settings,不是仓库里的Settings),选择 Developer settings > Personal access tokens > Generate new token ,设置名字为 GITHUB_TOKEN ,然后勾选 repo , admin:repo_hook , workflow 等选项,最后点击 Generate token 即可。

具体代码可参见 marsggbo/automl_a_survey_of_state_of_the_art MARSGGBO♥原创

 
推荐文章
飘逸的饭卡  ·  《asyncio 系列》9. 使用基于 asyncio 实现的异步框架构建 Web 应用程序 - 古明地盆 - 博客园
4 月前
谦和的电影票  ·  最新通知_中国人民大学应用统计科学研究中心
2 年前
成熟的熊猫  ·  存储过程调用存储过程_存储过程调用另一个存储过程-CSDN博客
2 年前
考研的苦瓜  ·  CSS 用div画一个1px高的细线 (IE 6 版) - Yoshow - 博客园
2 年前
淡定的打火机  ·  CMake@1 - CMake v1 task | Microsoft Learn
3 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
小百科 - 百科知识指南
© 2024 ~ 沪ICP备11025650号