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




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM