Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions .github/workflows/formal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Test Formalities

on:
pull_request_target:

permissions:
contents: read
pull-requests: write

jobs:
formalities:
name: Test Formalities
uses: openwrt/actions-shared-workflows/.github/workflows/formal.yml@main
with:
post_comment: true

check_formality_status:
name: Check Formality Status
runs-on: ubuntu-slim
needs: formalities
if: always()

steps:
- name: Trigger build
if: needs.formalities.result == 'success'
env:
# Token needs actions: write
TOKEN: ${{ secrets.FORMAL_TOKEN }}
BASE_REF: ${{ github.base_ref }}
# Workflow is running in target context, so we need to get head ref
# from the event
HEAD_REF: ${{ github.event.pull_request.head.ref }}
PR_NAME: ${{ github.event.pull_request.title }}
PR_NUMBER: ${{ github.event.pull_request.number }}
run: |
JSON_PAYLOAD=$(jq -n \
--arg head_ref "$HEAD_REF" \
--arg base_ref "$BASE_REF" \
--arg pr_number "$PR_NUMBER" \
--arg pr_name "$PR_NAME" \
'{ref: $head_ref, inputs: {base_ref: $base_ref, pr_number: $pr_number, pr_name: $pr_name}}')
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer $TOKEN" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/repos/${{ github.repository }}/actions/workflows/multi-arch-test-build.yml/dispatches" \
-d "$JSON_PAYLOAD"
- name: Add 'not following guidelines' label
if: needs.formalities.result == 'failure'
uses: buildsville/[email protected]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That one is already used in labeler.yml and it's based on file paths.

with:
token: ${{ secrets.GITHUB_TOKEN }}
labels: "not following guidelines"
type: add

- name: Remove 'not following guidelines' label
if: needs.formalities.result == 'success'
uses: buildsville/[email protected]
with:
token: ${{ secrets.GITHUB_TOKEN }}
labels: "not following guidelines"
type: remove
14 changes: 6 additions & 8 deletions .github/workflows/labeler.yml
Original file line number Diff line number Diff line change
@@ -1,21 +1,19 @@
name: 'Pull Request Labeler'
name: Labeler

on:
- pull_request_target
pull_request_target:

permissions:
contents: read
pull-requests: write

jobs:
labeler:
permissions:
contents: read
pull-requests: write

name: Pull Request Labeler
name: Labeler
runs-on: ubuntu-slim
steps:
- uses: actions/labeler@v6
- name: Label pull request
uses: actions/labeler@v6
with:
repo-token: '${{ secrets.GITHUB_TOKEN }}'
sync-labels: true
Loading