-
Notifications
You must be signed in to change notification settings - Fork 1
96 lines (83 loc) · 2.78 KB
/
code-gen-py.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
name: py code generate
on:
workflow_dispatch:
workflow_call:
outputs:
committed:
value: ${{ jobs.code-gen-py.outputs.committed }}
pushed:
value: ${{ jobs.code-gen-py.outputs.pushed }}
jobs:
code-gen-py:
runs-on: ubuntu-latest
outputs:
committed: ${{ steps.commit-changes.outputs.committed }}
pushed: ${{ steps.commit-changes.outputs.pushed }}
steps:
# set up toolchain
- name: Setup protoc
uses: arduino/setup-protoc@v2
with:
version: "24.x"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.9
# 分别check out master 分支和 py 分支
- name: checkout master
uses: actions/checkout@v3
with:
ref: master
path: ./master
- name: Checkout py branch
uses: actions/checkout@v3
with:
ref: py-code-gen
path: ./py-code-gen
- name: read old codegen info
id: old-codegen-info
working-directory: ./py-code-gen
# 因为一开始没有这个文件,所以写入一段空内容
run: |
echo "" >> ./codegen_info
cat ./codegen_info >> "$GITHUB_OUTPUT"
# 下载py proto依赖
- run:
pip install protobuf &&
pip install grpcio &&
pip install googleapis-common-protos &&
pip install grpcio-tools
working-directory: ./master
# 在master 中生成代码
- name: generate proto code
run:
mkdir -v pb &&
python -m grpc_tools.protoc -ICeobe_Proto/pb=../../protos --python_out=./pb --grpc_python_out=./pb ../../protos/*.proto
working-directory: ./master
# 清理 py code gen 中的Py文件和workflow文件
- name: remove old gen files
run: |
rm -rf ./py-code-gen/.github
rm -rf ./py-code-gen/pb
rm -rf ./py-code-gen/protos
- name: copy origin proto files
run:
mkdir -v ./py-code-gen/protos &&
cp -vr ./master/protos/* ./py-code-gen/protos
- name: copy code gen
run:
mkdir -v ./py-code-gen/pb &&
cp -vr ./master/Ceobe_Proto/pb/* ./py-code-gen/pb/
- name: write codegen info
working-directory: ./master
run: |
echo "CURRENT_MASTER_SHA=$(git rev-parse --short HEAD)" > ../py-code-gen/codegen_info
echo "LAST_MASTER_SHA=${{ steps.old-codegen-info.outputs.CURRENT_MASTER_SHA }}" >> ../py-code-gen/codegen_info
- name: Add & Commit
id: commit-changes
uses: EndBug/add-and-commit@v9
with:
default_author: github_actions
message: '[CI] update py-code-gen'
cwd: ./py-code-gen