|
|
@@ -0,0 +1,53 @@ |
|
|
|
name: Block merging with outdated 3rdparty/ |
|
|
|
|
|
|
|
on: |
|
|
|
pull_request: |
|
|
|
types: [opened, ready_for_review, reopened, synchronize] |
|
|
|
|
|
|
|
permissions: |
|
|
|
contents: read |
|
|
|
|
|
|
|
concurrency: |
|
|
|
group: block-outdated-3rdparty-${{ github.head_ref || github.run_id }} |
|
|
|
cancel-in-progress: true |
|
|
|
|
|
|
|
jobs: |
|
|
|
block-outdated-3rdparty: |
|
|
|
name: Block merging with outdated 3rdparty/ |
|
|
|
|
|
|
|
runs-on: ubuntu-latest-low |
|
|
|
|
|
|
|
steps: |
|
|
|
- name: Check requirement |
|
|
|
uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1 |
|
|
|
id: changes |
|
|
|
continue-on-error: true |
|
|
|
with: |
|
|
|
filters: | |
|
|
|
src: |
|
|
|
- '3rdparty' |
|
|
|
- 'version.php' |
|
|
|
|
|
|
|
- name: Checkout |
|
|
|
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 |
|
|
|
|
|
|
|
- name: 3rdparty commit hash on current branch |
|
|
|
id: actual |
|
|
|
run: | |
|
|
|
echo "commit=$(git submodule status | grep ' 3rdparty' | egrep -o '[a-f0-9]{40}')" >> "$GITHUB_OUTPUT" |
|
|
|
|
|
|
|
- name: Last 3rdparty commit on target branch |
|
|
|
id: target |
|
|
|
run: | |
|
|
|
echo "commit=$(git ls-remote https://github.com/nextcloud/3rdparty ${{ github.base_ref }} | awk '{ print $1}')" >> "$GITHUB_OUTPUT" |
|
|
|
|
|
|
|
- name: Compare if 3rdparty commits are different |
|
|
|
run: | |
|
|
|
echo '3rdparty/ seems to not point to the last commit of the dedicated branch:' |
|
|
|
echo "Branch has: ${{ steps.actual.outputs.commit }}" |
|
|
|
echo "${{ github.base_ref }} has: ${{ steps.target.outputs.commit }}" |
|
|
|
|
|
|
|
- name: Fail if 3rdparty commits are different |
|
|
|
if: ${{ steps.changes.outputs.src != 'false' && steps.actual.outputs.commit != steps.target.outputs.commit }} |
|
|
|
run: | |
|
|
|
exit 1 |