File: main.yml

package info (click to toggle)
python-googleapi 2.187.0-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 562,316 kB
  • sloc: python: 11,087; javascript: 249; sh: 114; makefile: 59
file content (100 lines) | stat: -rw-r--r-- 3,591 bytes parent folder | download | duplicates (2)
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
# Copyright 2021 Google LLC

# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at

#     https://www.apache.org/licenses/LICENSE-2.0

# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: A workflow for updating discovery artifacts
# Controls when the action will run.

on:
  schedule:
    # * is a special character in YAML so you have to quote this string
    # Run this Github Action every Tuesday at 7 AM UTC
    - cron:  '0 7 * * 2'
  workflow_dispatch:

jobs:
  build:
    name: Update Discovery Artifacts PR
    runs-on: ubuntu-latest
    if: ${{github.repository == 'googleapis/google-api-python-client'}}
    steps:
      - name: Get current date
        id: date
        run: echo "::set-output name=current_date::$(date +'%Y-%m-%d-%HH%MM%SS')"

      - name: Sync fork
        run: gh repo sync $REPOSITORY -b $BRANCH_NAME
        env:
          REPOSITORY: 'yoshi-code-bot/google-api-python-client'
          BRANCH_NAME: 'refs/heads/main'
          GITHUB_TOKEN: ${{ secrets.YOSHI_CODE_BOT_TOKEN }}

      - name: Check out main branch
        uses: actions/checkout@v4
        with:
          ref: refs/heads/main
          repository: 'yoshi-code-bot/google-api-python-client'
          token: ${{secrets.YOSHI_CODE_BOT_TOKEN}}

      - name: Create branch
        run: |
          git checkout -b update-discovery-artifacts-${{ steps.date.outputs.current_date }}

      - name: Set up Python 3.9
        uses: actions/setup-python@v5
        with:
          python-version: 3.9

      - name: Install google-api-python-client
        run: pip3 install -e .

      - name: Install script dependencies
        run: pip3 install -r requirements.txt
        working-directory: ./scripts

      # Apply a workaround to discovery.py to avoid DefaultCredentialsError
      # which is raised when calling `build_from_document()` as a result of
      # `google.auth.default()`. The workaround is to bypass the code block that
      # attempts to load default credentials.
      - name: Workaround to avoid DefaultCredentialsError in discovery.py
        run: sed -i -e 's/if credentials is None/if False/g' googleapiclient/discovery.py

      - name: Run Change Summary
        run: python3 updatediscoveryartifacts.py
        working-directory: ./scripts

      - name: Commit changes
        run: ./createcommits.sh
        working-directory: ./scripts

      - name: Push changes
        run: git push -u origin update-discovery-artifacts-${{ steps.date.outputs.current_date }}

      - name: Prepare summary for PR Body
        id: pr_body
        shell: bash
        run: |
          python3 buildprbody.py
          output=$(cat temp/allapis.summary)
          output="${output//'%'/'%25'}"
          output="${output//$'\n'/'%0A'}"
          output="${output//$'\r'/'%0D'}"
          echo "::set-output name=change_summary::$output"
        working-directory: ./scripts

      - name: Create PR
        env:
          GITHUB_TOKEN: ${{ secrets.YOSHI_CODE_BOT_TOKEN }}
          PR_TITLE: "chore: Update discovery artifacts"
        run: |
          gh pr create -R "googleapis/google-api-python-client" -B "main" --title "$PR_TITLE" --body "${{ steps.pr_body.outputs.change_summary }}"