forked from googleapis/google-api-java-client-services
-
Notifications
You must be signed in to change notification settings - Fork 3
88 lines (80 loc) · 2.91 KB
/
generate.yaml
File metadata and controls
88 lines (80 loc) · 2.91 KB
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
on:
workflow_dispatch:
inputs:
services:
required: true
type: string
description: A JSON array of service names. E.g., ["aiplatform"]
workflow_call:
inputs:
services:
required: true
type: string
description: A JSON array of service names. E.g., ["aiplatform"]
name: generate
jobs:
generate_one:
runs-on: 'ubuntu-24.04'
strategy:
fail-fast: false
max-parallel: 4
matrix:
service: ${{fromJson(inputs.services)}}
steps:
- run: echo generating ${{ matrix.service }}
- uses: actions/checkout@v2
with:
fetch-depth: 1
path: google-api-java-client-services
token: ${{ secrets.YOSHI_CODE_BOT_TOKEN }}
- uses: actions/checkout@v2
with:
repository: googleapis/discovery-artifact-manager
fetch-depth: 1
path: discovery-artifact-manager
token: ${{ secrets.YOSHI_CODE_BOT_TOKEN }}
- uses: actions/setup-python@v5
with:
python-version: 3.8.18
- run: |
sudo apt update
python3 --version
pip install pip==21.3.1
pip --version
- run: ./google-api-java-client-services/.github/workflows/generate.sh ${{ matrix.service }}
- name: Create PR via Local Checkout (Large Commit Support)
shell: bash
working-directory: google-api-java-client-services
env:
GH_TOKEN: ${{ secrets.YOSHI_CODE_BOT_TOKEN }}
SERVICE: ${{ matrix.service }}
AUTHOR: "yoshi-code-bot <yoshi-code-bot@google.com>"
BASE_REPO: "${{ github.repository }}"
run: |
set -ex
# 1. Setup Identity
git config user.name "yoshi-code-bot"
git config user.email "yoshi-code-bot@google.com"
# 2. Setup Remote Fork
git remote add fork "https://yoshi-code-bot:${GH_TOKEN}@github.com/yoshi-code-bot/google-api-java-client-services.git"
# 3. Create Branch
BRANCH="regenerate-${SERVICE}"
git checkout -b "$BRANCH"
# 4. Stage specific files (Large commit handling)
TARGET_PATH="clients/google-api-services-${SERVICE}"
git add "$TARGET_PATH"
# 5. Commit & Push
MESSAGE="chore: regenerate ${SERVICE} client"
if git diff-index --quiet HEAD --; then
echo "No changes to commit for ${SERVICE}."
exit 0
fi
git commit -m "$MESSAGE"
git push fork "$BRANCH" --force
gh pr create \
--repo "$BASE_REPO" \
--head "yoshi-code-bot:${BRANCH}" \
--base "main" \
--title "$MESSAGE" \
--body "Generated in GitHub action: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
|| echo "PR already exists or failed to create, but changes are pushed."