Files
doc-exports/.gitea/workflows/openapi.yml

89 lines
2.5 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)
id: changed-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
echo "changed_urls<<EOF" >> $GITHUB_OUTPUT
for file in ${{ steps.changed-files.outputs.changed_files }}; do
echo "$REPO_URL/src/branch/$BRANCH/$file"
done >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: List URLs
run: |
for url in ${{ steps.changed-files.outputs.changed_urls }}; do
echo "$url was changed"
done