Skip to content

PETOSS 536 | Open API Pipeline for PR creation #27

PETOSS 536 | Open API Pipeline for PR creation

PETOSS 536 | Open API Pipeline for PR creation #27

Workflow file for this run

name: Open API PR check
on:
pull_request:
paths:
- '**'
jobs:
pr-health-check:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Install yaml lint
run: pip install yamllint
# - name: Run yamllint
# run: |
# git fetch > /dev/null 2>&1
# git checkout ${{github.head_ref}}
# find . -type f \( -name "*.yaml" \) > yaml_files.txt
# if [ -s yaml_files.txt ]; then
# echo "linting the following yaml files:"
# cat yaml_files.txt
# xargs yamllint < yaml_files.txt
# fi
- name: Install octokit dependencies
run: npm i
working-directory: ${{ github.workspace }}/.github/octokit
- name: Get github app access token
id: get_access_token
env:
GITHUB_APP_ID: ${{ secrets.XERO_GITHUB_APP_ID }}
GITHUB_APP_PRIVATE_KEY: ${{ secrets.XERO_GITHUB_APPLICATION_KEY }}
uses: actions/github-script@v7
with:
result-encoding: string
script: |
const { getAccessToken } = await import('${{ github.workspace }}/.github/octokit/index.js')
const token = await getAccessToken()
return token
- name: Calling All SDK workflows
run: |
dispatchId=$((10000 + RANDOM % 90000))
echo "dispatchId: $dispatchId"
curl -X POST \
-H 'Authorization: Bearer ${{ steps.get_access_token.outputs.result }}' \
-H "Accept: application/vnd.github.everest-preview+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/xero-internal/xeroapi-sdk-codegen/actions/workflows/pr.yml/dispatches \
-d '{"ref":"PETOSS-536-enabling-workflow-dispatch","inputs":{"branch_name": "${{github.head_ref}}", "dispatch_id": $dispatchId}}'
# - name: Get workflow run ID
# id: get-run-id
# run: |
# run_id=$(curl -s \
# -H 'Authorization: Bearer ${{ steps.get_access_token.outputs.result }}' \
# -H "Accept: application/vnd.github.everest-preview+json" \
# -H "X-GitHub-Api-Version: 2022-11-28" \
# https://api.github.com/repos/xero-internal/xeroapi-sdk-codegen/actions/workflows/pr.yml/runs \
# | jq -r '.workflow_runs[0] | select(.head_branch=="PETOSS-536-enabling-workflow-dispatch") | .id' | head -n 1)
# if [ -z "$run_id"]; then
# echo "Failed to retrieve workflow run id"
# exit 1
# else
# echo "workflow run ID: $run_id"
# fi
- name: Get workflow run ID
id: get-run-id
run: |
workflow_run=$(curl -s \
-H 'Authorization: Bearer ${{ steps.get_access_token.outputs.result }}' \
-H "Accept: application/vnd.github.everest-preview+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/xero-internal/xeroapi-sdk-codegen/actions/workflows/pr.yml/runs \
| jq -r '.workflow_runs[0]')
echo "workflow run: $workflow_run"
run_id=(echo $workflow_run | jq -r '.id')
echo "workflow run ID: $run_id"