zoukankan      html  css  js  c++  java
  • Github Actions教程:运行python代码并Push到远端仓库

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

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

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

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

    action代码设置如下:

    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原创


    如有意合作,欢迎私戳

    邮箱:marsggbo@foxmail.com


    2019-12-24 11:25:45



  • 相关阅读:
    小说下载器【追书接口】
    C#调用大漠插件,发送QQ和微信消息
    C# 终本案件、综合执行人、裁判文书爬虫
    追书神器API
    一个CookieContainer的拓展类
    利用BlockingCollection实现生产者和消费者队列,实现写文本
    EF SQLite的Like语句,生成为CHARINDEX的解决办法
    ClientKey实现登录QQ空间,并设置背景音乐
    DataTable转换为Model实体对象
    开通博客第一天!
  • 原文地址:https://www.cnblogs.com/marsggbo/p/12090703.html
Copyright © 2011-2022 走看看