-
Notifications
You must be signed in to change notification settings - Fork 1
150 lines (135 loc) · 4.85 KB
/
generate.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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
name: generator
on:
pull_request:
branches:
- 'main'
push:
workflow_dispatch:
# Default values to simplify job configurations below.
env:
GO_VERSION: '1.19'
PY_VERSION: '3.11'
jobs:
generation:
runs-on: ubuntu-latest
name: ${{ matrix.app }}-${{ matrix.lang }}
strategy:
fail-fast: false
matrix:
lang:
- go
- py
app:
- sonarr
- radarr
- lidarr
- readarr
- whisparr
- prowlarr
- overseerr
include:
- app: sonarr
repo: Sonarr/Sonarr
api_version: v4.0.12.2823
path: /src/Sonarr.Api.V3/openapi.json
- app: radarr
repo: Radarr/Radarr
api_version: v5.17.2.9580
path: /src/Radarr.Api.V3/openapi.json
- app: lidarr
repo: Lidarr/Lidarr
api_version: v2.8.2.4493
path: /src/Lidarr.Api.V1/openapi.json
- app: readarr
repo: Readarr/Readarr
api_version: v0.4.10.2734
path: /src/Readarr.Api.V1/openapi.json
- app: whisparr
# swagger: Whisparr/Whisparr/8aef59bcdca16265e0f867fc370b93a5a2b1f9b6/src/Whisparr.Api.V3/openapi.json
repo: Radarr/Radarr
api_version: b08981dee068e1ed23e4f45a0d8fe70ef7bf7703
path: /src/Radarr.Api.V3/openapi.json
- app: prowlarr
repo: Prowlarr/Prowlarr
api_version: v1.30.2.4939
path: /src/Prowlarr.Api.V1/openapi.json
- app: overseerr
repo: sct/overseerr
api_version: v1.33.2
path: /overseerr-api.yml
steps:
- name: DevOpsArrBOT token
id: DevOpsArrBOT
uses: getsentry/action-github-app-token@v3
with:
app_id: '305652'
private_key: ${{ secrets.DEVOPSARRBOT_PRIVATE_KEY }}
- name: set DevOpsArrBOT config
run: |
git config --global user.name "devopsarr[bot]"
git config --global user.email 127950054+devopsarr[bot]@users.noreply.github.com
- name: Check out code
uses: actions/checkout@v4
- name: Checkout sdk
uses: actions/checkout@v4
with:
repository: devopsarr/${{ matrix.app }}-${{ matrix.lang }}
path: .generated-code/${{ matrix.app }}-${{ matrix.lang }}
fetch-depth: 0
token: ${{ steps.DevOpsArrBOT.outputs.token }}
# Needed for processing the swaggers
- name: Set up yq
uses: frenck/[email protected]
with:
version: v4.34.2
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PY_VERSION }}
- name: Set up Golang
if: ${{ matrix.lang == 'go' }}
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
- name: Git Version
run: |
tag=$(git describe --tags --abbrev=0) &&\
echo "version=${tag:1}" >> $GITHUB_OUTPUT
id: version
working-directory: .generated-code/${{ matrix.app }}-${{ matrix.lang }}
- name: generation
run: |
make generate
env:
APP: ${{ matrix.app }}
SDK: ${{ matrix.lang }}
API_VERSION: ${{ matrix.api_version }}
REPO: ${{ matrix.repo }}
API_PATH: ${{ matrix.path }}
VERSION: ${{ steps.version.outputs.version }}
- name: diff
id: diff
run: |
git diff --exit-code ||\
echo "create-pr=true" >> $GITHUB_OUTPUT
working-directory: .generated-code/${{ matrix.app }}-${{ matrix.lang }}
- name: create commit
if: ${{ github.event_name == 'pull_request' && steps.diff.outputs.create-pr == 'true'}}
run: |
git checkout -b feature/code-generation &&\
git add . &&\
git commit -m "${{ github.event.pull_request.title }}" &&\
git push --set-upstream origin feature/code-generation -f
working-directory: .generated-code/${{ matrix.app }}-${{ matrix.lang }}
- name: create pull request
if: ${{ steps.diff.outputs.create-pr == 'true' && github.event_name != 'push' }}
run: gh pr create -H feature/code-generation -B main --title '${{ github.event.pull_request.title }}' --body 'Code generated' || echo 'PR already created'
working-directory: .generated-code/${{ matrix.app }}-${{ matrix.lang }}
env:
GITHUB_TOKEN: ${{ steps.DevOpsArrBOT.outputs.token }}
- name: merge pull request
if: ${{ steps.diff.outputs.create-pr == 'true' && github.event_name == 'push' && github.ref_name == 'main' }}
run: gh pr merge feature/code-generation --merge
working-directory: .generated-code/${{ matrix.app }}-${{ matrix.lang }}
env:
GITHUB_TOKEN: ${{ steps.DevOpsArrBOT.outputs.token }}