From 98a1f90e2cfe68f31867f3459049617fbdb46882 Mon Sep 17 00:00:00 2001 From: Mateusz Krajewski Date: Sat, 14 Mar 2026 13:16:39 +0100 Subject: [PATCH 1/3] chore: add pr validation job --- .github/workflows/validate_pr.yaml | 57 ++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .github/workflows/validate_pr.yaml diff --git a/.github/workflows/validate_pr.yaml b/.github/workflows/validate_pr.yaml new file mode 100644 index 0000000..3bc48d2 --- /dev/null +++ b/.github/workflows/validate_pr.yaml @@ -0,0 +1,57 @@ +name: CI Validation + +on: + pull_request: + branches: + - master + # types są potrzebne, aby linter PR reagował na edycję tytułu + types: + - opened + - edited + - synchronize + +jobs: + validate: + name: Validate XML & PR Title + runs-on: ubuntu-latest + + steps: + - name: Checkout Code + uses: actions/checkout@v4 + + # 1. Sprawdzenie czy tytuł PR pasuje do Twoich reguł (feat, fix, perf, cleanup) + - name: Semantic PR Title Check + uses: amannn/action-semantic-pull-request@v5 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + # Definiujemy typy, które akceptuje Twoja konfiguracja semantic-release + types: | + feat + fix + perf + cleanup + chore + requireScope: false + + # 2. Setup pod walidację XML + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.x' + + - name: Install Dependencies + run: | + pip install lxml + git clone https://github.com/ardupilot/pymavlink.git --recursive + pip install -r pymavlink/requirements.txt + + # 3. Walidacja XML + - name: Validate XML with mavgen + run: | + python3 -m pymavlink.tools.mavgen \ + --lang=C \ + --wire-protocol=1.0 \ + --output=temp_output \ + --strict-units \ + ./simba.xml \ No newline at end of file From 0125d14f14f2612a7ae82a5a8666fd6227ef7d86 Mon Sep 17 00:00:00 2001 From: Mateusz Krajewski Date: Sat, 14 Mar 2026 13:18:57 +0100 Subject: [PATCH 2/3] t123 --- .github/workflows/validate_pr.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/validate_pr.yaml b/.github/workflows/validate_pr.yaml index 3bc48d2..7b76feb 100644 --- a/.github/workflows/validate_pr.yaml +++ b/.github/workflows/validate_pr.yaml @@ -10,6 +10,7 @@ on: - edited - synchronize + jobs: validate: name: Validate XML & PR Title From c690e0901c98a0b6c282cc2afab9671dd3c8918b Mon Sep 17 00:00:00 2001 From: Mateusz Krajewski Date: Sat, 14 Mar 2026 13:16:39 +0100 Subject: [PATCH 3/3] chore: add pr validation job --- .github/workflows/validate_pr.yaml | 79 ++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 .github/workflows/validate_pr.yaml diff --git a/.github/workflows/validate_pr.yaml b/.github/workflows/validate_pr.yaml new file mode 100644 index 0000000..681ca04 --- /dev/null +++ b/.github/workflows/validate_pr.yaml @@ -0,0 +1,79 @@ +name: CI Validation + +on: + pull_request: + branches: + - master + types: + - opened + - edited + - synchronize + - ready_for_review + - review_requested + - assigned + - unassigned + + +jobs: + validate: + name: Validate XML & PR Title + runs-on: ubuntu-latest + + steps: + - name: Checkout Code + uses: actions/checkout@v4 + + - name: Check Assignee and Reviewer + run: | + PR_DATA=$(gh pr view ${{ github.event.pull_request.number }} --json assignees,reviewRequests) + + ASSIGNEES=$(echo $PR_DATA | jq '.assignees | length') + REVIEWERS=$(echo $PR_DATA | jq '.reviewRequests | length') + + if [ "$ASSIGNEES" -eq "0" ]; then + echo "❌ BŁĄD: PR musi mieć przypisaną osobę (Assignee)!" + exit 1 + fi + + if [ "$REVIEWERS" -eq "0" ]; then + echo "❌ BŁĄD: PR musi mieć przynajmniej jednego Reviewera!" + exit 1 + fi + + echo "✅ Walidacja osób zakończona sukcesem." + # 1. Sprawdzenie czy tytuł PR pasuje do Twoich reguł (feat, fix, perf, cleanup) + - name: Semantic PR Title Check + uses: amannn/action-semantic-pull-request@v5 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + # Definiujemy typy, które akceptuje Twoja konfiguracja semantic-release + types: | + feat + fix + perf + cleanup + chore + requireScope: false + + # 2. Setup pod walidację XML + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.x' + + - name: Install Dependencies + run: | + pip install lxml + git clone https://github.com/ardupilot/pymavlink.git --recursive + pip install -r pymavlink/requirements.txt + + # 3. Walidacja XML + - name: Validate XML with mavgen + run: | + python3 -m pymavlink.tools.mavgen \ + --lang=C \ + --wire-protocol=1.0 \ + --output=temp_output \ + --strict-units \ + ./simba.xml \ No newline at end of file