forked from docs/doc-exports
74 lines
2.1 KiB
YAML
74 lines
2.1 KiB
YAML
# .gitea/workflows/openapi.yml
|
|
name: OpenAPI evaluation
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
paths:
|
|
- 'docs/*/openapi/*.yaml'
|
|
- 'docs/*/openapi/*.yml'
|
|
|
|
jobs:
|
|
openapi:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Dump Gitea env
|
|
run: |
|
|
env | sort | grep GITEA
|
|
|
|
- name: Get base branch name
|
|
id: base
|
|
run: |
|
|
base_ref=$(jq -r '.pull_request.base.ref' "$GITEA_PATH")
|
|
echo "base_ref=$base_ref"
|
|
echo "${{ gitea.base_ref }}"
|
|
BASE_SHA="${{ gitea.event.pull_request.base.sha }}"
|
|
echo "Base SHA: $BASE_SHA"
|
|
|
|
- name: Get changed files other method
|
|
id: changed-files
|
|
run: |
|
|
BASE_SHA="${{ gitea.event.pull_request.base.sha }}"
|
|
echo "Base SHA: $BASE_SHA"
|
|
git fetch origin $BASE_SHA
|
|
echo "changed_files=$(git diff --name-only ${BASE_SHA}...HEAD | grep -E '^docs/[^/]+/openapi/.*\.(yaml|yml)$' | xargs)" >> $GITHUB_OUTPUT
|
|
|
|
- name: List changed files
|
|
run: |
|
|
for file in ${{ steps.changed-files.outputs.changed_files }}; do
|
|
echo "$file was changed"
|
|
done
|
|
|
|
- name: Get changed OpenAPI files (branch URLs)
|
|
run: |
|
|
BASE_SHA="${{ gitea.event.pull_request.base.sha }}"
|
|
git fetch origin $BASE_SHA
|
|
|
|
# Use PR branch if available, otherwise push branch
|
|
BRANCH="${{ gitea.head_ref }}"
|
|
if [ -z "$BRANCH" ]; then
|
|
BRANCH="${{ gitea.ref_name }}"
|
|
fi
|
|
|
|
REPO_URL="${{ gitea.server_url }}/${{ gitea.repository }}"
|
|
|
|
# Only docs/*/openapi/*.yaml or yml
|
|
# FILES=$(git diff --name-only ${BASE_SHA}...HEAD \
|
|
# | grep -E '^docs/[^/]+/openapi/.*\.(yaml|yml)$' || true)
|
|
|
|
echo "changed_urls"
|
|
|
|
for file in ${{ steps.changed-files.outputs.changed_files }}; do
|
|
echo "$REPO_URL/src/branch/$BRANCH/$file"
|
|
done
|