From 8f51de6204ffce99c6ea7616f37f8867e35fc39f Mon Sep 17 00:00:00 2001 From: ernolf Date: Mon, 20 Jul 2026 00:42:14 +0200 Subject: [PATCH] ci: manage CI workflows through ncmake - track the installed workflows in .github/workflows/.ncmake-workflows.json (with its REUSE .license sidecar) so make workflows-update can pull upstream changes - refresh lint-info-xml, lint-php-cs, lint-php and psalm to the current nextcloud templates Signed-off-by: ernolf --- .github/workflows/.ncmake-workflows.json | 37 +++++++++++++++++++ .../workflows/.ncmake-workflows.json.license | 2 + .github/workflows/lint-info-xml.yml | 2 + .github/workflows/lint-php-cs.yml | 8 ++-- .github/workflows/lint-php.yml | 9 +++-- .github/workflows/psalm.yml | 15 ++++---- 6 files changed, 58 insertions(+), 15 deletions(-) create mode 100644 .github/workflows/.ncmake-workflows.json create mode 100644 .github/workflows/.ncmake-workflows.json.license diff --git a/.github/workflows/.ncmake-workflows.json b/.github/workflows/.ncmake-workflows.json new file mode 100644 index 0000000..81f3c76 --- /dev/null +++ b/.github/workflows/.ncmake-workflows.json @@ -0,0 +1,37 @@ +{ + "block-unconventional-commits.yml": { + "hash": "0265b1456e429e5219b48c4c8aaea726ac60fa24db0d3f3ef68e2c9f04fcbea9", + "sha": "bcc722a61824682a2a1538b9e1450e98616d1889", + "source": "nextcloud" + }, + "lint-info-xml.yml": { + "hash": "072fff135b8965517449e86ebf3853d635f1d997cf430f60d30210f728293ef4", + "sha": "e55705222f421f6066ec4df853aab507b955b091", + "source": "nextcloud" + }, + "lint-php-cs.yml": { + "hash": "d8e98ce4e02e20971edac20b3027daed61451bd75588bdf3a57695be00aacbcb", + "sha": "0a65977bef92cbd684f8ee5dde415ad7f95ee4f4", + "source": "nextcloud" + }, + "lint-php.yml": { + "hash": "c35e63c27843f2012a097bb4b2a7ef622130509e68cde724c53c6b5eb2886863", + "sha": "cb2684b245c23c086af88e6bc6fc30a5df038c6e", + "source": "nextcloud" + }, + "psalm.yml": { + "hash": "3cc569bb779c95a6c612aa5f0946c5df373fddfcd9899b514c7d269bffd3e9cb", + "sha": "4feadcb8fad77932706c100663577dca7c0b44d8", + "source": "nextcloud" + }, + "release.yml": { + "hash": "cdb4486ee5732e4a5d834c7e57eac808eb0d1e4ce22af7a00cea3ca260355056", + "sha": "0cd0c3e40145e41d6043d72bc07920a5ebb4acb8", + "source": "ncmake" + }, + "reuse.yml": { + "hash": "3593df9baabc3dd1fc3539143fafa78706de81cf575cd2e6e7f7207ee6fb390f", + "sha": "4e1a74194ecf76f593564a7c0b35bdb19bd23a58", + "source": "nextcloud" + } +} diff --git a/.github/workflows/.ncmake-workflows.json.license b/.github/workflows/.ncmake-workflows.json.license new file mode 100644 index 0000000..546446a --- /dev/null +++ b/.github/workflows/.ncmake-workflows.json.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2026 [ernolf] Raphael Gradenwitz +SPDX-License-Identifier: CC0-1.0 diff --git a/.github/workflows/lint-info-xml.yml b/.github/workflows/lint-info-xml.yml index 0233620..2b94be4 100644 --- a/.github/workflows/lint-info-xml.yml +++ b/.github/workflows/lint-info-xml.yml @@ -27,6 +27,8 @@ jobs: uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: false + sparse-checkout: | + appinfo/ - name: Download schema run: wget https://raw.githubusercontent.com/nextcloud/appstore/master/nextcloudappstore/api/v1/release/info.xsd diff --git a/.github/workflows/lint-php-cs.yml b/.github/workflows/lint-php-cs.yml index af66964..0a65977 100644 --- a/.github/workflows/lint-php-cs.yml +++ b/.github/workflows/lint-php-cs.yml @@ -34,7 +34,7 @@ jobs: uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2 - name: Set up php${{ steps.versions.outputs.php-min }} - uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2.37.2 + uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2 with: php-version: ${{ steps.versions.outputs.php-min }} extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite @@ -43,10 +43,12 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Install dependencies + - name: Remove nextcloud/ocp run: | composer remove nextcloud/ocp --dev --no-scripts - composer i + + - name: Install composer dependencies + uses: ramsey/composer-install@65e4f84970763564f46a70b8a54b90d033b3bdda # 4.0.0 - name: Lint run: composer run cs:check || ( echo 'Please run `composer run cs:fix` to format your code' && exit 1 ) diff --git a/.github/workflows/lint-php.yml b/.github/workflows/lint-php.yml index a243d67..20408cc 100644 --- a/.github/workflows/lint-php.yml +++ b/.github/workflows/lint-php.yml @@ -21,7 +21,8 @@ jobs: matrix: runs-on: ubuntu-latest outputs: - php-versions: ${{ steps.versions.outputs.php-versions }} + php-min: ${{ steps.versions.outputs.php-min }} + php-max: ${{ steps.versions.outputs.php-max }} steps: - name: Checkout app uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 @@ -30,14 +31,14 @@ jobs: - name: Get version matrix id: versions - uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.0.0 + uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2 php-lint: runs-on: ubuntu-latest needs: matrix strategy: matrix: - php-versions: ${{fromJson(needs.matrix.outputs.php-versions)}} + php-versions: ['${{ needs.matrix.outputs.php-min }}', '${{ needs.matrix.outputs.php-max }}'] name: php-lint @@ -48,7 +49,7 @@ jobs: persist-credentials: false - name: Set up php ${{ matrix.php-versions }} - uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2.37.2 + uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2 with: php-version: ${{ matrix.php-versions }} extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite diff --git a/.github/workflows/psalm.yml b/.github/workflows/psalm.yml index 11bd5a6..4feadcb 100644 --- a/.github/workflows/psalm.yml +++ b/.github/workflows/psalm.yml @@ -35,10 +35,10 @@ jobs: - name: Check enforcement of minimum PHP version ${{ steps.versions.outputs.php-min }} in psalm.xml run: grep 'phpVersion="${{ steps.versions.outputs.php-min }}' psalm.xml - - name: Set up php${{ steps.versions.outputs.php-min }} - uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2.37.2 + - name: Set up php${{ steps.versions.outputs.php-available }} + uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2 with: - php-version: ${{ steps.versions.outputs.php-min }} + php-version: ${{ steps.versions.outputs.php-available }} extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite coverage: none ini-file: development @@ -47,15 +47,14 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Install dependencies + - name: Remove nextcloud/ocp run: | composer remove nextcloud/ocp --dev --no-scripts - composer i - - name: Check for vulnerable PHP dependencies - run: composer require --dev roave/security-advisories:dev-latest + - name: Install composer dependencies + uses: ramsey/composer-install@65e4f84970763564f46a70b8a54b90d033b3bdda # 4.0.0 - - name: Install nextcloud/ocp + - name: Install nextcloud/ocp:dev-${{ steps.versions.outputs.branches-max }} run: composer require --dev nextcloud/ocp:dev-${{ steps.versions.outputs.branches-max }} --ignore-platform-reqs --with-dependencies - name: Run coding standards check