Skip to content

Commit

Permalink
Merge 594f33e into 48c39b6
Browse files Browse the repository at this point in the history
  • Loading branch information
MoritzWeber0 authored Oct 10, 2024
2 parents 48c39b6 + 594f33e commit 23b5486
Show file tree
Hide file tree
Showing 2 changed files with 103 additions and 44 deletions.
44 changes: 0 additions & 44 deletions .github/workflows/openapi-frontend.yml

This file was deleted.

103 changes: 103 additions & 0 deletions .github/workflows/openapi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# SPDX-FileCopyrightText: Copyright DB InfraGO AG and contributors
# SPDX-License-Identifier: CC0-1.0

name: 'OpenAPI Schema'

on:
pull_request:
branches: ['**']
paths:
- 'backend/**'
- 'Makefile'
- '.github/workflows/openapi.yml'

jobs:
generate-frontend-client:
runs-on: ubuntu-latest
if: github.actor != 'dependabot[bot]'
steps:
- uses: actions/checkout@v4
- name: Install python
uses: actions/setup-python@v5
with:
cache: pip
cache-dependency-path: ./backend/pyproject.toml
python-version: '3.11'
- name: Install dependencies
working-directory: ./backend
run: python -m venv .venv && .venv/bin/pip install -e ".[dev]"
- name: Run openapi-generator
run: make openapi
- name: Compare against HEAD
id: git-diff
run: git add . && git diff --cached --exit-code
- name: Find existing comment on PR
uses: peter-evans/find-comment@v3
if: always() && steps.git-diff.outcome == 'failure'
id: fc
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: 'github-actions[bot]'
body-includes: The generated OpenAPI client is not up to date
- name: Post comment if client is outdated
uses: peter-evans/create-or-update-comment@v4
if: always() && steps.git-diff.outcome == 'failure'
with:
comment-id: ${{ steps.fc.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: |
The generated OpenAPI client is not up to date with the latest changes in the OpenAPI specification.
Please run `make openapi` locally and commit the changes.
edit-mode: replace
changelog:
runs-on: ubuntu-latest
if: github.actor != 'dependabot[bot]'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install python
uses: actions/setup-python@v5
with:
cache: pip
cache-dependency-path: ./backend/pyproject.toml
python-version: '3.11'
- name: Install dependencies
working-directory: ./backend
run: python -m venv .venv && .venv/bin/pip install -e ".[dev]"
- name: Run openapi-generator for target
working-directory: ./backend
run: make openapi
- name: Move openapi schema file
run: mv /tmp/openapi.json /tmp/openapi2.json
- name: Checkout base
run: git checkout "${{ github.event.pull_request.base.sha }}"
- name: Run openapi-generator for base
working-directory: ./backend
run: make openapi
- name: Install oasdiff
run: go install github.com/tufin/oasdiff@latest
- name: Compare openapi schema files
id: oasdiff
run: |
{
echo 'changelog<<EOF'
docker run --rm -v /tmp:/tmp:ro tufin/oasdiff changelog \
--format markup \
/tmp/openapi.json /tmp/openapi2.json
echo 'EOF'
} >> "$GITHUB_OUTPUT"
- name: Find existing comment on PR
uses: peter-evans/find-comment@v3
id: fc
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: 'github-actions[bot]'
body-includes: API Changelog
- name: Post comment with changelog
uses: peter-evans/create-or-update-comment@v4
with:
comment-id: ${{ steps.fc.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: ${{ steps.oasdiff.outputs.changelog }}
edit-mode: replace

0 comments on commit 23b5486

Please sign in to comment.