Github Actions中指定文件改动触发工作流设定

目录

        • 引言
        • 解决方案
        • 官网详细介绍

引言

  • 当仓库中只想自动生成一个sdk的包时,没有必要每次对仓库的任何文件改动都触发自动生成sdk的workflow
  • 这时,很自然地就会想到,是不是可以当我更改指定文件时,再自动打包生成sdk文件

解决方案

  • 具体可以参考RapidOCR中,自动生成sdk_rapidocr_v1.0.0的yml文件
  • 完整代码
    • paths:是用来指定哪个文件更改,触发workflow的
    name: CI
    
    on:
      push:
        branches: [ main ]
        paths:   # 这里是用来指定哪个文件更改,才会触发的
          - 'release/python_sdk/**'
    
    jobs:
      build:
        runs-on: ubuntu-latest
    
        steps:
          - uses: actions/checkout@v2
    
          - name: Set SSH Environment
            env:
              DEPLOY_KEYS: ${{ secrets.GEN_PYTHON_SDK }}
            run: |
              mkdir -p ~/.ssh/
              echo "$DEPLOY_KEYS" > ~/.ssh/id_rsa
              chmod 600 ~/.ssh/id_rsa
              chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
              
          - name: Run setup.py
            run: |
              cd release/python_sdk/_gen_sdk
              bash auto_deploy.sh
              
          - name: Submit code to repository
            run: |
             git config --global user.name "SWHL"
             git config --global user.email "[email protected]"
             git add .
             git commit -m 'Auto generate python sdk'
             git push origin main
    

官网详细介绍

  • 忽略路径
    on:
    	push:
    	    paths-ignore:
    	      - 'docs/**'
    
  • 包括路径
    on:
    	push:
    	    paths:
    	      - '**.js'
    
  • 排除路径→使用肯定和否定模式
    on:
      push:
        paths:
          - 'sub-project/**'
          - '!sub-project/docs/**'
    

你可能感兴趣的:(工具,github,python)